← Архив: Common Lisp

Практическое применение Common Lisp

Author: · 25.01.2016 10:19
· original author: hiwoky
Доброго времени суток. Совсем недавно начал изучать conmon lisp.  Писать программы на этом языке мне нравится, но как у новичка у меня есть вопрос. Можно ли на common lisp создать напрмер полноценную игру, а точнее сделать так чтобы её можно было запустить на любом компьютере не устанавливая REPL и прочие инструменты разработки? Или в данной области лисп не применим, я знаю, что  используя лисп можно идти в веб, но честно говоря не слышал о задачах, которые не смогли бы решить три самых популярных языка для веба:  python , ruby, php, ну и js для front-end.  
· original author: andy128k
Всё можно. save-lisp-and-die
· original author: hiwoky
Хорошо, я нашёл пример как сделать точку входа в программу и скомпилировать файл, а что если мы используем целый ряд файлов, содержащих какие нибудь библиотеки и прочее, получается, необходимо предварительно их  все скомпилировать  и загрузить в виде fasl  файлов, и только потом  создавать исполняемый файл? 
· original author: hiwoky
Приношу свои извинения, за наверное такие  глупые вопросы, просто я правда на данный момент плохо разбираюсь, читал, что на выходе исполняемый файл очень много весит, даже hello world , имеет объём примерно 30 мб, не говоря уже об игре или просто каком нибудь приложении.
· original author: lithp
Можно распространять хоть в бинарном хоть в исходных кодах.
man quicklisp
man asdf
man save-lisp-and-die (sbcl)
man git
man slime
· original author: lithp
 имеет объём примерно 30 мб

это не проблема на современных машинках.  Зато там все с собой :)  В коммерческих компиляторах можно вытрясти не нужное.
· original author: hiwoky
Теперь всё понятно, большое спасибо  :)
· original author: den73
Вот пример программы на лиспе под windows, которую можно скачать, распаковать архив и работать. Единственное ограничение - нужно устанавливать в конкретную папку. Это тоже можно побороть, но мне некогда. 
https://bitbucket.org/budden/clcon
· original author: hiwoky
Спасибо за наглядный пример.
· original author: Charlz_Klug
Naughty Dog, например, использует у себя лисп. Вернее не совсем Common Lisp, а свой диалект Схемы поверх C++.
· original author: Love5an
>python , ruby, php, ну и js для front-end.  

Сделать можно, безусловно все, но, извините за оффтопик, за время работы с этими технологиями можно и проблеваться успеть пару раз. Я лично думаю, что сейчас один из лучших инструментов для веба это ASP.NET и прилежащие технологии, и все равно сложно мириться как с ограничениями C# так и с ограничениями .NET вообще. У лиспа, да, есть проблема в библиотеках, но она решаемая, и на linux, я думаю, решенная уже, отчасти, особенно для веба. Вобщем, quicklisp в помощь
· original author: Love5an
А где вы видели игру меньше 30 мегабайт, скажем? Там счет на гигабайты идет. Да это впрочем верно в случае любого простого приложения на том же дотнете. И количество памяти при старте там примерно такое же.
· original author: dsorokin
> даже hello world , имеет объём примерно 30 мб

Есть такая проблема у открытых реализаций лиспа. Как верно подметили, у коммерческих реализаций лиспа ситуация много лучше.


Например, у меня есть прототип небольшого редактора диаграмм, что подразумевает десктопное ГУИ (рисование, управление мышкой, печать, экспорт в другие форматы и т.п.). Написан он с использованием LispWorks. Исполняемый файл занимает 8,3 мегабайта, запакованный в архиве zip - всего 2,6 мегабайта. При установке не требует жирных рантаймов. Просто работает.


Смущает только цена новой версии LispWorks и цена апгрейда до 64-битной версии. Да и что-то у англичан совсем расхотелось что-либо покупать - очень плохо себя ведут)
· original author: den73
Бери SBCL, делай морду на tcl/tk. Как я с clcon.
Наверняка на tcl/tk уже есть редакторы диаграмм.
Иначе ты останешься заложником закрытой библиотеки, даже если не пожалеешь денег.
Очень некомфортное ощущение.
· original author: turtle
LispJAM2016 - тут, правда, не только CommonLisp, но для примера сойдёт.
· original author: turtle
Да и игра будет тоже около тех же 30 мегабайт весить. Смотря какая, конечно, но после первого гигабайта лишние 30 мегабайт тебя перестанут волновать. :)