LINUX.ORG.RU

История изменений

Исправление Legioner, (текущая версия) :

Кстати на RSDN-е один толковый товарищ таки давал грамотную критику паскаля, как первого языка. Жаль, что на лоре конструктива ноль, а перебранки читать утомляет после пятой страницы. Поэтому вброшу:

  1. Объявление переменных перед функцией.

1.1. Этого нет ни в одном современном языке программирования. Везде переменные можно объявлять по месту использования, в том числе во вложенном блоке. При этом от такого стиля ещё придётся отучаться какое-то время. Т.е. в данном случае паскаль учит плохому.

1.2. Это провоцирует на избегание внедрения временных переменных. Слишком много усилий. Проще сделать копипасту. Т.е. вместо

Person bookAuthor = currentBook.getPrimaryAuthor();
String authorName = bookAuthor.getLastName() + " " + bookAuthor.getFirstName();
saveString("Written by: " + authorName);

у обучаемого возникает большой соблазн писать в стиле

saveString("Written by: " + currentBook.getPrimaryAuthor().getLastName() + " " + currentBook.getPrimaryAuthor().getFirstName());

чтобы избегать прыжков в начало/конец функции.

  1. Устаревшие интерфейсы общения с ОС. Например в паскале при работе с файлами имеется синтаксис file of person. Это т.н. блочные файлы, которые давным давно поддерживались на уровне ОС, поэтому для них был введён специальный синтаксис в язык, но в современных ОС все файлы это просто последовательность байтов, т.е. все эти абстракции не нужны и в современных языках их просто нет. Т.е. их изучение является полностью бесполезным и разумней вообще их опустить. Иными словами теряется один из смыслов выбирания паскаля в качестве первого языка - возможность изучить язык на 100%.

Исходная версия Legioner, :

Кстати на RSDN-е один толковый товарищ таки давал грамотную критику паскаля, как первого языка. Жаль, что на лоре конструктива ноль, а перебранки читать утомляет после пятой страницы. Поэтому вброшу:

  1. Объявление переменных перед функцией.

1.1. Этого нет ни в одном современном языке программирования. Везде переменные можно объявлять по месту использования, в том числе во вложенном блоке. При этом от такого стиля ещё придётся отучаться какое-то время. Т.е. в данном случае паскаль учит плохому.

1.2. Это провоцирует на избегание внедрения временных переменных. Слишком много усилий. Проще сделать копипасту. Т.е. вместо

[code=java] Person bookAuthor = currentBook.getPrimaryAuthor(); String authorName = bookAuthor.getLastName() + " " + bookAuthor.getFirstName(); saveString("Written by: " + authorName); [/code]

у обучаемого возникает большой соблазн писать в стиле

[code=java] saveString("Written by: " + currentBook.getPrimaryAuthor().getLastName() + " " + currentBook.getPrimaryAuthor().getFirstName()); [/code]

чтобы избегать прыжков в начало/конец функции.

  1. Устаревшие интерфейсы общения с ОС. Например в паскале при работе с файлами имеется синтаксис file of person. Это т.н. блочные файлы, которые давным давно поддерживались на уровне ОС, поэтому для них был введён специальный синтаксис в язык, но в современных ОС все файлы это просто последовательность байтов, т.е. все эти абстракции не нужны и в современных языках их просто нет. Т.е. их изучение является полностью бесполезным и разумней вообще их опустить. Иными словами теряется один из смыслов выбирания паскаля в качестве первого языка - возможность изучить язык на 100%.