LINUX.ORG.RU

Приходилось ли вам писать на Лиспе?


2

2

Ну, что ж, в Development так в Development, хотя Лисп давно перестал быть мемом одного лишь Development'а (и даже одного ЛОРа). Итак, сабж!

[ ] Да, профессионально и за деньги
[ ] Да, just for fun и для самообразования
[ ] Да, участвовал в opensource-проекте
[ ] Да, пилил скрипты Emacs/GIMP/AutoCAD/Lilypond etc.
[ ] Да, в рамках образовательной работы (лаба, курсовик, диплом)
[ ] Да, в рамках академической работы (диссертация, статья, монография)
[ ] Да, мне сказали, что лисперов любят девушки
[ ] Нет, но собираюсь
[ ] Нет, и не собираюсь
[ ] Вообще-то я Джон МакКарти, а вы кто такие?
[ ] в Советской России Лисп пишет на тебе!

Приветствуются развернутые ответы и верифицируемые пруфлинки. Например, на какую фирму работали, в каком конкретно opensource-проекте участвовали, какая была тема научной работы, помогло ли с девушками, и тому подобное. INB4 буквоедов: под «лиспом» подразумеваются все языки семейства: Scheme, CL, Clojure и прочие.

★★

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

> сколько языков с той или иной поддержкой ООП появилось за период

существования CLOS? сколькие из них оказались практически успешными?


При чём здесь это? Я говорю о конкретных мотивах создания Smalltalk. Или вы хотите выдать свою безграмотность за адекватность?

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

Но как быть с быстродействием? БПФ, по утверждению самого лиспера, проигрывает реализации на С.

Реализация? Или компилятор? Сам язык (Коммон) Лисп ортогонален производительности: на нём можно дать компилятору ровно столько же информации о структуре программы (типы данных, сигнатуры функций), как и в Си. Другое дело, что компилятор в современном SBCL хуже, чем в том же современном gcc. Но лучше, чем в уже почившем Borland C++ или ещё кое-где используемом gcc-3.x.

Разница в 3.5 раза на вычислительной задаче между компилятором статического ассемблероподобного языка с кучей техник оптимизаций, типа SSA, и компилятором динамического сверхвысокоуровневого языка без тонких техник оптимизаций - это очень мало. Если какая-нибудь добрая душа напишет лисповый фронтэнд к gcc, то разница сократится до процентов.

И цифровые фильтры значит тоже будут проигрывать. Для пользователя фильтра будет малое утешение, что Лисп показался разработчикам удобнее, чем С.

Дайка-ка угадаю: две вещи, которые тебе приходилось писать в жизни - это веб-морда к БД и цифровой фильтр? Могу огорчить: основная масса программ в мире - event-driven. С какой скоростью там отработает килобайт кода между двумя редкими событиями - уже неважно. В таких задачах основным критерием является производительность труда программиста, т.е. сколько времени ему надо носить денег, пока он не напишет программу. Рекомендую ознакомиться с блогом присутствующего тут archimag'а: пишет на Лиспе очень много и очень быстро, и не очень простые задачи.

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

>ну приведи хоть строчку своего кода, а еще лучше посчитай что нибудь реально с помощью БПФ. Все посмотрят что у тебя сойдется и как :)

У лисперов однако самомнение. Просто таки каста жрецов Лиспа, взирающих на всех остальных - простых смертных с их детскими игрушками С и ПХП - с небесных лисповых высот.

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

Common Lisp - это язык с минимальным синтаксисом, со скобочками, близкий к AST.

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

Common Lisp позволяет добиться мощной абстракции и предоставляет хорошие возможности для DSL.

Как видишь, отличие только в наличии скобочек ;)

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

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

мы накастовали второго по величине лиспового тролля :)

Троллят малограмотные люди, которые ничего не знают, не умеют


мне лень разгребать тонны прошлых холиваров, если тебе вдруг захочется пруфлинк, но я повторю, никаких доказательств, что ты что-то написал на лиспе - ты не предоставил, одна ссылка - и я соглашусь с тем, что ты Ъ, а пока что ты ничем не отличаешься от Love5an, который с умным видом рассуждает о крутости языков, но пока не написал ничего более-менее сложного на любимом лиспе( начатая им «работа» по созданию банальной обертки вокруг directx - это мягко говоря смешно )

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

У лисперов однако самомнение.

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

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

> рекомендую ознакомиться с блогом присутствующего тут archimag'а: пишет на Лиспе очень много и очень быстро, и не очень простые задачи.

ознакомился - какие задачи из там описаных вы посчитали сложными?

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

Ну так ответьте тада на самый главный вопрос: почему Лисп такое редкое явление, хоть и существует 50 лет? Почему он не захавал всё и вся? Почему вокруг сплошные Жабы, ПХП, С, С++, Перлы с Питонами?

Почему производители программ не перейдут на Лисп, резко увеличив тем самым скорость разработки и уменьшив стоимость (как тута писали с $1 000 000 до $10 000) и не захватят рынок таким 100-краным демпингом???

anonymous
()

lisp хорош для аналитики
(да-да старый добрый матан,
но для этого DARPA и вкладывала в него деньги),
когда требуется хорошая скорость кода,
инкрементальная разработка и возможность
контроля и изменения кода в рантайме без
остановки виртуальной машины(ispect).
конечно битву за AI мы проиграли
но зато накопили огромное количество
алгоритмов data mining.

достаточно посмотреть предложения
на http://lispjobs.wordpress.com/
чтобы увидеть что ищут спецов
по обработке данных: тут и rule based
системы, problem solving и комьютерная лингвистика,
биоинформатика и trading system.
есть даже предложения от US Army :-D

а самая крупная котнтора (после US Army)
использующая lisp
http://www.itasoftware.com
разрабатывает системы планирования авиа перелетов
(тут можно почитать какие языки они используют
и для каких задач
http://www.itasoftware.com/careers/l_e_techlike.html?catid=7)

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

ознакомился - какие задачи из там описаных вы посчитали сложными?

А какие сложные задачи ты пишешь? 99,9% процентов программистов занимаются банальщиной. Даже в крутых конторах каждый десятый только движет прогресс, остальные так, на подхвате (типа меня :[ ).

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

Ну так ответьте тада на самый главный вопрос: почему Лисп такое редкое явление, хоть и существует 50 лет? Почему он не захавал всё и вся? Почему вокруг сплошные Жабы, ПХП, С, С++, Перлы с Питонами?

Это очевидно: высокий порог вхождения. По той же самой причине люди в основной своей массе, например, не понимают ассемблер, ассемблер человеку недружествен. Освоить C, потом с грехом пополам перебраться на C++ (на уровне C с классами, ибо плюсы по-Александреску тоже мало кто понимает) - это гораздо легче, чем сразу столкнуться с замыканиями, лямбдами, high-order функциями и т.п. Это предполагает весомый багаж знаний в теории вычисления, который в ВУЗах пока не дают, а заработать опытом - это нужно время. Основной недостаток всех этих маргинальных языков (а может, это и преимущество, хз) - высокие требования к подготовке программиста.

Почему производители программ не перейдут на Лисп, резко увеличив тем самым скорость разработки и уменьшив стоимость (как тута писали с $1 000 000 до $10 000) и не захватят рынок таким 100-краным демпингом???

Есть успешные конторы, которые коммерческую аппликуху пишут на маргинальных языках. На Лиспе, Кложуре, не говоря уж о Хаскелле.

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

> ознакомился - какие задачи из там описаных вы посчитали сложными?

Зря в итоге зашла речь в подобном ключе, но я ладно, я отвечу. Например, cl-closure-template - дело даже не в сложности, а в скорости. Разработка решения заняла - 7 дней (включая JS backend), основное отличие от аналогичной системы Google (используемой по её утверждениям во всех её основных AJAX приложениях, типа Gmail или Google App) - отсутствие поддержки тэга msg, по причине что для меня в данный момент не актуальны системы локализации. Решение от Google на Java, размер исходного кода - примерно 15 000 строк. Решение на С++ наверняка было не меньше, чем на Java и потребовало полгода разработки одним человеком. У меня без учёта тестов (у Google их нет, по крайней мере я не нашёл) - чуть менее 1000 строк.

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

(в продолжение моего оригинального поста)

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

Современные среды для Smalltalk написаны на самом Smalltalk и, вследствие этого, работают с виртуальной машиной напрямую -> отсюда имеем живой рефакторинг, контроль версий на уровне кода и многие другие прелести.

Это всё я говорю к тому, что спорно утверждать превосходство CL в эффективности разработки над другими языками:

archimag

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

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

> Ссылки будут?

/me мечтательно вспоминает о временах, когда неперевелись ещё на ЛОРе специалисты по тонкому троллингу (язык не поворачивается их троллями называть), которые не игнорировали ни один аргумент и даже искали - и находили - ссылки.

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

Всё, что вы говорите о Smalltalk в такой же степени применимо и к Common Lisp, просто потому, что эти свойство в Smalltalk были взяты из Lisp. Я это уже говорил, вы что не читаете? Только Lisp это как был оригинал и в последующем DARPA потратила сотни миллионов американских денег на развитие и стандартизацию этих возможностей. Ну а позже в Common Lisp была добавлена лучшая объектная система - CLOS. Так что Smalltalk это просто младщий брат ;)

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

Если бы объектная парадигма появилась в лиспе раньше, то причины возникновения Smalltalk просто бы не возникло

Если бы да кабы, то во рту росли б грибы :)

если не помните, то первый графический интерфейс был реализован в той же лаборатории именно на лисп и лишь позже они начали для этих целей использовать Smalltalk

Если честно - не помню.

Или с историей возникновения Smalltalk вы не знакомились?

Знакомился и основные моменты в голове держу. Но интимную подробность про первый GUI на LISP, видимо, упустил. В конце рабочего дня специально перечитаю вот это, или любой другой ваш пруфлинк.

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

>Это очевидно: высокий порог вхождения.

То есть кадры решают всё. Вы же понимаете, что дешёвая массовая жратва Макдональдса имеет гораздо больший успех, чем ресторан с изысканейшими блюдами за космические суммы для банкиров. Так и с Лиспом. Чем проще язык, тем лучше, тем больше взаимозаменяемых сотрудников-винтиков. Иили иметь 1 вымогателя-лиспера, шантажирующего работодателя увольнением и невозможностью его замены.

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

Вы собственно о чьей выгоде беспокоитесь? А если завтра вы откроете со своим приятелем стартап, где только вы и никаких наёмных рабочих, вас будет успокаивать тот факт, что вас легко заменить и конкуретны с большим финансированием легко вас превзойдут?

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

>> Для сравнений и выводов нужно обладать знанием в сферах сравнения.

Да вы что? Чтобы сказать, что Таёта лучше Жигулей, надо обладать «моральным правом» и быть автоконструктором со стажем 10 лет и более?


Писать компиляторы для C и Lisp'ов вас никто не заставляет, а уметь водить и «Таёту» и Жигули, чтобы их сравнивать, надо.

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

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

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

Чем проще язык, тем лучше, тем больше взаимозаменяемых сотрудников-винтиков.

Это пока не заходит речь о проектах повышенной сложности, которые взаимозаменяемые сотрудники-винтики просто не в состоянии выполнить. Если же брать более квалифицированных (и вредных) сотрудников, то они уже сами выберут, с помощью какого средства им задачу решать. Естественно, это уже не массовое программирование («элитное» типа =).

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

>Если же брать более квалифицированных (и вредных) сотрудников, то они уже сами выберут, с помощью какого средства им задачу решать

Это точно! Когда надо было написать математику, я сказал «работодателю», что буду это писать на С++ и всё остальное идёт на йух! И возражений не последовало, куды ему деваться-то. Лисперы могут точно также строить своих беззащитных супротив таких предъяв манагеров.

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

>> Когда надо было написать математику

Ильин-Позняк? Не признал в гриме)))

я сказал «работодателю», что буду это писать на С++

Работодателю пох на С++, ему главное - результат. Трахаться с кодом всеравно тебе.

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

>> популяризируем! ;)

попу ... что?... ляризируем, говоришь... Очень похоже на правду... )))

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

> Современные среды для Smalltalk написаны на самом Smalltalk и, вследствие этого, работают с виртуальной машиной напрямую -> отсюда имеем живой рефакторинг, контроль версий на уровне кода и многие другие прелести.

Ты так говоришь, будто это хорошо.

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

> Это пока не заходит речь о проектах повышенной сложности

Таких не существует в природе

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

Лучше брать дешевых и невыпендривающихся. Интегрально дешевле выходит.

Естественно, это уже не массовое программирование («элитное» типа =).

Илита не нужна

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

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

Тсс, тут весь цвет общества собрался =)

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

> А если завтра вы откроете со своим приятелем стартап, где только вы и никаких наёмных рабочих, вас будет успокаивать тот факт, что вас легко заменить и конкуретны с большим финансированием легко вас превзойдут?

Если я буду незаменимым, то я этот стартап никогда никому не смогу продать. Соответственно, мне никогда не дадут на него инвестиций. И на кой такое надо? Нет уж, если стартап, то только жаба и пыхпых. Главное ведь не язычок программирования, а идея.

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

>> Современные среды для Smalltalk написаны на самом Smalltalk и, вследствие этого, работают с виртуальной машиной напрямую -> отсюда имеем живой рефакторинг, контроль версий на уровне кода и многие другие прелести.

Ты так говоришь, будто это хорошо.

Куда лучше, чем для обеспечения банального автокомплита писать ещё один парсер-интерпретатор, по сути :)

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

> Есть успешные конторы, которые коммерческую аппликуху пишут на маргинальных языках. На Лиспе, Кложуре, не говоря уж о Хаскелле.

Ха ха ха, это миф. Вас всех разводят как лохов!

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

> Главное ведь не язычок программирования, а идея.

Как ни странно, главное - скорость (и, хотя бы, наличие) реализации. Идей куча, реализовано мало.

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

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

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

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

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

> Как ни странно, главное - скорость (и, хотя бы, наличие) реализации. Идей куча, реализовано мало.

В большинстве успешных бизнес-идей (от facebook и до нетбуков на ARM) нет никакого матана. И для реализации эквипенисуально, использовать ли PHP или хаскелли матанистые. Стоящих идей очень мало.

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

> Куда лучше, чем для обеспечения банального автокомплита писать ещё один парсер-интерпретатор, по сути :)

Зачем «еще одни»? Используй тот же :) «Живой рефакторинг» тоже зависит не от наличия VM, а от наличия подходящего фронтенда для компилятора.

У VM в стиле Смоллтока (да и Лиспа тоже) есть один огромный недостаток - это «вещь в себе». Кому нафиг нужен контроль версий «на уровне кода», если в проекте используется 2-3 языка и файлы данных разных форматов?

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

> И код весь write only

Это можешь сказать в адрес какого-угодно языка, кроме Лиспа. ;)

Почему везде используются эти совершенно нечитаемые инфиксные операторы?

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

> Почему везде используются эти совершенно нечитаемые инфиксные операторы?

Чем длиннее тред - тем толще тролли %)

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

> И нам тут это пытаются впарить как панацею

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

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

> Удачи, идеи, кстати, уже давно ничего не стоят, угу.

Просто идеи обычно ничего не стоят. Успешные идеи стоят очень многого. Успешность проверяется практикой, естественно.

Хотя, для early stage startup, еще в стадии «прототип на бумаге» обычно pre-money valuation в Силиконовой Долине начинается от $100000.

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

> В третий раз прошу показать пальцем на коммент в котором сказано, что языки кроме лиспа не нужны.

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

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

>> Современные среды для Smalltalk написаны на самом Smalltalk

И шо? Спеда для турбопаскаля 6.0 тоже написана на турбопаскале. Подозреваю, что IDE для Visual Studio тоже написана в Visual Studio.

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

> Кому нафиг нужен контроль версий «на уровне кода», если в проекте используется 2-3 языка и файлы данных разных форматов?

Ну, мне бы не помешал семантический diff и merge. Для всех 2-3 языков в проекте, конечно же. Пока что это дело есть на адекватном уровне только для XML. :(

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