Lo que estoy haciendo actualmente, en una aplicación gráfica que utiliza OpenGL y GLFW, está desarrollando principalmente con SBCL, y dando mis entregas a través de probadores cl-launch. Sin embargo, mi plan es usar CCL para compilar un paquete de aplicaciones en OS X y ECL para construir un ejecutable independiente en Linux y Windows. Los paquetes que estoy construyendo en este momento con cl-launch son bastante grandes (típicamente 30M y más), mientras que las pruebas que he hecho con ECL han sido mucho más pequeñas (libecl pesa alrededor de 1.3M en mi sistema). Sin embargo, esperaría que SBCL funcionara mejor (¡aunque haría un perfil para asegurarme, primero!), Por lo que su elección dependerá de su aplicación.
Sin embargo, si estuviera haciendo esto comercialmente, invertiría en una de las implementaciones comerciales. Rainer Joswig menciona LispWorks y Allegro arriba. Para la entrega de aplicaciones de Windows, también puede considerar Corman Lisp. Mi impresión es que la ruta más rápida pero más cara para hacer entrega de aplicaciones en esos tres sistemas operativos es comprar Allegro, pero una alternativa (más trabajo, pero más barata) sería usar CCL en OS X, Corman en Win32 y ECL o SBCL en Linux. LispWorks parece ser una opción intermedia, aunque mucha gente lo confía, así que no lo descartaría como inferior a Allegro solo porque es más asequible.
El problema de la biblioteca de gráficos es algo separado; mi impresión es que la situación mejora constantemente (los callbacks en CFFI parecen funcionar en la mayoría de las plataformas ahora, lo que es una gran ayuda para interactuar con la mayoría de los toolkits de C), pero he estado trabajando más con GL, GLFW, GLUT y SDL (aunque todavía no con lispbuilder, mencionado por justinhj arriba, que se ve bien). Experimenté un poco con wxCL hace uno o dos años, y parecía prometedor.
Lo bueno de CL es que, con tantas buenas implementaciones, puede desarrollar en su implementación de elección, y la mayoría de su código debe ser fácilmente portado a la implementación que elija para la entrega de aplicaciones en una plataforma determinada.
Al "compilar el código", ¿quiere decir generar código de máquina o es correcto el byte de VM? –
Además, ¿qué sucede si el bytecode está compilado JIT en código máquina por la máquina virtual? –
Sí, ¡todo está bien! Estoy muy interesado en las características del lenguaje. – alvatar