Эссе, 16 стр., 11 февраля 2010 г.
Содержание:
Предисловие. На кого ориентироваться. «Hello, world», или барьер,
который возьмут не все. Второй пример программы: барьер, который не
возьмёт никто. Хак как стиль мышления. Инструменты, которых нет.
Заключение.
Аннотация
Недавно коллеги задали мне вопрос, как я отношусь к идее замены
языка Паскаль на первом курсе языком Си. Когда я категорично
ответил «ни в коем случае», меня спросили «а почему?». Предлагаемый
текст - мой ответ на этот вопрос.
Мои основные возражения сводятся к следующему. Во-первых, для языка
Си высок барьер вхождения: для понимания даже самых простых
программ требуются достаточно серьёзные знания, поэтому, если Си
изучать как первый язык, начало курса будет состоять из сплошных
ссылок вперёд. Во-вторых, язык Си стимулирует применение хаков и
формирует соответствующее мышление, причём в отсутствие уже
сформировавшейся культуры программирования студенты лишаются
возможности отличать случаи оправданного применения хаков от
бессмысленного лихачества. В-третьих, в языке Си попросту
отсутствует ряд механизмов, необходимых как иллюстрация общей
программистской теории. Так, в Си возможен лишь один способ
передачи параметров, именно - передача по значению; в Си
отсутствуют массивы как полноценный тип данных; модульности в её
истинном смысле в Си также нет. Кроме того, в начальном обучении
программированию полезно применять строгую типизацию, тогда как в
Си символ и его код суть одно и то же, а логические и перечислимые
значения являются не более чем константами целого типа.
Сказанное не означает, что язык Си не следует изучать: утверждается
лишь, что с Си нельзя начинать обучение программированию.
На сайте автора идет обсуждение
статьи.