Что я делаю в настоящее время для графического приложения, которое использует OpenGL и GLFW, разрабатывается в основном с помощью SBCL и предоставляет моим тестировщикам доставку через cl-launch. Однако я планирую использовать CCL для создания пакета приложений на OS X и ECL для создания автономного исполняемого файла в Linux и Windows. Пакеты, которые я сейчас создаю с помощью cl-launch, довольно велики (обычно 30M и выше), в то время как тесты, которые я проводил с ECL, были намного меньше (libecl весит около 1,3M в моей системе). Тем не менее, я ожидаю, что SBCL будет работать лучше (хотя я бы сначала профилировал, чтобы убедиться в этом!), поэтому ваш выбор будет зависеть от вашего приложения.
Однако, если бы я занимался этим на коммерческой основе, я бы инвестировал в одну из коммерческих реализаций. Райнер Йосвиг упоминает LispWorks и Allegro выше. Для доставки приложений Windows также можно использовать Corman Lisp. У меня сложилось впечатление, что самый быстрый, но самый дорогой способ доставки приложений для этих трех ОС — это купить Allegro, но альтернативой (больше работы, но дешевле) было бы использование CCL на OS X, Corman на Win32 и ECL или SBCL. на Линукс. LispWorks кажется промежуточным вариантом, хотя многие люди клянутся им, поэтому я бы не стал сбрасывать со счетов его как уступающий Allegro только потому, что он более доступен.
Проблема с графической библиотекой — это нечто отдельное; у меня сложилось впечатление, что ситуация постоянно улучшается (обратные вызовы в CFFI теперь работают на большинстве платформ, что очень помогает при взаимодействии с большинством наборов инструментов C), но я больше работал с GL, GLFW, GLUT и SDL. (хотя еще не с lispbuilder, упомянутым выше justinhj, который выглядит круто). Я немного поэкспериментировал с wxCL год или два назад, и это казалось многообещающим. .
Преимущество CL в том, что с таким количеством хороших реализаций вы можете разрабатывать любую реализацию по своему выбору, и большая часть вашего кода должна быть легко перенесена в любую реализацию, которую вы выберете для доставки приложения на данной платформе.
person
Julian Squires
schedule
24.04.2009