Языки программирования. Обзор-ликбез.

Спецвыпуск Хакер, номер #004, стр. 004-036-4

И, наконец, третий принцип построения программ сейчас стал особо популярен вместе с развитием таких сред программирования, как Delphi и MS VC++. Этот принцип заключается в том, что весь код программы пишется как реакции на определенные системные события. Например, нажал пользователь кнопку - система смотрит, что там в программе за обработчик клавиатуры, есть он или нет и если есть, то передает ему управление, а уж он решает, что делать с кодом нажатой клавиши - принять и зафиксировать или послать юзера чистить мусорную корзину у Windows. У такого подхода есть большие преимущества в скорости написания пользовательского интерфейса - красивых формочек и кнопочек набросал, подправил, код набил быстренько и... готово! ;-) Но по большей части этот принцип соединяют с каким-либо из предыдущих. Для Unix/Linux систем был даже разработан специальный язык (чуть позже его перевели и на Windows/Dos платформы, и на OS/2) в полном соответствии с таким событийным механизмом работы - Tcl/Tk. Сам по себе он способен на многое, но пока что все его реализации очень медленны. Кроме всего прочего, к нему можно сделать привязки из других языков. Поскольку все программы и описания форм и их элементов - кнопок, надписей, полей ввода - текстовые, то идеально для этой задачи подошли Perl и Python. Оба этих языка изначально задумывались авторами в основном для рутинной обработки большого количества текстов - лог-файлов, конфигурационных файлов и т.д. Это сказалось на их синтаксисе и наборах стандартных функций. И хотя это так, оба этих языка все равно великолепны. Они чрезвычайно удобны и интуитивно понятны - недаром создатель одного из них Ларри Уолл сделал девизом этого языка фразу: "There is more than one way to do it!" - в смысле, "Всегда есть больше одного способа сделать это!" Пожалуй, оба этих языка можно посоветовать и для самых начинающих, только стоит помнить, что на самом деле они гораздо сложнее, чем, скажем, Pascal или C. Но зато, наверняка, настоящий талант проявит себя в этих языках гораздо сильнее, поскольку они имеют очень гибкую структуру. Например, ввод и обработка данных на Perl'e может выглядеть следующим образом:

#!/usr/bin/perl -w

while (<>) { # считываем строчки с консоли (или если заданы файлы в командной строке - из них)

print; # выводим строчку

}

А может и так:

#!/usr/bin/perl -w

print while (<>);

Что намного короче, но выполняет то же самое. А вот и третий вариант:

#!/usr/bin/perl -w

print (<>);

Кто короче? ;-))) Причем, первое, что бросается в глаза - это не только выполнение правила "краткость - сестра таланта", но и то, что язык программирования становится похож на обычный разговорный (хоть и английский - басурманский) язык! Вполне вероятно, что лет эдак через 10-15 программы будут писать все кому не лень только потому, что языки программирования будут копиями нормальной речи. ;-) Да что там 10-15 лет, когда стихи на Perl'е пишут уже сейчас. ;-) При том, что это вполне работоспособные программы:

Назад на стр. 004-036-3  Содержание  Вперед на стр. 004-036-5

загрузка...
Cпец Хакер #075Cпец Хакер #074Cпец Хакер #073Cпец Хакер #072Cпец Хакер #071Cпец Хакер #070Cпец Хакер #069Cпец Хакер #068Cпец Хакер #067Cпец Хакер #066Cпец Хакер #065Cпец Хакер #064Cпец Хакер #063Cпец Хакер #062Cпец Хакер #061Cпец Хакер #060Cпец Хакер #059Cпец Хакер #058Cпец Хакер #057Cпец Хакер #056Cпец Хакер #055Cпец Хакер #054Cпец Хакер #053Cпец Хакер #052Cпец Хакер #051Cпец Хакер #050Cпец Хакер #049Cпец Хакер #048Cпец Хакер #047Cпец Хакер #046Cпец Хакер #045Cпец Хакер #044Cпец Хакер #043Cпец Хакер #042Cпец Хакер #041Cпец Хакер #040Cпец Хакер #039Cпец Хакер #038Cпец Хакер #037Cпец Хакер #036Cпец Хакер #035Cпец Хакер #034Cпец Хакер #033Cпец Хакер #032Cпец Хакер #031Cпец Хакер #030Cпец Хакер #029Cпец Хакер #028Cпец Хакер #027Cпец Хакер #026Cпец Хакер #025Cпец Хакер #024Cпец Хакер #023Cпец Хакер #022Cпец Хакер #021Cпец Хакер #020Cпец Хакер #019Cпец Хакер #018Cпец Хакер #017Cпец Хакер #016Cпец Хакер #015Cпец Хакер #014Cпец Хакер #013Cпец Хакер #012Cпец Хакер #011Cпец Хакер #010Cпец Хакер #009Cпец Хакер #008Cпец Хакер #007Cпец Хакер #006Cпец Хакер #005Cпец Хакер #004Cпец Хакер #003Cпец Хакер #002Cпец Хакер #001