LINUX.ORG.RU
ФорумTalks

2 Sun-ch: переписать ЛОР на Лиспе


0

0

Ну и кто будет переписывать? что за идиотская идея.

Лисп на ЛОРе адвокатируют две категории:
1) толстые лиспотролли, которые кормятся на вкусных жабщиках и похапешнегах ("лисп - это элитарный язык, но вам не понять, потому что вы быдло"), а те в ответ брызжут слюной и доставляют тонну лулзов,
2) школота, которая повелась на п. 1 и считает, что лисп - это круто и илитарно.

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

Если они и есть (вообще на Земле), то заняты в серьезных штучных проектах (для типовых промышленных проектов лисп невыгоден и непригоден), и уж явно не на ЛОРе пасутся.

★★
Ответ на: комментарий от TREIBSTOFF

> Да, макросы лиспа другие, но современные языки достаточно выразительны без макросов. ( С - был намёк на время когда были популярны макросы).
макросы популярны и сейчас, в разной форме и для разных применений. макросы лиспа - это метапрограммирование. что предлагает для этого жаба? как можно для жабы создать новый элемент синтаксиса, который, например, будет создавать конструкцию вида:
foreach element in array > 10 and < 100 do
<doing something with element>
done
?

val-amart ★★★★★
()
Ответ на: комментарий от Karapuz

>И что?

А то что это критерий полноценности языка. Компилятор (интерпретатор) Лиспа например написан на Лиспе ;)

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

> А чего сразу не монады?

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

> Достаточно чтобы при создании объект открывал файл, а при уничтожении закрывал. Плюс время уничтожения должно быть предсказуемым.

А, т.е. читаемость и ясность идут на юх, и приведи хотя пример работы с таким объектом.

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

> Или поскольку не нужно?

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

paranonymous
()
Ответ на: комментарий от val-amart

>будет создавать конструкцию вида:

Цикл и внутри условие - никакие конструкции дополнительные не нужны. От них будет только вред.

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

>А, т.е. читаемость и ясность идут на юх, и приведи хотя пример работы с таким объектом.

Зачем? это очевидно.

>Я тебе привел пример очень практичных и полезных вещей, которые можно добавить в язык.

Т.е. из одного языка сделать другой на коленке. Соответственно получаем wright only код.

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

>Как я уже сказал, а ты это вырезал из квоты - это очень важная и нужная вещь в питоне.

Вот пусть там и остаётся. И не усложняет хороший инструмент лишними деталями, ради каких-то редких случаев.

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

> Зачем? это очевидно. 

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

> Т.е. из одного языка сделать другой на коленке. Соответственно получаем wright only код.

Не делается там из одного языка другой - это миф. Там просто идет 
естественное расширение синтаксиса. Макросы очень похожи на функции. 
А ты же не считаешь, что используя функции - мы получаем wright only 
код?

Что тебе непонятно в этой строке? 

 (with-open-file (foo "no-such-file" :if-does-not-exist nil)
   (read foo))

Или например. 

(clsql:select 'employee :where [= [slot-value 'employee 'last-name]
				"Lenin"])

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

> Вот пусть там и остаётся. И не усложняет хороший инструмент лишними деталями, ради каких-то редких случаев.

Еще раз это не редкие конструкции. Duck-typing - это хороший способ реализации полиморфизма без наследования и без необходимости выстраивать умопомрочительные генеологические деревья.

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

>(with-open-file (foo "no-such-file" :if-does-not-exist nil) (read foo))

Лишние скобки и блок, с объектом проще и естественнее.

>Не делается там из одного языка другой - это миф.

Да, а как же loop и format в cl?

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

> Duck-typing - это хороший способ реализации полиморфизма без наследования и без необходимости выстраивать умопомрочительные генеологические деревья.

Ну в лиспе и нет твоего dick-typing. Но сложность динамизма это не отменяет.

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

> Да, а как же loop и format в cl?

это скорее исключение, чем правило. Обычные программы обходятся без создания dsl, как я уже говорил. Ты бы еще привел в пример, clsql, cl-unification cl-pccre и прочая.

>с объектом проще и естественнее.

Приведи пример, посмотрим, где там проще и естественнее.

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

> Ввод-вывод в стандартные потоки в cl.

Это ты о чем?

Короче, ты слишком глупый троль. Чтобы знал в дальнейшем тролить про лисп нужно на тему слабых библиотек и не очень большого коммюнити лиспа, ну еще можешь рассказать про проблемы с тредами в некоторых реализациях, про проблемы с clos, сложностями в расkage system, короче есть где развернуться, а твоя критика особого внимания не заслуживает.

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

>слабых библиотек и не очень большого коммюнити лиспа

А откуда у языка который не используют всё это будет?

>а твоя критика особого внимания не заслуживает.

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

>Это ты о чем?

Разве в cl нельзя при помощи механизма динамических переменных менять стандартный ввод-вывод в некоторой области программы. Чем не подходит под описание объекта с вводом-выводом?

>Короче, ты слишком глупый троль. >Чтобы знал в дальнейшем тролить про лисп нужно на тему

Короче, походу совсем ты сектант.

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

> Хаскель и не предназначен для написания программ - нет ни отладчика, ни профилирования по памяти, насколько я знаю, там любой серьёзный набор данных может из-за ленивости быстро съесть всё доступную память. Язык исключительно для специалистов по теории категорий.

Ты мне делаешь смешно. Хаскель применяется для таких штук, которые и не снились твоим мейнстримовым языкам, например:

http://www.linux.org.ru/view-message.jsp?msgid=3412468

Позволю сам себя процитировать.

> Наткнулся тут на rsdn на пост с интересной ссылкой на lambda-the-ultimate любопытную заметку о том как на Haskell сделали компилятор DSL, в итоге результирующий код оказался в четыре раза производительнее, чем у сишных библиотек.

> http://www.rsdn.ru/forum/message/3244321.all.aspx

> http://lambda-the-ultimate.org/node/3147

И да, на такие вещи людей не набирают по вакансиям на job.ru

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

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

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

Тебе уже привели примеры, добавлю:

http://www.franz.com/success/

http://www.lispworks.com/success-stories/index.html

хоть посмотри в каких проектах используется лисп.

Например, из недавних, по ссылке с franz:

http://www.boeing.com/phantom/sechecker/

> The Boeing Simplified English Checker (BSEC) helps technical writers check their documents for compliance with ASD (AeroSpace and Defence Industries Association of Europe) Simplified Technical English, a writing standard for aerospace maintenance documentation.

Помогает техническим писателям в Боинге проверять свои документы (на английском языке) на соответствие требованиям аэрокосмической индустрии в Европе.

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

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