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