LINUX.ORG.RU
ФорумTalks

Закапывателям лиспа

 


1

7

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

Краткая и неполная хроника лопатных походов на Lisp:

Время: 70-е - 80-е года прошлого века
Закапывающие: C
Итог: 
C: с боями выбил себе нишу низкоуровневого программирования и окуклился.
Lisp: потеряны Lisp-машины, сообщество объединилось под знаменем Common Lisp.
Время: конец 80-х - 90-е года прошлого века
Закапывающие: C++
Итог: 
C++: превратился в мумифицированный труп, изредка гальванизируемый для выжимания чуть большей производительности.
Lisp: ничего не заметил.
Время: начало 90-х
Закапывающие: Dylan
Итог: 
Dylan: породил несколько личинок, забыт.
Lisp: счел Dylan отличной шуткой.
Время: конец 90-х - начало 00-х
Закапывающие: Java
Итог: 
Java: до сих пор стучится лбом в хитиновый панцирь.
Lisp: урча и пожмякивая вобрал в себя виртуальные машины.
Время: начало-середина 2000-х
Закапывающие: личинки Dylan (Python, Ruby) и примкнувший к ним PERL
Итог: PERL выкинут на свалку истории, Python и Ruby выгнаны ссаными тряпками в веб.
Lisp: показательно проигнорировал недоязычки.
Время: 2000-е - 2010-е
Закапывающие: Caml, Haskell
Итог: 
Закапывающие: держатся впереди за счет бурной активности не испорченных адекватностью прозелитов.
Lisp: гонится за незадачливыми закопщиками, с громоподобным "ОМ НОМ НОМ НОМ" вбирая в себя их идеи. 

Источник: http://repl-stories.blogspot.com/2012/05/blog-post.html

Перемещено post-factum из development

★★★★★

Последнее исправление: ymn (всего исправлений: 1)

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

RedPossum ★★★★★
()

А что это вообще такое, Lisp? :D Я его видел только на картинках... Lisp нужен, он используется в Transcendence для написания модов...

Итог: PERL выкинут на свалку истории

ЩТО? А я и не заметил, и оказывается изучал мертвый язык, ага :3

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

Массовость ушиблиности связана что Буч в майнстриме преподования в наших палистинах Буч считается представителем_науки в области ООП - легализация шарлотанства причём классическое

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

Лисп нотация - всмысле S-exp макартни - про CL далеко не уверен.

qulinxao ★★☆
()

Зачем закапывать один из самых непопулярных языков в мире? Он и так уже там.

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

Hertz

Перестаньте насиловать труп!

дядя, ты не поверишь, на этом «трупе» всё и пишется. А вот этого вашего LISP'а я и не видел нигде... Может я чего-то не знаю? Может только опенсорс на C/C++? А вот венда с фотошопом на LISP'е исключительно? Тогда всё ясно...

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

Правило 95%, не?

Обычная аргументация лисперов на ЛОРе не даёт оснований полагать, что какая-то заметная их часть принадлежит к этим самым 5%.

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

не... правило 146% :-)

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

drBatty ★★
()

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

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

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

Это какое-то отсутствие чувства юмора.

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

Еще через неделю они решили «хватит извращений!» и откопали стюардессу...

Перестаньте насиловать труп!

havelite
()

Я правильно понимаю, что со времен последнего лиспосра^W дискуссии список широко использующихся программ, написанных на лиспе, не сильно расширился в абсолютном выражении и для поднятия боевого духа была придумана эта мантра?

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

значит программист на жабе или что-то подобное ему

а я вот на «умершем» С++ умею SSE. и SSE2. и SSE4. и AVX. и NEON. и операторы перегружать, поэтому могу умножить матрицу на вектор значком *

а вы нет.

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

... и операторы перегружать, поэтому могу умножить матрицу на вектор значком *

Ололо. А потом другим людям нужно разбирать эту кучу нечитабельного говна на перегруженных операторах. Более убогую и неудобную абстракцию придумать сложно.

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

А ничего, что 95% софта написано таки на C/C++?

Ты считаешь так страшно жить и должно быть дальше?

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

да мне как то не критично, лисп не лисп. всё это интересно, но в данный момент оно мне и не нужно.

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

могу умножить матрицу на вектор значком *

Ололо. А потом другим людям нужно разбирать эту кучу нечитабельного говна на перегруженных операторах

Как же ты линейную алгебру учил, болезный?

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

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

xxx: кстати, лисп - не функциональный, а мультипарадигменный язык, на нем можно писать чисто функциональные, императивные, объектно-ориентированные, логические программы, или же придумать свой стиль

xxx: А Ока - многофункциональная машина. В ней можно жить, заниматься сексом, хранить картошку, ей можно подпирать забор, чтобы не упал, её можно сбрасывать с самолёта на голову агрессору, или придумать собственное применение.

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

А потом другим людям нужно разбирать эту кучу нечитабельного говна

Если некомпетентен и не владеешь инструментом, то для тебя любой код будет «нечитаемым говном» и «неудобными абстракциями».

BYHYRT
()

Время: 70-е - 80-е года прошлого века
Мейнстрим: пишет программы
Лисперы: доказывают, что лисп лучше

(прошло 40 лет)

Время: 2010-ые
Мейнстрим: пишет программы
Лисперы: доказывают, что лисп лучше

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

Да. Только в случае крестов он будет говном в любом случае.

encyrtid ★★★★★
()

АБСТРАКТНО: ЛNСП копирует фичи других языков, так как сам придумать ничего не способен.

...в итоге, он становится ещё более раздутым, чем Си++.

quantum-troll ★★★★★
()
Ответ на: комментарий от encyrtid

могу умножить матрицу на вектор значком *

Ололо. А потом другим людям нужно разбирать эту кучу нечитабельного говна

Как же ты линейную алгебру учил, болезный?

И каким боком тут линал?

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

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

А ты не поверишь, там матрицы и векторы умножают. И вообще применяют матанные операторы. конечно можно всем рассказывать что нифига не понятно, но вот мазафака - программисты на умершем С++ эти операции кропотливо декларят в заголовочниках и код приложения получается читаемым. прям как в учебнике по линейке.

ckotinko ☆☆☆
()
Ответ на: комментарий от encyrtid

И каким боком тут линал?

Но ведь в линейной алгебре оператор умножения (записываемый как ⋅, ⨯, * или как juxtaposition) означает разные вещи в зависимости от типа операндов:

  • число-число (обычное произведение);
  • число-вектор или число-матрица (поэлементное умножение);
  • вектор-вектор (скалярное или векторное произведение);
  • вектор-матрица или матрица-матрица (матричное произведение).

Налицо перегрузка операторов! Так и запишем: линейная алгебра - куча нечитаемого говна и неудобных абстракций.

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

=)

классно. А ничего, что 95% софта написано таки на C/C++? ИЧСХ, остальные 5% написаны совсем таки не на LISP, и прочей подобной ботве?

В 45-ом вроде победили немцев, но они почему-то всё равно живут лучше. Вот так и тут.

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

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

Лисперы злые? Разве? Можно пруф?

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

Я знаю как обозначаются операции с матрицами. Я говорю про то что перегрузка операторов в крестах - один из способов превратить код в нечитабельную кашу (особенно это касается перегрузки () и []).

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

Я говорю про то что перегрузка операторов в крестах - один из способов превратить код в нечитабельную кашу (особенно это касается перегрузки () и [])

Ну да, в ответ на прекрасно обоснованное применение прегруженного оператора надо еще вспомнить про адресную арифметику, тьюринг-полные шаблоны и еще 100500 способов выстрелить себе в ногу.

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

Я говорю про то что перегрузка операторов в крестах - один из способов превратить код в нечитабельную кашу (особенно это касается перегрузки () и []).

А перегрузка операторов в пистоне?

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

И это мы ещё не упомянули про декартово произведение, произведение групп, внешнее, внутренне и тензорное произведение, композицию функций, операцию свёртки...

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

особенно это касается перегрузки () и []

Если мы перегружаем [] - мы заявляем, что объект будет вести себя подобно массиву. Если перегружаем () - наделяем объект семантикой функции (т.е. его можно будет вызвать). Что не так?

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

Кстати, в Питоне она используется довольно редко.

Ну, посмотри, например, LEPL (кстати, хороший пример обоснованной перегрузки операторов).

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

LEPL (кстати, хороший пример обоснованной перегрузки операторов).

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

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

Мне это не кажется обоснованным использованием перегрузки

Почему? В данном случае она следует уже сложившейся практике описания грамматики, так что логика насчёт математической нотации в полной мере применима и здесь.

хорошо, что в Питоне такое не часто встретишь

В С++ же тоже не часто. Просто был период, когда перегрузка оператор была сильно разрекламирована, но кажется он уже давно прошёл.

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

В данном случае она следует уже сложившейся практике описания грамматики

Если это попытка натянуть EBNF на синтаксис Python - получилось очень коряво. В SPARK и PLY сделано проще (и честнее :)).

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

Ну и к чему здесь эта цитата?

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

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

А перегрузка операторов в пистоне?

Кстати, в Питоне она используется довольно редко.

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

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

Это смотря кем и в каких задачах. У меня сплошь и рядом перегруженные в С++ операторы тащутся в питон

Я бы сказал, что твои задачи для Python не очень типичны.

да и в питоне при написании че нить CAS-оподобного без перегрузки никуда.

Это снова математическая нотация.

tailgunner ★★★★★
()
Ответ на: комментарий от quantum-troll

Математическая запись тяготеет скорее к краткости, чем к простоте, в отличие от ЯП.

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

В программировании бы так.

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