Доброго времени суток. Совсем недавно начал изучать conmon lisp. Писать программы на этом языке мне нравится, но как у новичка у меня есть вопрос. Можно ли на common lisp создать напрмер полноценную игру, а точнее сделать так чтобы её можно было запустить на любом компьютере не устанавливая REPL и прочие инструменты разработки? Или в данной области лисп не применим, я знаю, что используя лисп можно идти в веб, но честно говоря не слышал о задачах, которые не смогли бы решить три самых популярных языка для веба: python , ruby, php, ну и js для front-end.
Всё можно. save-lisp-and-die
Хорошо, я нашёл пример как сделать точку входа в программу и скомпилировать файл, а что если мы используем целый ряд файлов, содержащих какие нибудь библиотеки и прочее, получается, необходимо предварительно их все скомпилировать и загрузить в виде fasl файлов, и только потом создавать исполняемый файл?
Приношу свои извинения, за наверное такие глупые вопросы, просто я правда на данный момент плохо разбираюсь, читал, что на выходе исполняемый файл очень много весит, даже hello world , имеет объём примерно 30 мб, не говоря уже об игре или просто каком нибудь приложении.
Можно распространять хоть в бинарном хоть в исходных кодах.
man quicklisp
man asdf
man save-lisp-and-die (sbcl)
man git
man slime
> имеет объём примерно 30 мб
это не проблема на современных машинках. Зато там все с собой :) В коммерческих компиляторах можно вытрясти не нужное.
Теперь всё понятно, большое спасибо :)
Вот пример программы на лиспе под windows, которую можно скачать, распаковать архив и работать. Единственное ограничение - нужно устанавливать в конкретную папку. Это тоже можно побороть, но мне некогда.
https://bitbucket.org/budden/clcon
Спасибо за наглядный пример.
Naughty Dog, например,
использует у себя лисп. Вернее не совсем Common Lisp, а свой диалект Схемы поверх C++.
>python , ruby, php, ну и js для front-end.
Сделать можно, безусловно все, но, извините за оффтопик, за время работы с этими технологиями можно и проблеваться успеть пару раз. Я лично думаю, что сейчас один из лучших инструментов для веба это ASP.NET и прилежащие технологии, и все равно сложно мириться как с ограничениями C# так и с ограничениями .NET вообще. У лиспа, да, есть проблема в библиотеках, но она решаемая, и на linux, я думаю, решенная уже, отчасти, особенно для веба. Вобщем, quicklisp в помощь
А где вы видели игру меньше 30 мегабайт, скажем? Там счет на гигабайты идет. Да это впрочем верно в случае любого простого приложения на том же дотнете. И количество памяти при старте там примерно такое же.
> даже hello world , имеет объём примерно 30 мб
Есть такая проблема у открытых реализаций лиспа. Как верно подметили, у коммерческих реализаций лиспа ситуация много лучше.
Например, у меня есть прототип небольшого редактора диаграмм, что подразумевает десктопное ГУИ (рисование, управление мышкой, печать, экспорт в другие форматы и т.п.). Написан он с использованием LispWorks. Исполняемый файл занимает 8,3 мегабайта, запакованный в архиве zip - всего 2,6 мегабайта. При установке не требует жирных рантаймов. Просто работает.
Смущает только цена новой версии LispWorks и цена апгрейда до 64-битной версии. Да и что-то у англичан совсем расхотелось что-либо покупать - очень плохо себя ведут)
Бери SBCL, делай морду на tcl/tk. Как я с clcon.
Наверняка на tcl/tk уже есть редакторы диаграмм.
Иначе ты останешься заложником закрытой библиотеки, даже если не пожалеешь денег.
Очень некомфортное ощущение.
LispJAM2016 - тут, правда, не только CommonLisp, но для примера сойдёт.
Да и игра будет тоже около тех же 30 мегабайт весить. Смотря какая, конечно, но после первого гигабайта лишние 30 мегабайт тебя перестанут волновать. :)