Компьютерра Журнал 658 - Журнал «Компьютерра» N 8 от 27 февраля 2007 года стр 17.

Шрифт
Фон

абстракция.

То есть императивная модель уже нужна больше программисту, нежели компьютеру. Но ведь и программисты изменяются. Повышение темпа прогресса и вообще темпа жизни приводит к тому, что даже самый средненький программист или средненькая программная контора успевает перепробовать столько языков и технологий, что принять новые идеи становится куда проще [Сюда можно приплести еще культуру блоггеров-пропагандистов, способных заинтересовать своих читателей чем угодно. Например, описываемый ниже Ruby своим «подъемом» за пределами Японии очень обязан нескольким уважаемым в программистской публицистике личностям].

Вот и посмотрим, что из этого получается. Начнем все же с веба.

Напиши мне сценарий
Цитата

Если бы я был умнее чем есть, Ruby мог бы быть намного проще, не потеряв выразительности.

Юкихиро Мацумото

Культура скриптов-сценариев получила мощной толчок с появлением веба и первых веб-приложений. Тогдашняя формулировка веб-приложения «нечто, получающее несколько параметров и формирующее по ним (текстовую) веб-страничку» идеальное описание именно скрипта; неудивительно, что самый популярный к тому времени скриптовый язык для обработки строк Perl стал и самым популярным языком веб-программирования. Некоторое время «быть веб-программистом» означало «знать HTML, JavaScript и Perl» (вскоре к этому набору добавился PHP). Веб-программирование как деятельность доступная и популярная, с одной стороны, способствовало широкому распространению «скриптового» подхода, а с другой изменило концепцию самих скриптов: усложнение веб-приложений, возрастание их объема и используемых ресурсов (сеть, БД, графика и пр.) привело к повышению внимания к логичности и понятности скрипта, к его стандартной библиотеке и т. п.

Так Perl проторил дорогу Pythonу языку, который смешал скриптовый и структурный подходы к написанию программ [При желании в истории «скриптов для веба» можно найти аналогии с начальной историей языков программирования: Perl/Fortran, доказавшие, что это возможно и нужно, PHP/Cobol как «временное помутнение сознания, когда еще никто не знал, как правильно», и Python/Algol, внесшие стройность и логичность. Есть, конечно, и множество отличий]. Лаконичные и логичные, легко читаемые программы на Питоне способствовали его широчайшему распространению, поскольку это легкий язык интеграции всего (Google и NASA), встраиваемый в крупные пакеты (от программы 3D-моделирования Blender до игры Civilization IV), язык для преподавания (см. в предыдущей статье о MIT) и, естественно, язык для веба. Успех Питона открыл дорогу другим «стройным скриптам»: легкой Lua во встраиваемые скрипты, и Ruby во все остальные области. В каковых «всех областях» вскоре вспыхнула supernova фреймворка для веб-разработки Ruby on Rails. «Руби на Рельсах» со всеми своими последователями, критиками, отрицателями и фанатами уже сам совершенно отдельный крупный тренд.

Важно здесь, что культура скриптов («скриптовая парадигма») подразумевает допустимость и даже обязательность разных «ухищрений» для удобства программиста. И это именно та «дырка», через которую в широкие массы пошли необычные идеи. То есть в большой степени это вопрос «подачи»: если функция-как-значение это не «новая парадигма с серьезной теоретической базой, своей терминологией и новым синтаксисом», а «фишечка такая, чтобы удобней» то элементы функционального подхода в Питоне оказываются вполне естественными и понятными. А поглощение и использование этой «фишечки», естественно, порождает какие-то вопросы (все-таки идея «новая»), на которые (сюрприз, сюрприз!) могут дать ответы те самые «оторванные от жизни теоретики», занимающиеся функциональным программированием (ах, вот как это называется!) уже лет сорок. И вот пожалуйста:

замыкания, продолжения, ленивые вычисления более или менее прижившиеся элементы «обычных скриптов».

То же самое с концепциями «программа это данные, изменяемые в любой момент» (здравствуй, Lisp) и «все в программе суть объекты, обменивающиеся сообщениями» (здравствуй, Smalltalk). Время программиста и его fun главная ценность; ради этих «высоких идеалов» можно и идейные столпы пошатать.

Забавно, что в этом стремительном выходе скриптов на передний план главное назначение «языка сценариев» написание одноразовых программ сомнительного качества как-то потерялось. Что породило забавные казусы «самоопределения» тем паче, что и другие типично скриптовые свойства (вроде интерпретируемости) многим сегодняшним «скриптам» несвойственны (Python, как Java, компилируется в байт-код и выполняется на виртуальной машине; виртуальные машины для Perl и Ruby сейчас разрабатываются соответствующими сообществами и находятся в районе «альфа» и «бета» версий).

Платформа 200N
Цитата

Это здорово, что популярность Ruby резко взлетела, и еще более здорово, что я приложил к этому палец. Не то чтобы я много об этом размышлял, но думаю об этом с гордостью.

Д. Хеймер Ханссен, создатель ruby on rails

Но важнее даже не это, а принципиальная изначальная многоязычность. Netа и, соответственно, поощряемые и приветствуемые попытки существующие языки на микрософтовскую платформу портировать и новые, невиданные, создать. Эффект симбиоза ново-старых языковых идей и платформы промышленного качества понятен: для платформы выгода в том, что даются новые инструменты программистам и «импортируется» сообщество соответствующего языка; для самого языка становятся доступными богатые библиотеки. Netа (особенно актуально для языков с привкусом «академичности», зачастую страдающих от отсутствия элементарных библиотек для индустриальных задач) и огромное количество готовых пользователей [Все эти выкладки в большой степени относятся и к платформе Java. Понятно, что изначально платформа была «одноязычной», но сейчас (не в последнюю очередь в результате «гонки платформ» с Microsoft) Sun уделяет много внимания развитию и поддержке других языков на своей платформе].

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке