Статьи (106)

Начинающему программисту: Pascal vs C++

04 Апр 2014
  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 4. Рейтинг: 3.75 из 5

Хм, эта статья о том, кто победит – слон или кит. Ой, оговорился. На самом деле эта статья о том, с чего лучше начинать учиться программированию - Turbo Pascal или C++. Спор об этом вечен как история программирования, и копий по этому поводу было сломано на хороший частокол. Я изложу некоторые свои соображения, а вам уж решать, что выбирать.

Итак вы садитесь за клавиатуру, чтобы явить миру свой могучий разум посредством вывода строки “Hello World!” на каком же языке это произойдет? Стоит рассказать пожалуй главное отличие этих двух языков, которое одни ставят в достоинство, а другие в недостаток. Разным языкам, разумеется. Итак, TP имеет куда большее жесткую и детерминированную структуру чем С. Итак, в чем же недостаток такого подхода? А то, что начало обучения превращается в кромешный ад для обучаемого. Не компилируется программа? Почему? Ах, в этом же месте должна стоять точка с запятой, а в этом – квадратные скобки вместо круглых. И сотни, тысячи таких ошибок. Приходится возвращаться и исправлять. И снова. На начальном этапе времени отладка занимает до половины времени разработки программы (скажу вам по секрету – когда выучите язык, занимать будет еще больше, только править ошибки надо будет не синтаксические, а логические). Какое же в этом преимущество? А вот такое. С абсолютно не требователен. Вы можете расписать цикл ввода одной строчкой, просто пихая функции друг в друга. Вы можете объявлять переменные внутри исполняемого кода. Конечно же, это жутко удобно, но превращает исходный код в жуткую неудобоваримую мешанину, разобраться в которой сложновато самому программисту, а постороннему человеку – и подавно. Поэтому учить ТР стоит лишь для того, чтобы научиться элементарным правилам приличия и дисциплины.

паскаль

Однако не стоит зацикливаться на ТР навсегда. Он - всего лишь ступенька к вашему успеху на ниве программирования. Почему же именно так? С имеет ряд преимуществ – он не может полностью относиться к языкам высокого уровня, поскольку многие команды имеют приближенную форму, больше похожую на ассемблер, поэтому на нем удобно писать драйвера.

Выбирать язык по количеству подключаемых модулей тоже неверно – и для того, и для другого написана куча модулей практически для любых целей. Теперь стоит поговорить про сам синтаксис – хотя он и сильно отличается. Логичность в языках присутствует и своей логической структурой организации (циклы, операторы ветвления) они практически близнецы-братья. К тому же в некоторых диалектах этих языков объектные файлы вполне могут подулючать к проектам, написанном на «неродном» для исходника языке. Часть модулей работает одинаково. Ярким примером служит модуль Graph, где даже функции совпадают.

С++

Но! Если вы выбрали все же С, запомните, что С, С++ и С# серьезно отличаются. Можно сказать, что это различные языки программирования с одинаковым синтаксисом. С++ отличается от С наличием возможности использования объектов и, соответственно, объектно-ориентированного программирования. Что это такое в начале обучения знать вовсе не обязательно, но поверьте, есть некоторые тонкости, переучивать которые будет сложновато, поэтому стоит сразу начинать с С++.

хелловорд

Итак, стоит подвести итог. Зачем я вам все это рассказывал? Чтобы определить оптимальный алгоритм: сначала изучить Pascal, а потом перейти на С++ (что не так уж и сложно). Подобная схема позволит вам не только более уверенно себя чувствовать при использовании исследовании чужого кода, но и развить дисциплинированность и привыкнуть к правилам хорошего тона настоящего программиста.

Комментировать