LINUX.ORG.RU

Почему Лисп умер.

 ,


4

5

Очень часто в лисп-срачах на лоре можно наткнутся на аргументы лиспоненавистников, навроде «если лисп настолько крут, почему на нем не пишут энтерпрайз?» или «покажите мне годные приложения на лиспе». Также, иногда, встречаются жалобы, вроде таких: «Изучаю лисп на протяжении года, но пока не увидел значительных отличий от [some_lang]. Не понимаю, о какой-такой особенной мощи тут все говорят». Эти замечания, наверное, отчасти справедливы, во всяком случае, они основаны на реальном опыте.

Я нашел цитату Алана Кея сегодня, которая, наверное проясняет данный вопрос, чуть более чем полностью:

Да, в действительности и Lisp и Smalltalk были погублены восьмибитными микропроцессорами и не потому, что они были восьмибитными, а потому что их архитектура была плохой и они они поставили крест на динамических языках. Сегодня эти языки работают приемлемо несмотря на ту же плохую архитектуру из-за гигантских размеров кэша 2 уровня. Некоторая часть работы производится быстро прямо в кэше. Поэтому Lisp и Smalltalk жизнеспособны сегодня. Но оба они, конечно, абсолютно устарели

О как! Чего же не прижились lisp-процессоры, forth-процессоры и прочие ЯП-процессоры? Универсальные инструменты менее удобные, но более востребованные и имеют лучшую адаптивность к новым задачам.

sdio ★★★★★
()

А так, вот, смотрите живой лисп.

Живого смолтолка пока нет, но там из интересного было только то, что код организовывался не в файлах, а в единицах языка. Ну и интегрированная среда разработки. Может и смолтолк оживят, хотя вряд ли, ведь ООП не нужно.

PolarFox ★★★★★
()
Ответ на: комментарий от sdio

FPGA не как замена CPU, а как дополнение. На cpu управляющая программа, на FPGA считающая. С видеокартами нечто похожее произошло, правда видеокарты другой архитектуры — один код - много потоков.

PolarFox ★★★★★
()

Лисп - это огромное семейство языков. В нем постоянно появляются новые члены и вымирают старые. Этот процесс называется эволюция. И его наличие говорит о здоровии всей популяции. Так что, по всей видимости, смерть лиспу обеспечит только полная замена архитектуры компьютеров на какую-либо экзотику типа квантового или днк- компьютера, и о которой пока можно только мечтать.

если лисп настолько крут...

Да не «крут», а весьма гибок и достаточно удобен для решения некоторых задач.

о какой-такой особенной мощи тут все говорят?

Все правильно. Настоящий программист может написать фортран-программу, используя любой язык.

anonymous
()
Ответ на: комментарий от PolarFox

На cpu управляющая программа, на FPGA считающая

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

sdio ★★★★★
()
Ответ на: комментарий от sdio

Плавающая точка тоже раньше через отдельное устройство реализовывалась. А сегодня во многих процессорах есть встроенные видеоускорители.

PolarFox ★★★★★
()
Ответ на: комментарий от anonymous

Этот процесс называется эволюция. И его наличие говорит о здоровии всей популяции

К сожалению, это скорее деволюция. Современные лиспы теряют свою динамическую природу — наиболее сильную свою сторону.

anonimous
() автор топика

Потому уменьшается количество инопланетян, пишущих на этих инопланетянских языках.

xterro ★★★★★
()
Ответ на: комментарий от anonimous

Современные лиспы теряют свою динамическую природу — наиболее сильную свою сторону.

Что? А самый лисп из всех лиспов не менялся с 94 года. Так что когда он что потерял - вопрос

vonenij
()

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

anonymous
()
Ответ на: комментарий от unt1tled

а также современные архитектуры процессоров есть развод всего человечества на бабки не хуже чем виндовс

unt1tled ★★★★
()
Ответ на: комментарий от anonymous

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

Ага, только эти 30 иногда умещаются в 1 строку на нетипизированном.

anonimous
() автор топика

Да, в действительности и Lisp и Smalltalk были погублены восьмибитными микропроцессорами и не потому, что они были восьмибитными, а потому что их архитектура была плохой

их архитектура была «плохой» не вообще, а только с т.з. лиспера. Как и у любого инструмента, у ФП есть и плюсы и минусы. Решить любую задачу можно на любом Тьюринг-полном ЯП, это доказано. Вот только на BF это будет _дорого_, на лиспе — дешевле, но всё равно _дорого_. В 95% случаев самое дешёвое на процедурных ЯП вроде сишечки. На них и надрачивают CPU. А на мнение теоретиков всем насрать.

Сегодня эти языки работают приемлемо несмотря на ту же плохую архитектуру из-за гигантских размеров кэша 2 уровня. Некоторая часть работы производится быстро прямо в кэше. Поэтому Lisp и Smalltalk жизнеспособны сегодня.

не правда. Только для простых хэлловорлдов это верно. IRL никаких кешей не хватит на этот ваш лисп.

emulek
()
Ответ на: комментарий от PolarFox

ФГПА универсальнее цп, но что-то их в компьютеры массово не ставят.

тебе поставить? Говно вопрос. Денег дай только.

emulek
()
Ответ на: комментарий от PolarFox

Плавающая точка тоже раньше через отдельное устройство реализовывалась.

оно и сейчас так. Просто SSE внутри CPU.

А сегодня во многих процессорах есть встроенные видеоускорители.

для встроенного видеоускорителя _всегда_ есть задачи (в десктопном CPU), а кому нужен твой лисп? Мне на нём считать нечего. Не нужен. Мне, и ещё 95% юзеров. А 5% должны страдать.

emulek
()
Ответ на: комментарий от anonymous

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

про задачу трёх тел слышал?

emulek
()
Ответ на: Это борщелисп ваш умер от kot_otbelivatel

Ни один стиль программирования не подходит идеально для всех задач. Система Mathematica отличается от...

Че то мне это напоминает...

anonimous
() автор топика
Ответ на: комментарий от unt1tled

а также современные архитектуры процессоров есть развод всего человечества на бабки не хуже чем виндовс

ты узко мыслишь. На самом деле мы == паразиты. Питаемся крошками, которые падают со стола военных. Потому нас никто не слушает, а слушает хозяев. Нужно будет военным LISP — будет у тебя в компьютере LISP, причём нативный. И будешь хвастаться перед друзьями числом контекстов и гигабайтом памяти в кеше первого уровня. Как сейчас ядрами хвастаешься, которые нужны для просчётов ядерного взрыва. А тебе — что бы хвастаться.

emulek
()
Ответ на: комментарий от emulek

Как сейчас ядрами хвастаешься, которые нужны для просчётов ядерного взрыва

Ты намекаешь, что от них нет толку? Вроде, вика пишет:

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

anonimous
() автор топика
Ответ на: комментарий от intelfx

Я, вообще, нуб в программировании, но у меня создалось ощущение, что JS — самый выразительный язык, из тех, которые мне доводилось щупать. И BTW, я где-то читал, что Айк ненавидит типы, так что у вас это взаимно:)

anonimous
() автор топика
Ответ на: комментарий от MyTrooName

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

anonymous
()

С каждым разом все толще и тупее.

Deleted
()
Ответ на: комментарий от anonymous

Один сказал, остальные повторяют… Единственное что у JS с лиспом общее — наличие переменных и функций. У питона тоже есть переменные и функции, питон — лисп?

PolarFox ★★★★★
()
Ответ на: комментарий от anonimous

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

верно. А теперь подумай: если-бы в Intel вместо новых ядер увеличивали-бы скорость работы CPU, и придумывали разные новые HT, то твой ноут заработал-бы быстрее или медленнее? Не спеши только с ответом.

Я знаю, что два хреновых ядра лучше чем одно хреновое. Но разве одно хорошее ядро хуже двух хреновых?

emulek
()
Ответ на: комментарий от Deleted

Схема:

  • Минимализм
  • Лексическая область видимости
  • Оптимизация хвостовой рекурсии
  • Продолжения
  • Динамическая типизация
  • S-экспрешены и гомоиконность
  • Функции и замыкания
  • Макросы
  • Нелюбовь к мутабельности

ЖС:

  • Динамическая типизация
  • Функции и замыкания
PolarFox ★★★★★
()
Ответ на: комментарий от emulek

Но разве одно хорошее ядро хуже двух хреновых?

Для большинства десктопных приложений да. Многопоточный код писать толком никто так и не научился.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

Единственное что у JS с лиспом общее — наличие переменных и функций

С точки зрения семантики, ФП-часть JS - это scheme чистейшей воды. Абсолютно все, за исключением call/cc, что есть в scheme, есть и в JS. Но помимо этого, в JS есть некоторый аналог олдлисповских функций с динамическим биндингом, call-by-name, которые составляют его объектную часть, это аналог селфа, фактически. Плюс асинхронность из коробки. JS, строго мощней, чем любой из ныне существующих лиспов, тут даже сомнений быть не может, ему недостает лишь гомоиконности, но в ваших лиспах ведь тоже нет сейчас никакого code-as-data, если по чесноку, а?

anonymous
()
Ответ на: комментарий от intelfx

Не bash, а shell, раз уж на то пошло, но в JS, при желании, можно писать как в шелле, в смысле - на одних строках.

anonimous
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.