LINUX.ORG.RU

Lisp for fun


0

0

Демонстрация использования Лиспа для создания OpenGL программ. Драйвер на Лиспе (driver.lisp) управляет тупым движком на C++ (engine.cpp) через FIFO-файлы. Движок возвращает события ввода как s-выражения, готовые для интерпретации.

Почему для логической части проекта лучше использовать Лисп, а не C++? Да потому, что программы на C++ - машины, а программы на Лиспе - организмы :-)

Движок использует тулкит OGRE ( http://www.ogre3d.org ), драйвер написан на CMU CL ( http://www.cons.org/cmucl/index.html ).

На закуску, старинная народная ЛОРовская забава: угадай window manager :-)

>>> Просмотр (1024x768, 96 Kb)

★★★★

Проверено: Shaman007 ()

Re: Lisp for fun

XWEM :) слов нету, всё круто, эргономично.. молоток! скриншот, что надо... давно ничего такого подобного на LOR-е не видел.

karma ()
Ответ на: Re: Lisp for fun от hbee

Re: Lisp for fun

виндовс манагер выглядит на редкость убого - на уровне твм,
лисп - сборище левых скобочек.
итог: в топку!

anonymous ()
Ответ на: Re: Lisp for fun от karma

Re: Lisp for fun

>XWEM :) слов нету, всё круто, эргономично.. молоток! скриншот, что
>надо... давно ничего такого подобного на LOR-е не видел.

Ага. Темно, как у негра в жо#е.

vada ★★★★★ ()
Ответ на: Re: Lisp for fun от anonymous

Re: Lisp for fun

> лисп - сборище левых скобочек.

Мощная фраза! А Си - сборище мелких буковок! :-)

KtaK ★★ ()
Ответ на: Re: Lisp for fun от anonymous

Re: Lisp for fun

> лисп - сборище левых скобочек.

Фу ты, я перепугался, аж вспотел. Бросился проверять - нет, правых ровно столько же, сколько левых.

hbee ★★★★ ()
Ответ на: Re: Lisp for fun от vada

Re: Lisp for fun

> Ага. Темно, как у негра в жо#е.

Хм... Неужели ты выставляешь яркость монитора ещё меньше моего? У меня яркость 0%, контраст 30%.

hbee ★★★★ ()
Ответ на: Re: Lisp for fun от vada

Re: Lisp for fun

> Темно, как у негра в жо#е.

Везде то вы были, всё то вы знаете... :)

anonymous ()

Re: Lisp for fun

Wallpaper динамический?

anonymous ()
Ответ на: Re: Lisp for fun от ezhi

Re: Lisp for fun

>респект за отличный скрин и правильный подход!

это я про пайпы

ezhi ()
Ответ на: Re: Lisp for fun от anonymous

Re: Lisp for fun

> Вообще OpenGL можно из Лиспа и без пайпов и писания на C++ использовать

Спасибо, но когда я искал биндинги OpenGL для CL, все существующие показались мне ещё незрелыми. См. также здесь: http://www.lisp-p.org/taga/node5.html

hbee ★★★★ ()
Ответ на: Re: Lisp for fun от anonymous

Re: Lisp for fun

>IMHO Slime в XEmacs покорявее работает, чем в GNU Emacs

Вообще, похоже, GNU Emacs снова вырывается вперёд ;) например, там появилась такая интересная фишка, как buffer-local modeline; и semantic лучше работает... Но я перейду на GNU Emacs не раньше, чем на нём запустится XWEM ;)

hbee ★★★★ ()
Ответ на: Re: Lisp for fun от hbee

Re: Lisp for fun

Не знаю, не было времени пока что с OpenGL играться, но, наверное, всё-таки пайпы это не очень здорово... Можно вместо этого напр. сделать интерфейс через (U)FFI (объявив необходимые плюсовые функции как extern "C").

А если уж пайпы юзать - кто-то вот сделал патч к CLX, поддерживающий протокол GLX (т.е. общаемся напрямую с X сервером, сишных библиотек не подключаем)

anonymous ()
Ответ на: Re: Lisp for fun от anonymous

Re: Lisp for fun

> Не знаю, не было времени пока что с OpenGL играться, но, наверное, всё-таки пайпы это не очень здорово... Можно вместо этого напр. сделать интерфейс через (U)FFI (объявив необходимые плюсовые функции как extern "C").

Это, вероятно, правильно, просто хотелось пайпы в Лиспе испытать. Не судите строго, поделка-то наколенная :-)

> А если уж пайпы юзать - кто-то вот сделал патч к CLX, поддерживающий протокол GLX (т.е. общаемся напрямую с X сервером, сишных библиотек не подключаем)

Очень интересно, будет свободное время - посмотрю.

hbee ★★★★ ()
Ответ на: Re: Lisp for fun от anonymous

Re: Lisp for fun

>[ http://www.ltn.lv/~jonis/glx.html ]

Ага, понятно. Низкий уровень, дофига пришлось бы писать. А OGRE - мощная высокоуровневая библиотека, кстати, пример хорошего проектирования на C++ ;)

hbee ★★★★ ()
Ответ на: Re: Lisp for fun от hbee

Re: Lisp for fun

>Но я перейду на GNU Emacs не раньше, чем на нём запустится XWEM ;)

Интересно, что я рассуждаю с точностью до наоборот: перейду на XWEM не раньше, чем он запустится на GNU Emacs.

Правда.

Хороший скрин, давно не было ничего интересного.

atoku ★★★ ()
Ответ на: Re: Lisp for fun от atoku

Re: Lisp for fun

> Интересно, что я рассуждаю с точностью до наоборот: перейду на XWEM не раньше, чем он запустится на GNU Emacs

Ничего, lg обещает CLIMACS лет через десять ;)

hbee ★★★★ ()
Ответ на: Re: Lisp for fun от hbee

Re: Lisp for fun

Хорошее проектирование на {C++/C#/Java/...} есть умение уместить не более чем в 1000* строк этого языка то, что на Лиспе занимает 3 строки ;-)

---

* лишь слегка утрируя

anonymous ()
Ответ на: Re: Lisp for fun от ezhi

Re: Lisp for fun

>респект за отличный скрин и правильный подход!

Тусовка папуасов чес слово Выставили херню и с таким кайфом ее расхваливают....

ГЫ. против лиспа ничего не имею, но сам скрин какая-то лажа... (без обид)

anonymous ()
Ответ на: Re: Lisp for fun от anonymous

Re: Lisp for fun

> Тусовка папуасов чес слово Выставили херню и с таким кайфом ее расхваливают....

> ГЫ. против лиспа ничего не имею, но сам скрин какая-то лажа... (без обид)

Правда не обижает ;). Программа и в самом деле далеко не шедевр, а рабочая обстановка чересчур аскетична и неуютна для большинства людей. Красота Emacs'а вообще больше внутренняя ;)

hbee ★★★★ ()
Ответ на: Re: Lisp for fun от anonymous

Re: Lisp for fun

>Тусовка папуасов чес слово Выставили херню и с таким кайфом ее расхваливают....

на фоне всего остального - весьма интересный скрин

ezhi ()

Re: Lisp for fun

А почему в лиспе так много скобок? Это такое извращённое понимание удобства и простоты?

anonymous ()
Ответ на: Re: Lisp for fun от anonymous

Re: Lisp for fun

Я спросил это, хотя знаю, что меня сейчас убьют )).

Считайте меня антикоммунистом!!!

anonymous ()
Ответ на: Re: Lisp for fun от anonymous

Re: Lisp for fun

> А почему в лиспе так много скобок? Это такое извращённое понимание удобства и простоты?

Почему извращённое? Что легко парсить программой, легко "парсить" и глазами/мозгом.

hbee ★★★★ ()
Ответ на: Re: Lisp for fun от anonymous

Re: Lisp for fun

> А чего так фпс мало?

Включена генерация теней - очень прожорливая. Плюс слабенький домашний комп Athlon XP 1500+ / Radeon 9100.

hbee ★★★★ ()
Ответ на: Re: Lisp for fun от hbee

Re: Lisp for fun

> А почему в лиспе так много скобок? Это такое извращённое понимание удобства и простоты?

простота - это точно, синтаксис-то минимальный. насчёт удобства - это индивидуально, в принципе скобки внимание не отвлекают совсем.

> Почему извращённое? Что легко парсить программой, легко "парсить" и глазами/мозгом.

эээ... я бы с этим не согласился - xml, например, в отличие от s-exp'ов парсится глазами не очень легко.

ezhi ()
Ответ на: Re: Lisp for fun от anonymous

Re: Lisp for fun

> Больной вопрос - а что за шрифт? Очень уж красивый.

terminus

ezhi ()
Ответ на: Re: Lisp for fun от anonymous

Re: Lisp for fun

> Больной вопрос - а что за шрифт? Очень уж красивый.

Шрифт terminus везде.

hbee ★★★★ ()
Ответ на: Re: Lisp for fun от ezhi

Re: Lisp for fun

> эээ... я бы с этим не согласился - xml, например, в отличие от s-exp'ов парсится глазами не очень легко.

Хе-хе, ты думаешь, парсер XML простая программа? Они бывают больше, чем полный интерпретатор Scheme!

hbee ★★★★ ()

Re: Lisp for fun

Хвалить не буду, чтобы папуасом не обозвали. Скажу лишь, что скрин очень понравился. В лиспе ничего не смыслю, потому понравилась обстановка, цвета, шрифты и прочая "десктоп-графика".

anonymous ()
Ответ на: Re: Lisp for fun от hbee

Re: Lisp for fun

> Хе-хе, ты думаешь, парсер XML простая программа? Они бывают больше, чем полный интерпретатор Scheme!

Это валидаторы...

anonymous ()
Ответ на: Re: Lisp for fun от hbee

Re: Lisp for fun

ээээ buffer-local modeline? что это? для каждого буфера свой формат modeline? так это испокон веков в XEmacs было (modeline-format<v> - это buffer-local переменная) .. более того, так как в XEmacs есть specifiers а любая инстанция modeline это либо specifier, либо строка с extentами - то даже при одинаковом modeline-format выглядеть modeline может как хочется (за счет мощи specifierов)

а с semanticом что? вроде после фикса в генераторе парсеров все должно работать пучком ..

lg ★★ ()
Ответ на: Re: Lisp for fun от lg

Re: Lisp for fun

> buffer-local modeline?

В смысле, faces для modeline buffer-local.

> а с semanticом что?

Его делают в первую очередь для GNU Emacs, а для XEmacs уже потом...

hbee ★★★★ ()
Ответ на: Re: Lisp for fun от atoku

Re: Lisp for fun

> Интересно, что я рассуждаю с точностью до наоборот: перейду на XWEM не раньше, чем он запустится на GNU Emacs.

с GNU Emacs тухловато .. как-то пролетало мое письмо в emacs-devel о том почему xwem под GNU Emacs до сих пор невозможен .. там было конкретно указано какой функциональности не хватает в GNU Emacs для работы xwem = никто не ответил :(

И мне так кажется что даже если кто то и сделает патч для GNU Emacs для работы xwem - RMS его отвегнет :(

основная проблема GNU Emacs на самом деле для работы таких достаточно низкоуровневых и хитрых вещей как xwem или eicq например - это интеграция внутренних Emacs eventов в emacs lisp - в (S)XEmacs с этим дело обстоит лучще ..

lg ★★ ()
Ответ на: Re: Lisp for fun от hbee

Re: Lisp for fun

аа, ну так это в XEmacs уже давно .. все свойства face (такие как background, foreground, font, etc, вобщем те которые в built-in-face-specifiers<v>) -- это specifierы! то есть значения могут меняться как хочешь в зависимости от домена specifierа (buffer, frame или window)

вообще specifierы это очень мощьный инструмент в (S)XEmacs которые позволяет полностью динамизировать значения/установки/настройки в зависимости от контекста работы

specifierы кстати это еще одно препятствие для xwem под GNU Emacs - в GNU Emacs просто !нет! specifierов :(

lg ★★ ()
Ответ на: Re: Lisp for fun от lg

Re: Lisp for fun

> аа, ну так это в XEmacs уже давно .. все свойства face (такие как background, foreground, font, etc, вобщем те которые в built-in-face-specifiers<v>) -- это specifierы! то есть значения могут меняться как хочешь в зависимости от домена specifierа (buffer, frame или window)

Классно, надо будет испытать. Хочется сделать modeline активного окна отличным от других.

hbee ★★★★ ()
Ответ на: Re: Lisp for fun от anonymous

Re: Lisp for fun

> Это валидаторы...

Может быть... Книжкой по XML я на работе окно подпираю, чтоб не закрывалось :-)

hbee ★★★★ ()
Ответ на: Re: Lisp for fun от lg

Re: Lisp for fun

А есть ли сейчас порт (S)XEmacs на gtk2 + unicode ? А то глаза уже к emacs-cvs привыкли ...

anonymous ()
Ответ на: Re: Lisp for fun от anonymous

Re: Lisp for fun

>А есть ли сейчас порт (S)XEmacs на gtk2 + unicode ? А то глаза уже к emacs-cvs привыкли ...

Это ты, брат, хочешь Гну Емакс без последователей оставить. :) Как только будет возможность выбора морды у (S)XEmacs - я, например, скорее всего перелезу таки. ;)

atoku ★★★ ()
Ответ на: Re: Lisp for fun от anonymous

Re: Lisp for fun

Не нравятся скобки - убери их. Лисп это позволяет. Выбирай любой синтаксис, какой захочешь, язык останется тем же...

Chmo ()

Re: Lisp for fun

Что-то часто на ЛОРе стали про emacs упоминать... хм... а мне все чаще стали приходить идеи начать его использовать =)

php-coder ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.