LINUX.ORG.RU
ФорумTalks

[недоумение][разочарование] LISP vs. Java - полное фиаско :(

 


0

0

Всем привет...

Хочу поблагодарить всех, кто мне помогал с задачкой (http://www.linux.org.ru/view-message.jsp?msgid=3746388), хотя результат получился, мягко говоря, плачевный :( а если честно говорить - жидко обкакались :)

Короче, я поговорил со знакомым лисп-гуру, он мне предложил код по разбору DSL и манипуляции XML... Всё с самого начала пошло наперекосяк :( Кода, кстати, реально много, десятки файлов... Сперва оно просто не запускалось: у них там Аллегро LISP, у нас SBCL, там разные конструкции... После того как подпилил, стало запускаться. Но тормозит просто по-чёрному, не знаю, может у SBCL под нашу платфору JIT какой-то недоделанный. Потом оказалось, что отрабатываются только INSERT и DELETE, апдейты не отрабатываются, гуру не дописал... шаблоны файлов не обрабатываются, zip-формат не поддерживается... тимлид посмотрел на эту гору кода со скобками, покрутил пальцем у виска, теперь они все на меня странно смотрят в коридоре :)

Что самое обидное, жабщики это сделали ещё в пятницу, безо всяких шеллов, файндов и XSLT... Распарсили DSL при помощи JavaCC, надыбали какой-то Schema Aware процессор, прикрутили Ant для паттернов файлов, зип-формат там "искаропки"... Реально за пару часов сделали, я сам смотрел в VCS, кода всего несколько килобайт, всего три класса - парсер, лексер и что-то для Ant. И, главное, работает офигенно быстро всё.

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

В общем, обздались мы по полной с лиспом :) А у меня розовый туман начал спадать понемногу... на своей шкуре понял, что LISP - в общем, не панацея, язык интересный, но как только появляется практическая задача из реального мира - грабли. Хотя конечно в области ИИ ему нет равных.

Такая вот "история неуспеха" :) Жалко, что из-за неудачного дебюта путь для LISP будет закрыт в нашу организацию... ни для каких серъёзных задач его не станут теперь пробовать, раз с такой мелочовкой не справился.

PS. Кстати на bash+find+xsltproc я тоже попробовал ради интереса - всё равно медленнее, чем на Java!!! наверно потому, что xsltproc не schema aware... я вот думаю, может на Haskell надо было попробоывать? что скажете?

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

> Переменные мало того что без типов

Там не переменные, а символы, во-первых. CL язык со строгой типизацией во-вторых.

> Как в языке с такими возможностями добиться предсказуемости для большого приложения?

Что значит предсказуемости? Опять же - это статическая типизации вс динамическая. У той и у другой есть плюсы и минусы, но я больше склоняюсь к более гибкой динамической, если на другой чаше весов будет статическая типизация как Яве и Си++ . А больше всего мне нравится система типизации в Хаскелле (с ее автоматическим выводом и алгебраическими типами данны), вот бы такую в лиспе :)

> Опять, как для нетривиальных случаев( где и препроцессор С бы справился) создать систему типов для верификации, чтобы не тестировать/руками смотреть на развороты этого макроса? Далее если dsl делать, то как там, например, добавить оптимизации разворачивания и те же типы? Интересует хотя бы теоретический пример.

Смотреть на то, как реализован qi.

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

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

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

> Много букф. Достаточно первой строчки, дальше не о чем читать...

ясно, комментариев не последует :(

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

> Тут просто многие считают, что LISP - это не только снайперка, но и дробовик, и гранатомёт, и рейлган, и BFG-2000 в одном флаконе :)))

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

paranonymous
()

>> прикрутили Ant для паттернов файлов

Сдаётся мне, они взяли ANTLR и сгенерили парсер...

deadman ★★
()

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

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

>Там не переменные, а символы, во-первых. CL язык со строгой типизацией во-вторых.

Я хотел сказать, что тип символа( переменной) определяется текущим значением, а сам тип определяется допустимыми операциями над типом. Хотя может это и не так.

>Опять же - это статическая типизации вс динамическая. У той и у другой есть плюсы и минусы, но я больше склоняюсь к более гибкой динамической, если на другой чаше весов будет статическая типизация как Яве и Си++

Мне, например, совсем не очевидно, во что там развернётся макрос в десять строк и будет ли это работать в том или ином случае.

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

> Тут просто многие считают, что LISP - это не только снайперка, но и дробовик, и гранатомёт, и рейлган, и BFG-2000 в одном флаконе

Все верно, так и есть. Только патронов нет.

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

Есть macroexpand, а в совсем сложных случаях макрос рекомендуют заменить inline функцией.

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

> Я хотел сказать, что тип символа( переменной)

Символ - он отличается от переменной (в смысле, в котором употребляется в других языках - яве, сях, питоне и прочих) - он является объектами первого уровня, в котором как есть name, function cell, value cell. И можно, напимер, создавать символы без названия с помощью gensym, что используется частенько в макрах.

> определяется текущим значением, а сам тип определяется допустимыми операциями над типом. Хотя может это и не так.

Ну примерно так.

> Мне, например, совсем не очевидно, во что там развернётся макрос в десять строк и будет ли это работать в том или ином случае.

На этот случай есть документация, как и в случае использования сторонних функций.

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

>в скорости работы и в скорости разработки... И, не смотря на распространненую идею, JAVA всех рвала,
Угу. А потом от этой скорости рвало тех, кто этим пользовался.

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

Любое рабботающее решение по определению лучше любого неработающего решения. Программа на джаве работает, программа на лиспе - нет. Значит, программа на джаве лучше.

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

Это всего лишь говорит о способностях аффтара программы, не более.

Хотя, быть может, пользователям ява-программ на десктопе просто нравится чувстовать себя суперменами — они работают так быстро, что за ними даже программы не поспевают!

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

>Любое рабботающее решение по определению лучше любого неработающего решения.
Демографическая проблема и газовые камеры. Особенно для посетителей последених.

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

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

> Сам хоть только начинаю писать на Lisp, но пока понял только одно, что бы начать писать рабочий и человечный код, надо долго входить, ибо другой мир.

Другой мир по сравнению с чем? с Си и Явой - да, наверное, с питоном, руби, перлом - мне кажется, что нет. Другой мир - это пролог и хаскелл - после них действительно по-другому начинаешь думать о программировании :)

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

>с питоном, руби, перлом - мне кажется, что нет. Другой мир - это пролог и хаскелл - после них действительно по-другому начинаешь думать о программировании :)

Не думаю. Скорее другой ко всему в принципе. Чего стоит хотя бы CLOS. Опять же это повсеместность макросов. Да и стиль программ в лиспе скорее функциональный, чем императивный.

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

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

> В отличие от невзлетевшего лиспа, их самолет полетел, не так ли?

Да, они *сразу* построили боинг, за что им благодарно все человечество.

ЗЫ. иногда лучше допилить неработающее решение, которое даст неплохме бенефиты в будущем, чем оставить обвешанное костылями пока еще работающее неизвестно что.

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

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

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

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

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

Спасибо за заботу :)

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

> В отличие от невзлетевшего лиспа, их самолет полетел, не так ли?

Поправка: в отличие от невзлетевшей программы на лиспе.

P.S. Он взлетит.

ugoday ★★★★★
()

ололо, еще один Луговским укушенный
когда же вы, школие, наконец поймете, что вас толсто троллят "илитными" лиспами и хаскелями, а вы тупо ведетесь
типа, я пишу на хаскеле значит все девки дадут
девкам (нормальным) до этих брейнфаков дела нет, зато есть дело до нормальных, здоровых мужиков с деньгами
ни того (здоровья), ни другого (бабла) вы хаскелями не заработаете
лучше спуститесь с небес на грешную землю, да поучите вычметоды с алгоритмами
и попрактикуйтесь на Java и Си, все ж полезнее будет

добро пожаловать в реальный мир, Нео

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

> Все верно, так и есть. Только патронов нет.

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

вообще, лисп тут скорее - Царь-пушка

чтобы зарядить ее семипудовым ядром - нужно десять человек
пока подкатят да зарядят - три дня пройдут
но уж как шмальнет - так стены рушатся

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

без автоматчиков давно бы башку снесло, ворошилов хренов

Kuka ★★
()

кстати, отчего в теме не видно толстых лиспотроллей - всяких там mv, r, Cфинктера и иже с ними

слились, да? когда жареным-то запахло

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

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

когда же ты успокоишься, тебя какие-то комплексы мучают? :)

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

> слились, да? когда жареным-то запахло

запахло, но не жареным :)

тп - просто уж очень тупой троль. Один я только ведусь :)

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

> слились, да?

Спим и видим сны (не про лисп). Нормальные люди ночью спят, а не задротствуют^Wсамовыражаются в среди гиков. Всего хорошего.

ugoday ★★★★★
()

Правильно! Потому как всякие маргинальные язычки - это для яйцеголовых ксеноцефалов типа Проффессора В.С.Лугоффского.

А нормальные люди используют нормальные языки программирования, а не тешат ЧСВ.

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

>кстати, отчего в теме не видно толстых лиспотроллей

Они тебя испугались. Если так и дальше будет продолжаться, я наверно, тоже сольюсь.

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

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

Ну и где-же цели, поражаемые той идеальной винтовкой и патронами? Упс?

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

>Тут просто многие считают, что LISP - это не только снайперка, но и дробовик, и гранатомёт, и рейлган, и BFG-2000 в одном флаконе :))) в результате промазывают по банкам, в то время как "гопники" сносят одним выстрелом весь ряд

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

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

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

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

Да, главное -- это выбрать верную аналогию! Тогда и утверждения будут выглядеть убедительно!

scabarocci
()

А мне вот не понятно в этой истории:

1) почему Ignatik не смог даже с помощью лиспогуру создать полное решение (хреновому танцору скобки мешают ?) Если он не соображает в Лиспе (хотя бы из оговорки про JIT в SBCL), почему полез править решение "гуру" на другую реализацию ?

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

3) кто нибудь всерьез думает, что если CL пригоден для RDF и для него есть очень серьезные инструменты в области Semantic Web (http://www.franz.com), то на нем невозможно запроцессить какой-то галимый XML ? А уж бред про какой-то там find и т.п. вообще оскорбителен, все равно что сказать про Java, что там нельзя складывать целые числа.

вывод: Ignatik следует всерьез задуматься над /dev/hands и прежде чем хвалить или обсирать что-то, попробовать научиться делать хоть что-то самостоятельно, а то "гуру не дописал" звучит как детский лепет.

start-lisp
()

>кода всего несколько килобайт, всего три класса - парсер, лексер и что-то для Ant

Угу. А остальное (цитирую "распарсили DSL при помощи JavaCC, надыбали какой-то Schema Aware процессор") куда-то испарилось. Лиспер то мож часть либов прислал вместе с основным кодом. Или один из основных языков AI по твоему не реализует ни одного генератора парсеров ?

>тимлид посмотрел на эту гору кода со скобками, покрутил пальцем у виска

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

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

Дык это не лисп, это ты не справился, чуешь разницу ? по идее надо тебе за провал презентации (че вообще взялся не зная броду) закрыть дорогу в это организацию. А следующим "провалом" будет Питон или Рубин, да ?

start-lisp
()
Ответ на: комментарий от Macil

> А если лисперы еще откроют для себя JSR 269... И CompilerTree API...

Не понятно, это такой стеб ? Или Лисп, в котором постоянно оперируют напрямую AST вдруг должен открыть для себя, что и в других языках оказывается эта возможность в каком-то виде тоже наклевывается ?

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