История изменений
Исправление
Legioner,
(текущая версия)
:
Кстати на RSDN-е один толковый товарищ таки давал грамотную критику паскаля, как первого языка. Жаль, что на лоре конструктива ноль, а перебранки читать утомляет после пятой страницы. Поэтому вброшу:
- Объявление переменных перед функцией.
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());
чтобы избегать прыжков в начало/конец функции.
- Устаревшие интерфейсы общения с ОС. Например в паскале при работе с файлами имеется синтаксис
file of person
. Это т.н. блочные файлы, которые давным давно поддерживались на уровне ОС, поэтому для них был введён специальный синтаксис в язык, но в современных ОС все файлы это просто последовательность байтов, т.е. все эти абстракции не нужны и в современных языках их просто нет. Т.е. их изучение является полностью бесполезным и разумней вообще их опустить. Иными словами теряется один из смыслов выбирания паскаля в качестве первого языка - возможность изучить язык на 100%.
Исходная версия
Legioner,
:
Кстати на RSDN-е один толковый товарищ таки давал грамотную критику паскаля, как первого языка. Жаль, что на лоре конструктива ноль, а перебранки читать утомляет после пятой страницы. Поэтому вброшу:
- Объявление переменных перед функцией.
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]
чтобы избегать прыжков в начало/конец функции.
- Устаревшие интерфейсы общения с ОС. Например в паскале при работе с файлами имеется синтаксис
file of person
. Это т.н. блочные файлы, которые давным давно поддерживались на уровне ОС, поэтому для них был введён специальный синтаксис в язык, но в современных ОС все файлы это просто последовательность байтов, т.е. все эти абстракции не нужны и в современных языках их просто нет. Т.е. их изучение является полностью бесполезным и разумней вообще их опустить. Иными словами теряется один из смыслов выбирания паскаля в качестве первого языка - возможность изучить язык на 100%.