LINUX.ORG.RU

Вопрос к лисповодам. Быть или не быть ?


0

0

Ситуация такая. Мне необходимо написать очень конфигурабельную программку -генератор исходных текстов. На вход программки поступает некоторый XML-ный код (XMI, сериализованная UML диаграмма, напрмер, от Rational Rose, от StarUML или от Umbrello) на выходе получается каркас некоторого приложения. Гуйня и доступ к БД не нужны.

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

а) была доступной нашару (не обязательно свободной, но обязательно бесплатной :)

б) имела бы биндниги к нормальному xml-парсеру;

в) поддерживала минимум две платформы: Win32 и Linux. Наиболее критично именно Win32

Ваши советы ?

PS Цыгвин я люблю, но не очень :)

★★

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

bugmaker ★★★★☆
()

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

Вот здесь http://redditblog.blogspot.com/2005/12/on-lisp.html почитай статью Грехема (известного лиспера современности), почему он переписал reddit.com на питоне. У него на сайте где-то еще была статья, почему lisp is dead, я не помню точно. Аргументы весьма весомые.

Лисп красив, мощен и кошерен, но... Оставим его в музее.

rab_boziy
()
Ответ на: комментарий от ero-sennin

Нет. Это я смотрел и даже немного использовал на "поиграться". Хочется попробовать именно лисп.

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

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

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

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

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

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

Добавлю, что под винду из доступных компиляторов лиспа - только комерческие (ну и порт sbcl, но это альфа).

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

> ну, ево когда ещё доделают...

Нормальную реализацию лиспа сделают, с хорошей стандартной библиотекой? Этого мы наверное никогда не дождемся.

rab_boziy
()

А какие будут мнения насчет Bigloo + SSAX ? Все таки Scheme язык несколько более красивый и гораздо более простой чем Common Lisp.

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

Bigloo хороший компилятор, ssax не юзал, но вещь интересная судя по описанию. Думаю, хороший выбор, попробуй.

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

>> ну, ево когда ещё доделают...

> Нормальную реализацию лиспа сделают, с хорошей стандартной библиотекой? Этого мы наверное никогда не дождемся.

их уже сотни наверное. А питона даже сам езык недоделали, не говоря уж о реализации.

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

> их уже сотни наверное.

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

> А питона даже сам езык недоделали, не говоря уж о реализации.

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

Я лисп использовал для некоторых задач, да, это круто. Да, возможности макросов впечатляют. Но зачастую нужны не макросы, а, например, нормальная библиотека для работы с ОС (как модуль os в питоне). Где это в лиспе? Нету, и не предвидится. Все реализации оторваны от платформы, на которой эти реализации работают. Спрашивается, зачем? Как интегрировать в продукт на лиспе компоненты написанные на другом языке? Это все вопросы, которые возникают только после того, как напишешь самостоятельно хоть одну программу на лиспе.

Конечно, можно возразить. Мол, библиотеки, это библиотеки, а мы языки сравниваем. Да, это верно, но только в теории. Такие академические сравнения можно себе позволить на досуге, когда нету бремени задачи, которую нужно выполнить. А когда задача есть, академическая красота и идеологическая правильность не согреют.

В общем, лисп жив пока благодаря емаксу. Сейчас наверное 99% кода лисповского пишется под него, это в свое время признали даже в comp.lang.lisp.

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

> Не лучше было бы иметь одну, но стандартизированную, стабильную и с современной стандартной библиотекой?

тогда вам в венду товарищь. Она настолько же стандартизована, стабильна и с современными возможностями.

> Но библиотек куча на все случаи жизни, поэтому писать программы на питоне легче.

Ну чё делать, если на самом питоне чёнто понаписать проблематично. Вот и клепают к нему библиотеки массово.

> Комьюнити больше, и организовано лучше. Документации отличной полно.

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

> например, нормальная библиотека для работы с ОС (как модуль os в питоне). Где это в лиспе? Нету, и не предвидится.

Что именно тебе например нужно, которое делается этим модулем а лиспом ну прямо никак?

> Все реализации оторваны от платформы, на которой эти реализации работают. Спрашивается, зачем?

дык за тем же зачем и жаба. Для совместимости.

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

элементарно

Если возникнет желание развивать этот вопрос, прошу переместиться в http://www.linux.org.ru/jump-message.jsp?msgid=1587106&page=35 ибо там и так питоноедов понабежало и многие вопросы рассмотреты. А здесь непошто.

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

> Она настолько же стандартизована, стабильна и с современными возможностями.

Надо будет -- буду юзать венду. Не нужно из инструмента воздвигать себе идол. Идолопоклонники Царствия Божего не наследуют. Господь да убережет нас от ненужного фанатизма.

> Ну чё делать, если на самом питоне чёнто понаписать проблематично.

Библиотеки в большинстве случаев тоже на питоне, так что замечание некорректно.

> Прямо замечательное.

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

> Что именно тебе например нужно, которое делается этим модулем а лиспом ну прямо никак?

Ну, сравни хотя бы os.path с лисповскими паснеймами. Пожалуйста мне на каждую функцию аналог.

Посмотри на optparse.

Где в лиспе возможность обращения к системным вызовам?

Дальше продолжать?

Конечно, как-то можно и в лиспе. Но мне как-то не нужно, мне нужно быстро и без геммороя, чтоб больше времени на молитву осталось.

Еще пожалуйста отыщи библиотеку аналогичную numpy/scipy для лиспа. У меня не получилось.

> дык за тем же зачем и жаба. Для совместимости.

Совместимость явно не с современными операционками. Лисп-машины сейчас в музеях остались только.

А для какого рода задач ты лисп используешь, и почему?

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

> Она настолько же стандартизована, стабильна и с современными возможностями.

Надо будет -- буду юзать венду. Не нужно из инструмента воздвигать себе идол. Идолопоклонники Царствия Божего не наследуют. Господь да убережет нас от ненужного фанатизма.

> Ну чё делать, если на самом питоне чёнто понаписать проблематично.

Библиотеки в большинстве случаев тоже на питоне, так что замечание некорректно.

> Прямо замечательное.

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

> Что именно тебе например нужно, которое делается этим модулем а лиспом ну прямо никак?

Ну, сравни хотя бы os.path с лисповскими паснеймами. Пожалуйста мне на каждую функцию аналог.

Посмотри на optparse.

Где в лиспе возможность обращения к системным вызовам?

Дальше продолжать?

Конечно, как-то можно и в лиспе. Но мне как-то не нужно, мне нужно быстро и без геммороя, чтоб больше времени на молитву осталось.

Еще пожалуйста отыщи библиотеку аналогичную numpy/scipy для лиспа. У меня не получилось.

> дык за тем же зачем и жаба. Для совместимости.

Совместимость явно не с современными операционками. Лисп-машины сейчас в музеях остались только.

А для какого рода задач ты лисп используешь, и почему?

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

Сначала продумай архитектуру, потом посмотри, какая функциональность нужна от *библиотек в комплекте*. После этого много реализаций scheme отпадут сами. SSAX - хорошая штука.

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

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

1. Возникнут вопросы - не стесняйтесь (а вдруг подскажем) :)

2. Составите мнение - делитесь ;)

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

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

Я где-то десяток лисперов знаю и ни одного питонщика и что ? Инет на что ?

>Ну, сравни хотя бы os.path с лисповскими паснеймами. Пожалуйста мне >на каждую функцию аналог.

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

>Где в лиспе возможность обращения к системным вызовам?

Курить FFI. У меня проблем с системными вызовами на Лиспе нет.

>Еще пожалуйста отыщи библиотеку аналогичную numpy/scipy для лиспа. >У меня не получилось.

Надо просто Лисп под задачу выбирать правильный, например Lush, там все необходимое и крайне скорострельно.

>Совместимость явно не с современными операционками. Лисп-машины >сейчас в музеях остались только.

Да все вполне совместимо. Например на Corman Lisp я писал GUI библиотеку и вызовы WINAPI там идут на право и налево вместе с операциями над всякими сишными структурами, так что про Лисп-машины -это бред. Кстати не только в музеях, некоторые люди ими до сих пор пользуются в отличие от Apple 1 и PC AT.

>А для какого рода задач ты лисп используешь, и почему?

Извините, я не bugmaker, но отвечу т.к. вопрос всем интересный: использую Лисп для отслеживания объектов в реальном времени, обрабатывается 100 кадров в секунду с двух камер одновременно. Пишется коммерческий продукт. Почему Лисп ? Потому что надо и скорость и гибкость одновременно.

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

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

Кому-то еще легче писать на VB.

>Все реализации оторваны от платформы, на которой эти реализации >работают.

А у Питона оторвана всего одна реализация ;-)

>Это все вопросы, которые возникают только после того, как напишешь >самостоятельно хоть одну программу на лиспе.

Ну так может сначала вопросы надо выяснить, потом писать ?

>В общем, лисп жив пока благодаря емаксу. Сейчас наверное 99% кода >лисповского пишется под него, это в свое время признали даже в >comp.lang.lisp.

Еще один бред. Если там кто-то что-то и признал, так это забредший туда случайно питонист.

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

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

Кем стандартизируемое ? У того же Питона есть стандарт ANSI или нечто сопоставимое или он еще сам недоделанный ?

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

> почему он переписал reddit.com на питоне

Ребята, которые делали reddit.com вообще с Лиспом были малознакомы, не смогли наладить процесс разработки чтоб с MACа можно было ящик на FreeBSD рулить. Когда все это выяснилось на comp.lang.lisp за день появилось пара ссылок на сайты, практически полностью повторяющие функционал reddit.com, причем одна из версий была написана меньше чем за 2 часа. Кстати причем тут Пол Грэм ? Под статьей стоит ник какого-то перца spez, с чего Вы взяли, что Полу Грэму потребовался Питон из-за того, что он не смог бы настроить работу Лиспом под MACом на FreeBSD ? Бугага!!!

>него на сайте где-то еще была статья, почему lisp is dead, я не >помню точно

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

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

>http://redditblog.blogspot.com/2005/12/on-lisp.html почитай статью >Грехема

Пол Грем - автор книги On Lisp, как можно перепутать с совершенно левой статьей ? Вместо этой статьи, рекомендую ознакомиться с книгой On Lisp (есть в электронном виде), куда полезнее будет. Еще книгу Practical Common Lisp рекомендую, все доступно написано и вполне практические задачи рассматриваются на примере современных Лиспов.

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