Pascal
или Basic. Выбор языка программирования.
Евгений
Мухутдинов
[к оглавлению статей]
В этой статье, как вы уже сами догадались, речь
пойдет о выборе языка программирования для преподавания его в школе. Я думаю,
что выбор нужно сделать в пользу одного из этих языков. Почему одного? Потому
что, часов на преподавание информатики, выделено не так уж много, и лучше знать
какой-либо один язык программирования хорошо, чем два, но плохо.
Почему
стоит сделать выбор именно из этих двух языков программирования? На мой взгляд,
потому, что
Pascal
составляет основу самой популярной среды разработки
Borland
Delphi, а
Basic
основу
VBA
(Visual
Basic
for
Application). В последнем случае
я не оговорился, упомянув именно
VBA, а не
Visual
Basic.
Дело в том, что лично я, пытаюсь программировать на
Delphi, но для серьезной работы
с офисными приложения от
Microsoft
необходимо владеть
VBA, так как на нем пишутся
макросы. Может возникнуть вопрос: «Почему бы, не выбрать
Basic, а в дальнейшем писать
приложения на
Visual
Basic, а макросы естественно
на
VBA?». Ответ вы найдете чуть
ниже. А теперь собственно о
Pascal
(Паскаль) и
Basic
(Бейсик).
Как-то, я задал вопрос одному из участников форума посвященному информатике -
учителю со стажем. Вопрос был такой «…не лучше ли все-таки изучать
Паскаль, а не Бейсик? По моим опросам, в ВУЗах, студентам, так или иначе
приходиться работать с Паскалем, а в дальнейшем с Делфи. Изучать же два языка
одновременно, на мой взгляд, не рационально». На что я получил следующий
ответ, цитирую: «Всё дело в том,
что Бейсик намного проще в изучении. А при катастрофической нехватке часов,
отведённых на информатику, этот критерий является решающим. К тому же, изучив
основные структуры алгоритмического языка и принципы написания программ, переход
на Паскаль происходит очень легко».
Что можно сказать по поводу этого мнения? Лично я
не понимаю, о чем идет речь, когда говорят: «Бейсик
намного проще в изучении». Если бы сравнивался Бейсик и
Assembler, то я бы безоговорочно
согласился, но не в случае с Паскаль. Возьмите
в руки книгу Сема Аболруса
"Программирование на Pascal" (книга есть в интернет-магазине
http://www.books.ru/) в которой все написано хорошим языком. После ее
прочтения лично у меня не возникло мнения, что изучить Pascal
сложнее, чем Basic.
Попробую предположить, на чем вообще основано мнение, что изучать
Basic
легче, чем
Pascal. Ну, во-первых, в
Basic
в ряде случаев не надо явным образом описывать переменную. В Pascal
же без объявления переменной в разделе объявления переменных, вы ее не сможете
применить. Во - вторых благодаря возможности нумерации строк очень легко
применить оператор безусловного перехода
GOTO, в Pascal для этого пришлось бы создавать метку. В-третьих, в
QBasic
не требуется подключать дополнительных модулей, как это делается в Turbo Pascal. В четвертых …,
честно говоря, ничего более я предположить не могу.
По поводу
первого пункта могу сказать следующие, возможность не описывать явным образом
переменные в языке Basic я
считаю скорее недостатком, чем достоинством. Я считаю, что даже начинающий
программист должен четко и ясно представлять, переменные какого типа и в каких
целях он собирается использовать. Необходимость явным образом
описывать переменные в языке
Pascal
приучает к дисциплине, к тому же это способствует уменьшению ошибок при
преобразовании типов переменных.
Что
касается легкости применения оператора GOTO в Basic при нумерации строк.
На мой взгляд - это огромный минус языка
Basic. При нумерации строк так и
тянет вставить что-нибудь типа GOTO 110
и не надо использовать условные операторы. Проще говоря - это приводит к
злоупотреблению оператором GOTO. Приведу простой пример. Я решил в качестве тренировки написать,
используя Delphi 7, небольшую игру
по мотивам хорошо всем известной игры «23 спички». Чтобы упростить себе задачу,
я, решил использовал текст готовой программы на языке
Basic
из книги «Персональный компьютер для начинающих» авторов Р. Дробышевского и А.
Лифенко. В 9 строках исходного текста
из 65 использован оператор безусловного перехода GOTO,
это привело к тому, что я, являясь начинающим программистом, не мог, энное
количество времени, уловить логику работы программы, пытаясь проследить прыжки с
одной строки на другую. А ведь это была простейшая программа. Также надо особо
подчеркнуть, что необходимости
использовать операторы безусловного перехода никакой не было, все решалось
элементарно при использовании условных операторов. А теперь представьте среднюю
программу, состоящую из 1000-2000 строк, даже если программу вы написали
самолично, то при наличии большого количества операторов
GOTO
отладить ее будет проблематично.
После выше
сказанного невольно вспоминаешь, что по поводу Бейсика высказал
Эдсгар Дейкстра: «Практически невозможно научить
хорошо программировать студентов, ориентированных первоначально
на Бейсик: как потенциальные программисты они умственно оболванены без
надежды на исцеление».
Первый
раз, прочитав эти слова, я подумал, что Дейкстра слишком категоричен в своем
высказывании по поводу Бейсика (справедливости ради надо заметить, его
высказывания касались именно Basic а не о Qbasic).
На данный момент, я склонен согласиться с этим высказыванием. Дело в том, что
тот же оператор GOTO
весьма часто можно встретить в программах выполненных в среде
Basic
и Visual Basic. Что собственно
плохого в использовании оператора GOTO? Дело все в том, что Бейсик способствует его применению там, где надо и
не надо, при этом нарушается структура программы, не возможно проследить логику
работы приложения. Лично для меня, программирование - это искусство и чтобы
достичь вершин на этом поприще надо изначально учиться грамотному построению
программ. Выше я упомянул об игре «23 спички», так вот, при написании программы,
лично мне не понадобился ни один оператор
GOTO.
Также мне
не нравиться, что в Бейсике при операции сравнения и присваивания используется
один и тот же оператор «=», в Паскаль это соответственно «=» и «:=». Применение
разных операторов в Паскаль исключает двусмысленность и четко разделяет две
различные операции.
Недоброжелатели
языка Паскаль иногда посмеиваются над применение блока BEGIN-END,
на мой взгляд - это только способствует лучшему пониманию программного кода.
Лично для
меня, в разрезе повседневно решаемых задач, есть только маленький недостаток
языка Паскаль – отсутствие оператора возведения в степень. Приходиться
использовать конструкцию EXP(LN(x)*y),
хотя возведение в квадрат происходит элементарно SQR(x).
Периодически, встречая людей окончивших или проходящих курс обучения в ВУЗах (в
первую очередь меня интересуют специальности тесно связанные с применением
компьютера), я интересуюсь, какие трудности есть при изучении информатики и что
превалирует при преподавании этого предмета. Поскольку речь идет о языке
программирования, то от учащиеся Волгоградских и Саратовских ВУЗов я слышал
только одно - Turbo Pascal и среда
Delphi. Один из моих знакомых
закончил МИФИ (Московский инженерно-физический институт), учился на
программиста, ответ тот же самый. Хочу особы выделить слова А.А. Чернова из предисловия
к
книге «Информатика. Конспекты уроков»:
«Требования высших учебных заведений к выпускникам школ существенно возросли и
расширились. Это обстоятельство вынуждает тщательно согласовывать разработку
программы преподавания предмета информатики в школе с дальнейшим изучением
соответствующего материала в ВУЗе».
Готов
подписаться под каждым словом. Будучи учителем информатики сельской школы,
считаю, что любой ученик сельской школы, поступивший в ВУЗ, должен прийти в
аудиторию, сесть за компьютер и работать без дрожи в руках и ногах при виде
компьютера. Чем плавней будет переход от школьной программы к вузовской, тем
лучше.
Подводя
итог всему вышеизложенному, считаю, что в качестве языка преподавания в школе
стоит выбрать именно Паскаль. Совершенно ни к чему зарабатывать сколиоз, а потом
его лечить, говоря, что это не трудно.
Что же касается языка Бейсик, то его, к моему большому сожалению нельзя
скидывать со счетов. Лично для меня существует необходимость изучения Бейсика
только в связи с его отпрыском
VBA. Как я уже говорил, при
серьезной работе с такими программами как Microsoft Excel и
Microsoft
Access, увы, без использования
макросов на
VBA, не обойтись. Если бы была
возможность писать макросы в среде Delphi,
то это бы дало возможность сосредоточиться на изучении одной среды разработки и
не распыляться по сторонам, но, увы…
P.S.
Хотелось бы услышать противоположное мнение. Если Вы хотите обсудить тему данной
статьи, то можете написать мне письмо,
оставить сообщение в гостевой книге или
заглянуть на форум.
[к
оглавлению статей]
|