Лисп/Историософия: различия между версиями

402 байта добавлено ,  11 лет назад
Нет описания правки
<blockquote>«[Лисп есть] величайший единственный язык программирования из когда-либо сотворённых.»</blockquote>{{Подпись|— [[w:Алан Кэй|Алан Кэй]], творец [[Smalltalk|Смоллтока]] и термина «объектно-ориентированное программирование»}}
«Можно даже возомнить, будто Лисп выжил именно благодаря тому, что его программы суть списки, — что некогда всеми, включая меня, считалось за недостаток.»
{{Подпись|Джон Маккарти<ref>{{wikipedia|Джон Маккарти}}Информатик, когнитолог, философ. Творец термина [[w:Искусственный интеллект|«искусственный интеллект»]] (1955), прародитель (1956) [[w:логическое программирование|логического программирования]], отец-основатель функционального программирования (одновременно с Лиспом, в 1958 году), лауреат премии Тьюринга (1971) и других.</ref>, «Ранняя история Лиспа»}}
 
Почему, несмотря на репутабельные доводы о полном превосходстве Лиспа над другими языками программирования, народ не пошёл следом за таким убеждением, не одарил Лисп всеобщей славой?
«Мне кажется, что для многих задач Лисп, возможно, будет замещён языком, делающим с Лиспом то, что Лисп делает с машинным языком. […] Но в более высокоуровневом, чем Лисп, языке декларативная часть может оказаться столь большой, что тексты на нём могут не соответствовать программам. Если нечто, заменящее интерпретатор, достаточно умно́, то написанное пользователем будет скорее декларативным описанием фактов о некой цели и доступных для её достижения средств, чем программа как таковая.»
{{Подпись|Джон Маккарти, «Лисп: заметки о прошлом и будущем», 1980 год<ref>[http://www-formal.stanford.edu/jmc/lisp20th/node5.html ''Mysteries and other Matters'']</ref>}}
 
Поищем ответа в сравнении. Популярные языки программирования создавались и создаются обычно инженерами, телефонизаторами, «хакерами» (и простыми студентами), веб-дизайнерами, лингвистами, математиками, любителями языка Си, японцами… для целей вроде создания веб-сайтов, популяризации среди школьников и первокурсников, программирования экзотичных операционных систем или стиральных машин, обработки текстовых файлов или создания «более удобного» соперника существующим языкам.
 
Лисп же изначально испытывал передовые приёмы исчисления и структурирования программм. Удивительно, но все из этих нововведений проникли в сознание программистской общественности лишь как последующие заимствования их в более популярных языках. То есть в тех языках, что милее обычным людям:
<span style="margin-left:-0.1em">Лисп</span> ничем таким похвастаться не может. Его изобрёл в 1958 году Джон Маккарти.
 
<blockquote>«Говорят, мол, [[Ruby|Руби]] это плохо переваренный Лисп или Смоллток, и я с этим согласен. Но он милее обычным людям.»</blockquote>{{Подпись|— [[w:Юкихиро Мацумото|Юкихиро Мацумото]], создатель Ruby}}
Вместо попыток некого соперничества <small>(да ведь и соперничать в середине века было особо не с кем)</small>, Лисп изначально не боялся испытывать всё новые приёмы исчисления и структурирования программм. Удивительно, но все из этих нововведений проникли в сознание программистской общественности лишь как последующие заимствования их в более популярных языках. Многие из этих заимствований были сразу приняты за стандарт (условные операторы, символьное исчисление, переменные как указатели), иные чуть погодя (рекурсия, сборка мусора, интерактивность, синтаксическое сокращение).
 
Многие из этих заимствований были сразу приняты за стандарт (условные операторы, символьное исчисление, переменные как указатели), иные чуть погодя (рекурсия, сборка мусора, интерактивность, синтаксическое сокращение). Всё же, не в малой части нововведения Лиспа ''лишь теперь'' начинают обретать понимание среднего молодого программиста. Некоторые из них даже поныне остаются таинственным древним знанием, робкое применение которого в других языках тотчас объявляется отважным нововведением [бывшим в Лиспе один-два десятилетия]. Примеры: функциональная парадигма, метапрограммирование, родовые функции, именованные и условные параметры; программный код как структура из выражений и многое другое.
 
Из этой наблюдаемой тенденции можно смело заключить: Лисп «сечёт» лишь небольшая прослойка академиков и искин-хакеров лишь потому, что сам он '''ведёт''' дальнейшее развитие иных языков общего назначения, с запозданием от года до десятков лет.
 
<blockquote>[Созданием [[Java|Джавы]]] мы не стремились отыграть программистов на Лиспе; мы целились на программистов [[Си++]]. Многих из них мы утащили куда-то на полпути к Лиспу.</blockquote>
{{Подпись|— Гай Стил<ref>Член стандартизационных комитетов для Си, Фортрана, Коммон Лиспа, Джавы; член IEEE, соавтор диалекта Scheme. }}
 
==Отличия==
 
Однако, изучение Лиспа будет полезно хотя бы для [[Словарик философствующего информатика|глубокого понимания информатики и проектирования программ]].
 
<blockquote>«Мне кажется, что для многих задач Лисп, возможно, будет замещён языком, делающим с Лиспом то, что Лисп делает с машинным языком. […] Но в более высокоуровневом, чем Лисп, языке декларативная часть может оказаться столь большой, что тексты на нём могут не соответствовать программам. Если нечто, заменящее интерпретатор, достаточно умно́, то написанное пользователем будет скорее декларативным описанием фактов о некой цели и доступных для её достижения средств, чем программа как таковая.»</blockquote>{{Подпись|— [[w:Джон Маккарти|Джон Маккарти]], «Лисп: заметки о прошлом и будущем», 1980 год<ref>[http://www-formal.stanford.edu/jmc/lisp20th/node5.html ''Mysteries and other Matters'']</ref>}}
----
<references />
3210

правок