LINUX.ORG.RU

Лисп в промышленной разработке


0

1

http://13-49-ru.blogspot.com/2010/07/blog-post_21.html

Утритесь, неосиляторы и s-exp'офобы. Лисп - не только лучший язык, но и успешно доказывает это в промышленных разработках и даже среди C++- и java-кодеров, не читавших умных книжек.

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

>Давай по другому

Итак, с xmpp в лиспе работать нельзя. Я так понимаю, у лисперов фамильная черта не отвечать на неугодные вопросы?

хочу нормальную библиотеку для работы с XML

http://www.xmlsoft.org Не поверишь, даже биндинги не нужны, ибо плюсы обратно совместимы с сями. Хотя если хочется, то http://ftp.gnome.org/pub/GNOME/sources/libxml++/

В CL же есть полноценное решение на базе CXML

Recent changes: rel-2008-11-30

Поциент скорее мертв, чем жив.

также мой биндниг cl-libxml2

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

на фоне этого был сильно впечатлён насколько из CL проще работать с C-либами, чем из C++.

С тем, что из лиспового FFI реально удобно обращаться к нативному коду по сравнению с перлом, питоном и даже Lua абсолютно согласен. Там без свига ручками неприкольно. А чем в лиспе лучше, чем из плюсовки-то? Можно поподробнне осветить эту сторону вопроса?

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

> С тем, что из лиспового FFI реально удобно обращаться к нативному коду по сравнению с перлом, питоном и даже Lua абсолютно согласен. Там без свига ручками неприкольно.

Что за «сдвиг ручками» в Питоне?

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

>Что за «сдвиг ручками» в Питоне?

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

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

> Чтобы общаться с питоном (и остальными упомянутыми языками), нужно либо ручками писать враппер в сишном коде, либо заюзать swig, который сделает это за тебя.

А... это было давно и неправда.

В CL же ты в лисповом коде просто пишешь прототип фнукции, описываешь структуры данных и получаешь профит на выходе.

В Питоне уже несколько лет, с появления ctypes, примерно так же («примерно» - потому что я не знаю точно, как оно в CL).

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

> Итак, с xmpp в лиспе работать нельзя. Я так понимаю, у лисперов

фамильная черта не отвечать на неугодные вопросы?


Я не работаю с xmpp, поэтому не могу ответить на данный вопрос. Это так сложно понять?

http://www.xmlsoft.org Не поверишь, даже биндинги не нужны,

ибо плюсы обратно совместимы с сями



Не поверю, ибо очень хорошо знаю что это такое и написал много кода с этой с использованием этой либы (на С++). По дизайну libxml2 такое уродство, что пихать его прямиком в плюсовый код я бы ни в коем случае не стал - баги потом замучаешься выгребать. Хотя если вы готовы непосредственно юзать таким образом, то это сразу объясняет вашу позицию. Что бы понять, что такое хороший биндинг к libxml2 посмотрите, например, на lxml (http://codespeak.net/lxml/).

Хотя если хочется, то http://ftp.gnome.org/pub/GNOME/sources/libxml++/


Гы, это одна из тех либ, про которые я говорил выше как неполноценных уродцев. Вы что, посты не читаете? Ещё раз - ни одного вменяемого биндинга к libxml2 для C++ нет.

Recent changes: rel-2008-11-30

Поциент скорее мертв, чем жив.


Издеваетесь? Посмотрите когда было последнее стоящее изменение в libxml2.

Иными словами, нормального биндинга для означенных тобой библиотек

не было, пришлось клепать велосипед.



Угу, только этот велосипед имеет непосредственную поддержку не только DOM, но и XPath, XSLT, HTML, а также простую возможность писать расширения для XPath (функций) и XSLT (элементов) непосредственно на CL, чего нет ни в одном из «невелосипедных» биндингов к libxml2 для C++.

А чем в лиспе лучше, чем из плюсовки-то?


cl-libxml2 это плод работы одного человека в течении 2 недель, плюс потом мелкая подчиска багов. Над биндингами к libxml2 для С++ работало гораздо больше народа и гораздо больше, но что-то ничего вменяемого родить они не смогли. Всё дело в том, что есть REPL и можно экспериментировать, фактически с С-кодом, прямо в нём.

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

>Гы, это одна из тех либ, про которые я говорил выше как неполноценных уродцев.

Какие-то более конкретные указания на неполноценность _официального_ биндинга будут? Или опять общие фразы?

Напоминаю, что неполноценность — это отсутствие какой-либо функциональности в биндинге. Субъективную неэстетичность называть неполноценностью неправильно.

cl-libxml2 это плод работы одного человека в течении 2 недель, плюс потом мелкая подчиска багов.

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

Всё дело в том, что есть REPL и можно экспериментировать, фактически с С-кодом, прямо в нём.

На в C++ можно использовать сишный код безо всяких REPL'ов и промежуточных FFI, которые могут привносить свои багоглюки.

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

> Напоминаю, что неполноценность — это отсутствие какой-либо

функциональности в биндинге.


Я же уже сказал несколько раз: поддержка XPath, XSLT, невалидирующего HTML-парсера, расширений к XPath и XSLT. Этого нет ни в одном плюсовом биндинге. Вы что не читаете? Или термины не знакомы?

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

убить две недели на привнесение в язык вспомогательной библиотеки.


Не так ли?



Можете считать это такой чертой характера, склонность писать open source. Мне просто нравится писать код и я его пишу. Это плохо? Кто-то ведь пишет код и на С++, а вы на нём просто паразитируете?

а в C++ можно использовать сишный код безо всяких REPL


Гы. Вы пробовали сколько-нибудь серьёзно работать с той же libxml2? У этой либы нет нормальной документации, а то что есть местами просто не верна - обнаружил это когда писал cl-libxml2. Эту либу просто нельзя нормально понять без чтения исходного кода. И поэтому очень нужен REPL, что бы понять как ведёт себя библиотека и убедиться в правильном понимании. Только не надо говорить, что все либы на С/С++ имеют замечательную доку и разобраться в них не составляет никакого труда - это совсем не так.

и промежуточных FFI, которые могут привносить свои багоглюки.


Не сталкивался. О чём речь? Если бы с FFI были проблемы, то ничего бы в CL вообще не работало бы, ибо с ОС ведь надо взаимодействовать в любом случае.

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

>Я же уже сказал несколько раз: поддержка XPath, XSLT, невалидирующего HTML-парсера, расширений к XPath и XSLT. Этого нет ни в одном плюсовом биндинге. Вы что не читаете? Или термины не знакомы?

А ты вообще знаешь, что XPath — часть libxml2 и в официальном полном биндинге поддержка XPath имеет место быть. Если ты не можешь понять, что значит каталог examples/dom_xpath, то я тут бессилен.

Вы пробовали сколько-нибудь серьёзно работать с той же libxml2?

Работал. Документация могла бы быть и лучше (применимо практически к любому опенсорсу). Однако даже документация к libxml2 полнее, чем к cl-libxml2. А поскольку авторы осознавали, что написать полноценный мануал им не под силу, они родили директорию examples, где все освещено.

Эту либу просто нельзя нормально понять без чтения исходного кода.

Я обычно предпочитаю examples.

Так что там с HTTP в CL?

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

> А ты вообще знаешь, что XPath — часть libxml2

Прекрасно знаю. Я же писал к ней биндинг. К.О. в недоумении.

в официальном полном биндинге поддержка XPath имеет место быть


Хм, когда она была мне нужна её там ещё не было. Допилили, молодцы. Но что делать с остальными возможностями?

Однако даже документация к libxml2 полнее, чем к cl-libxml2.


Естественно, документатор из меня тот ещё. Другое дело, что с cl-libxml2 можно работать и без документации вовсе (слава SLIME!), а для работы с libxml2 документации явно не достаточно.

А поскольку авторы осознавали, что написать полноценный мануал

им не под силу



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

они родили директорию examples, где все освещено.


Да прям, всё. Я, конечно, всё это хорошо изучал. Однако этого мало.

Так что там с HTTP в CL?


Хм, есть несколько веб-серверов, есть клиент Drakma, есть биндинг к curl. Впрочем, Drakma меня не устраивает и при необходимости (которая прогнозируется) я постараюсь написать решение на базе iolib, с асинхронным вводом/выводом и развратными женщинами.

Давай остановимся? Утверждать, что над С++ нимб светится от того, как с ним всё хорошо, несколько наивно. Все хорошо знают имеющиеся проблемы и что они обусловлены самой историей развития этого языка (ибо изначально и в последующем это было компромиссное решение). Со своей стороны, я никогда не говорил, что в CL всё хорошо (кстати, я достаточно часто пишу об это в блоге). Идеального языка сейчас просто нет и вряд ли он когда будет. CL предоставляет определённые возможности, которые являются привлекательными для многих. Но при этом имеет ряд инфраструктурных проблем. Вопрос лишь в том, готов ли принять имеющиеся проблемы ради имеющихся достоинств или нет. Этот выбор надо делать для любого языка и лучше, если с трезвой головой, без предрасудков.

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