Статьи

Начало Уроки Tk Файлы
Статьи Уроки Tcl Гостевая книга


Философия языков

В любом процессе создания можно придерживаться одной из двух стратегий.

Первая - проектирование снизу вверх. Например, нужен сортир - делаем сортир. Понадобился умывальник - рядом пристраиваем умывальник, как-нибудь дополняем систему канализации, проводим воду. Понадобилась баня... тут уже сложнее, от водопровода надо делать ответвление, организовывать канализацию. А если понадобится ещё что-нибудь? В итоге получается нечто корявое и неудобное, как корпуса старых университетов - коридоры, пристройки.

При использовании второго подхода, сверху вниз, сначал продумывается общая система, с учетом всех потребностей и возможностей расширения. Это на порядок сложнее, но ведь голова именно для этого дана - чтобы думать.

Начинал программировать я давно, ещё на Spectrum, на его встроенном BASIC, в котором была заложена мощная идея: если удерживать специальную кнопку аналогичную шифту ("Prog" или что-то в этом роде) то при нажатии любой кнопки писалось командное слово. Программы писались быстро и было меньше опечаток.

В то время был пик развития BASIC, только появлялись персоналки. В дистрибутиве DOS был GWBASIC, потом QBASIC... Однако, BASIC был спроектирован снизу вверх, по мере необходимости, он создавался для обучения, как игрушечный язык. Не было заложено средств расширения, корявый синтаксис дал-таки о себе знать. Поэтому общественность быстро поняла, что лучше переходить на более грамотный язык. Умные - на С, остальные - на Pascal.

Фактически, начался бум Pascal. И я тоже пошел в Pascal, так как везде ходил миф, что С - это жутко сложно. Почему кривая истории вывела на Pascal мне так и не понятно. Как и BASIC возникает ощущение, что этот язык никто не проектировал, без оглядки на ошибки других. Автор создал Pascal просто для обучения и бросил на произвол судьбы, а общественность почему-то подобрала его. Конечно, он лучше BASIC, но ушел не далеко.

В Pascal много ляпов, таких, как отсутствие указателей, слова begin и end (очень длинные слова, учитывая частоту их появления), ограничение на длину строки в 254 символа. То ограничение, что перед else не ставится точка с запятой меня до сих пор удивляет. Откуда это пошло и почему никак не исправят - неизвестно. Даже невозможно делить исходный код на модули. (Да, есть unit, это не то, это библиотеки)

Быть может, благодаря удобной среде разработки от Borland, но на Pascal писали много и с упоением. Однако, появился Windows. Пользователем понравился графический интерфейс, производителям оборудования он тоже понравился, так как требовал больше ресурсов, а, следовательно обновления парка компьютеров. Система драйверов позволяла извратиться как угодно при создании устройств. Тут Pascal начал сдавать позиции... библиотеки TurboVision проигрывали Win API, Попытка создания порта для разработки приложений под Windows тоже оказалась неудачной - в Win API всё на указателях, а в Pascal их не было. Срочно прикрутили указатели с помощью символа "^", но всё равно получилось очень сложно и криво. В Borland даже создали свою библиотеку для работы с Win API. Но и это не помогло. А Страуструп придумал С++, который очень органично дополнил объектами гибкость и функциональность С.

В это время начался бум технологии объектно-ориентированного программирования. В те времена говорили, что это панацея от всего - от ошибок в программах, легкая расширяемость кода, переносимость, повторное использование кода. Объекты начали прикручивать ко всем языкам, даже к Pascal и Basic, хотя они явно не были на это рассчитаны.

Объекты и графический интерфейс пользователей привели к новой концепции программирования - визуальной. Один из первых был Visual Basic (видимо, Билл Гейтс не хочет смерти своего детища), Visual C++, Delphi... потом появились и другие. Стало возможным "нарисовать" мышью простенький текстовый редактор. Бывалые программисты только плевались.

Так или иначе, поколение П, учившее Pascal перешло на Delphi. Показательно, что и сейчас очень мало комерческих приложений, созданных на Delphi. Умные люди, писавшие на С перешли на Visual C++, именно на этом языке создан хороший, но закрытый софт. А те, кого обучала Microsoft - пошли в Visual Basic, в России преобладает поколение П, в Америке, на родине Microsoft много написано на Visual Basic.

Однако, все заблуждения когда-нибудь проходят. Бум объектно-ориентированного программирования тоже проходит. Никакой язык программирования не может заставить программиста писать хорошие программы. Объекты сложны для понимания, требуют хорошего проектирования. Как средство для повторного использования кода классы переворота не произвели. А люди как писали почти двадцать лет назад на С, так и пишут. Конечно, для создания интерфейса объекты удобны - там, где много разных, но однотипных элементов. Но, под тот же Win API можно писать на С, и создавать такие же приложения, как и на Visual C++. В Unix-подобных системах вообще большинство кода написано на С.

Время идёт, компьютеры развиваются, программные системы тоже становятся сложнее, требуется деление на модули, более простые и удобные языки программирования. Постепенно большую популярность приобретают скриптовые языки. Производительность уходит на второй план, сейчас главнее гибкость, простота, многоплатформенность, модульность, возможность встраивать в приложения. Поэтому набирают популярность скриптовые языки - Java, Perl, PHP, Python, Tcl, C#...

автор: Юрий "Yurez" Горбачев

Юрий "Yurez" Горбачев  
Хостинг от uCoz