← Архив: Common Lisp

Qt + Comon Lisp...

Author: · 26.05.2013 09:36
· original author: karlkorp
Доброго времени суток, Друзья!Вопрос состоит в следующем:
Разрабатывается большое приложение.
Ядро - вычислительную часть - пишу на Common Lisp.
Реально ли, и каким образом, создать интерфейсную часть приложения на Qt-Creator, а, собственно, вычислительную часть - основу, на Common Lisp?
Поставлю вопрос так: как соединить в готовой программе вычислительную часть на Common Lisp, а интерфейсную - на Qt? 
· original author: andy128k
Вроде как Qt нормально работает только с ECL.
Запускайте вычислительную часть в отдельном процессе и связывайте любым IPC по-вкусу.
Можно ещё попробовать собрать вычислительную часть в shared library всё тем же ECL.
· original author: karlkorp
A ECL реализуется как отдельная среда-компилятор, или, как SBCL, можно интегрировать с Emacs в SLIME?Я просто сейчас пользуюсь Emacs+Slime+SBCL.  
· original author: andy128k
Теоретически можно использовать через SLIME, но никаких гарантий.
Вообще говоря, я бы не рекомендовал ECL если важна производительность.
· original author: karlkorp
А Если использовать Glade для построения графического интерфейса, а основную часть - ядро, писать в SLIME? Это реально? 
· original author: michael.filonenko
Для большого приложения используйте нормальные ГУЙ тулкиты, типа виндовых и макинтошевских.
· original author: dmitrys99
Qt вменяемо работает с CL только в виде Common QT и то только под *nix,
под Windows у меня так и не получилось библиотеку собрать - требует Smoke из состава KDE,
а для нее у меня уже знаний в С++ не хватило :(
EQL по сути своей stand-alone приложение, которое то-ли встроено в ECL, то-ли ECL в него встроен :-)
Не очень стабильно, имхо. С полгода назад автор в рассылке написал, что теперь можно прикрутить
EQL в любой CL. Подробнее смотри в README.txt.
Ну и всегда остается вариант в духе GTK-Server'a - приложение и ГУИ общаются по сокету/TCP или еще как-то,
написаны на разных языках. Одна проблема - относительно низкая производительность.
· original author: andy128k
ИМХО, это касается только OSX. Там приложение на Qt будет слегка инородным. А в Windows впишется отлично.
Если OSX будет одной из целевых платформ, то я бы посмотрел на Clozure CL и http://trac.clozure.com/ccl/wiki/Cocoa
· original author: dsorokin
А почему просто не купить LispWorks или Allegro?
· original author: dsorokin
Причем, используя бесплатный LispWorks Personal Edition, можно разработать готовый прототип или даже базовую рабочую версию, столкунуться в особенностями системы, оценить ее качество, а дальше понять, стоит ли покупать?
· original author: archimag
> используя бесплатный LispWorks Personal Edition
Да им же пользоваться просто невозможно.
· original author: dsorokin
> Да им же пользоваться просто невозможно.
Мне очень нравится среда LW. Отличная вещь. Там замечательный отладчик. Это удобная среда инкрементальной разработки. Есть автокомплит. Можно легко добавить определение, отменить его, найти зависимости, просмотреть список методов для класса, посмотреть список загруженных систем и т.д.
У меня на винде Professional Edition, на линуксе - Personal Edition. Различий больших не наблюдаю. Просто на линуксе у меня нет Application Builder, и нельзя проверить бинарник, как я могу это сделать сейчас на винде. Тем не менее, на линуксе провожу времени даже больше, когда пишу на лиспе.
Пытался на винде подключить lw-console [1] к slime + emacs, но там какая-то фигня была с отладкой гуишных элементов. Вероятно, поток slime и главный гуишный поток capi отличаются, из-за чего кидается сигнал. Думаю, что решается, но разбираться совершенно неохото было.
Но пойнт в том, что в LW хорошие библиотеки для разработки сложных приложений с гуем. Не надо извращаться с подключением Qt.
[1] lw-console - так обычно называется консольная версия лисп-машины LispWorks, которую надо создавать самому, но это делается очень легко.
· original author: dsorokin
Хотя, вот только что запустил свой код через emacs / slime / lw-console. Все заработало нормально, кроме того, что не подхватилась тема aero. Видать, у меня был раньше какой косяк, а потом исправил. Можно попробовать поработать и в emacs теперь, но как-то не тянет :)
· original author: LinkFly
Lispworks отличная вещь.
· original author: michael.filonenko
Кроме IDE
· original author: LinkFly
А что конкретно не так с IDE?
· original author: michael.filonenko
MDI, если сравнивать то хорошая ide это eclipse
· original author: LinkFly
MDI? Т.е. многодокументный интерфейс? И что не так? Не, ну серьёзно, работаю с LW, и вообще говоря всё устраивает. Не было правда очень нужного инструмента - GUI-просмотрщика дерева зависимостей ASDF-систем друг от друга (в том числе, с возможностью посмотреть "кому требуется" система) и возможностью быстро перейти к определению системы. Но сделал довольно быстро. Ещё надо бы удобный просмотрщик зависимостей пакетов, чуть позже сделаю. И главное - всё делается на раз-два, ну совершенно элементарно.
· original author: den73
> Ну и всегда остается вариант в духе GTK-Server'a - приложение и ГУИ общаются по сокету/TCP или еще как-то,
ltk так же работает.
Но я плюсую за лиспворкс. Вот тут кое-что есть:
http://lisp.ystok.ru/
(хотя сам не пользовался)