Добрый день!
Буквально месяц назад мы отметили 60 лет ENIAC, первого электронного цифрового вычислителя общего назначения, а за три месяца до этого праздновали 200 лет со дня рождения Ады Лавлейс, первого программиста человечества. Поэтому сейчас самый подходящий момент, чтобы подумать об обучении программированию.
Представьте, что у нас есть выбор только между Паскалем и Си. Вроде бы разница мала, так как уже многие десятки лет существуют конвертеры, способные преобразовать код с одного из этих языков на другой, причём в большинстве случаев исправлять результат работы конвертеров даже не приходится. Это нам указывает на огромное сходство языков.
Но есть и отличия. Давайте попробуем их вспомнить.
Итак, плюсы и минусы языков Си и Паскаль:
- В Си есть qsort (наличие развитой сортировки, которой можно подсунуть свою функцию сравнения, сразу сокращает и упрощает код),
- В Паскале есть строки (пусть их длина ограничена 255 символами, но начать с ними работать гораздо проще, а возможностей для ошибок — меньше),
- В Си краткий синтаксис (многих в Паскале раздражало постоянное написание "begin"/"end", а в Си мы пишем "{"/"}"),
- В Паскале LL(1) грамматика (глядя на начало строки, мы это начало сразу понимаем, в то время как в Си, например, с "int " может начинаться что угодно: хоть переменная, хоть указатель на переменную, хоть функция),
- Есть много популярных языков с Си-подобным синтаксисом (C++/C#/Java/...), поэтому поучиться Си стоит,
- В Паскале легко выводить значения разных типов (сравните "write(a, ', ', b);" с "printf("%d, %f", a, b);" — во втором случае пришлось вспоминать, какого типа наши переменные a и b.
Долгое время Pascal считался хорошим языком для обучения. Кстати, отсутствие qsort сразу же приводило к необходимости реализовать сортировку, что не было вредно. Но сейчас на Паскале почти не пишут, поэтому причин учить этому языку школьников практически нет. Насколько я понимаю, главная причина — в ЕГЭ по программированию есть вопросы по Паскалю. Но такое заталкивание языка в детей явно не добавляет им мотивации.
А какие положительные и отрицательные моменты Паскаля и Си вы помните? Можно учить оба, помня, что это почти одно и то же? Или только Си? Готовиться ли к ЕГЭ?
Хорошей недели!
Ссылки по теме:
- Три программы,
- Программисты-олимпиадники,
- Слишком универсально.