LINUX.ORG.RU

Кто и что делает сейчас в Common Lisp?


0

0

Созрел у меня тут вопрос такой. Кто же что делает? Мы тут очень много спорим, вправляем друг-другу мозги, книгами осыпаем, но почему-то у меня складывается впечатление, что реальной работой заняты единицы. В то время, как в Виллабаджо (читай Common Lisp) моют посуду, в Вилларибо (Питон, Перл, PHP) давно уже празднуют. Опишите в общих чертах текущую деятельность или идеи на ближайшее время. Может, кто делает что-то делает на работе? Может, напишет, почему был выбран Common Lisp. и пр. Может, кто-то напишет, чем он помог разработке каких-нибудь библиотек для CL и пр.

★★★★★

Как главного расшатывателя флейма, жду здесь tailgunner. Он никогда не проходит мимо тем по Common Lisp :)

Zubok ★★★★★
() автор топика

> Кто же что делает?

Таки мою посуду.

> В то время, как в Виллабаджо (читай Common Lisp) моют посуду, в Вилларибо (Питон, Перл, PHP) давно уже празднуют.

У нас посуды больше (SBCL, clisp, ECL etc.) - она и похожа и разная, одна дополняет другу и ни одна не претендует на всеобъемлемость.

> Опишите в общих чертах текущую деятельность или идеи на ближайшее время.

Сказал уже - мою посуду :) Правда - не столько, на сколько не лень...

Идей - вагон и маленькая тележка, только толку, если я один не потяну? Вот и мою посуду... ;)

> Может, кто делает что-то делает на работе?

Опять же - мою посуду :D Пока нет, но очень надеюсь, что такой час наступит...

> Может, напишет, почему был выбран Common Lisp.

В питоне макр не хватало, в питоне и тикле - скорости, в жабе - лаконичности, от прочих и вовсе токсикоз... :)

> Может, кто-то напишет, чем он помог разработке каких-нибудь библиотек для CL и пр.

"Аз есьм скромен..." :)

P.S. Если кто не догнал :) "мою посуду" - иногда принимаю скромное участие в тех или иных CL проектах...

yyk ★★★★★
()

Больших проектов нету. Всякое по-мелочи, если что-нибудь посчитать надо, и прочая ерунда на скору руку.

stassats ★★★★
()

> Может, кто-то напишет, чем он помог разработке каких-нибудь библиотек для CL и пр.

Сделал один маленький патч для gsharp.

stassats ★★★★
()
Ответ на: комментарий от yyk

>P.S. Если кто не догнал :) "мою посуду" - иногда принимаю скромное участие в тех или иных CL проектах...

Ну так вот и расшифровал бы про скромное участие. :) Чего хоть за проекты? Ну или хотя бы, в каком они направлении?

>"Аз есьм скромен..." :)

Про посуду расшифровал, спасибо. Я бы не додумался никогда :) А вот это не расшифровал. Что-то делал, но не покажу, потому что скромен? ы? :)

Zubok ★★★★★
() автор топика
Ответ на: комментарий от stassats

>Сделал один маленький патч для gsharp.

О! Значит с McCLIM возишься? Это хорошо. Я тоже с ним тут кувыркаюсь. gsharp я только не смотрел никогда. :)

Zubok ★★★★★
() автор топика
Ответ на: комментарий от Zubok

> Что-то делал, но не покажу, потому что скромен?

Потому что показывать особенно нечего.

А слишком любопытные могут взять из адреса в профиле транскрипцию фамилии и вместе с лиспом спросить у гугла (если не забанили ;)

yyk ★★★★★
()
Ответ на: комментарий от stassats

У меня работа в другой области знания (электроника). Но на освоение нового (Common Lisp, например) я все-равно стараюсь тратить побольше времени. Это окупится. В школьные и студенческие годы мог сидеть сутками, а сейчас приходится доказывать, что ты эффективнее студента, так как времени не так много, а надо быть в курсе не только мелочей программирования/CL/и т. д., но и в курсе своих дел по электронике. К тому же, есть фетиш по поводу открытого софта в этой области, поэтому приходится не только CL интересоваться. Это я к тому, что объем моих результатов и помощи пока очень ограничен.

От себя про патчи. Портирование Telent CLX на CLISP. То, что идет с CLISP либо устарело (mit-clx), либо не полнофункционально (new-clx). В них не работают тулкиты McCLIM, Garnet, например. Поэтому я и принял решение сделать порт. Теперь все работает. Приятно, что это кому-то понадобилось (есть отзыв в c.l.l). Я знаю, что это сущая мелочь, но все же. Также копаюсь усиленно в коде McCLIM. Все, что я там напатчил и улучшил, лежит пока только у меня на компьютере, потому что спецификация очень большая (и зачастую путанно-сумбурная), поэтому я не вижу общей картины пока, чтобы делать квалифицированные заявления о полной работоспособности своих изменений. А работы там непочатый край.

Про идеи потом напишу.

Zubok ★★★★★
() автор топика
Ответ на: комментарий от yyk

>оопс, не знал - сорри

Да по имени и фамилии нормально все ищется. Спасибо за информацию! Посмотрел. Хорошая активность. :)

Zubok ★★★★★
() автор топика
Ответ на: комментарий от yyk

>Идей - вагон и маленькая тележка, только толку, если я один не потяну? Вот и мою посуду... ;)

То есть ты идеи хоронишь, даже не озвучив? А как же ты найдешь помошников тогда? :)

Zubok ★★★★★
() автор топика
Ответ на: комментарий от Zubok

> То есть ты идеи хоронишь, даже не озвучив? А как же ты найдешь помошников тогда? :)

Для начала надо домыть посуду... :)

А поскольку моя работа связана в основном с "быдло-задачками" баз/форм/отчётов для учёта/контроля/анализа, то и "мечты" того-же плана: сделать из лиспа не только "клей", но и сделать его "внутренним языком" для БД (PostgreSQL позволяет это), офиса (ОО тоже позволяет это) - дальше не мечтал :) А встраиваемый и свободный у нас только один, он-же один из самых "немытых" - даже не знаю с какого бока подходить... :(

yyk ★★★★★
()
Ответ на: комментарий от asgard

> есть проетик амбициозный для emacs на emacs lisp, им и занимаюсь =)

Споткнувшись об отсутствие в GNU Emacs ffi оставил сию золотую жилу :(

yyk ★★★★★
()
Ответ на: комментарий от yyk

>А встраиваемый и свободный у нас только один, он-же один из самых "немытых" - даже не знаю с какого бока подходить... :(

ECL имеется в виду?

Zubok ★★★★★
() автор топика
Ответ на: комментарий от yyk

Ну про возможность попробовать поработать с более полной имплементацией CL через сокеты я даже и советовать не буду, зная твое к этому отношение (с тобой, по-моему, мы спорили на этот счет). Но даже если есть такое отвращение, то, может быть, как Proof-of-concept подойдет, пока дела в ECL не наладятся? То есть будет текст программы исполняться где-нибудь в SBCL или CLISP, а дергать будут через FFI тот же OO.o (там есть API?) и SQL-сервер. Ы? А потом, когда наработается кодовая база, будет доказана эффективность и интересность решения, то можно будет и ECL незаметно подсунуть. Или решение в внешним CL совсем не вписывается?

Zubok ★★★★★
() автор топика
Ответ на: комментарий от Zubok

Вписывается... с тредами :( (прошу прощения у присутствующих - вынужден сидеть под оффтопиком, а там с этим, да и не только с этим, подсос). Это первое.

Второе - в ОО с внешним CL только внешнее "управление" и получится. Хочется и внутреннее (пользовательские функции и т.д.). Аналогично и с SQL.

Ладно, мы никуда и не торопимся ;)

yyk ★★★★★
()
Ответ на: комментарий от yyk

>Второе - в ОО с внешним CL только внешнее "управление" и получится. Хочется и внутреннее (пользовательские функции и т.д.). Аналогично и с SQL.

В OO иеются в виду макросы? Ну я о них и говорю. Учитывая, что OO.o написан на C++, можно написать костыль в виде библиотеки-прослойки, экспортирующей все пользовательские функции изнутри, которые тебе нужны снаружи, но только хидер сишный будет. А дальше использовать ее через FFI. А код макроса на CL как-то попробовать передать во внешний CL через сокет (тоже решается патчем кода OO.o). Ну как это SLIME и делает, но толко вместо SLIME будет редактор макросов OO.o. Ну что-то рабочее можно получить. Во всяком случае, показать не стыдно будет. Можно даже и swank там держать запущенным, чтобы сразу отладка работала, хотя это уже такая забористая фантазия. Есть Climacs такой на McCLIM. Он сам работает со swank, как Emacs.

И, кстати, вспомнил одну из попыток присобачить ECL к FireFox вместо JavaScript: Kamen Lisp. http://www.cs.stevens.edu/~dlong/software/kamen/index.php

Zubok ★★★★★
() автор топика

Про свои идеи. Есть идеи маленькие, а есть и очень глобальные. Одна идея небольшая -- это развить CLX. Очень вдохновился тут идеями XCB из freedesktop.org. И они мне перебили рутину с разбирательсвом с McCLIM. В XCB решали несколько проблем, которые имеет Xlib (борьба с latency путем введения такого понятия, как reply cookies, избавление от ненужного груза кода, размер библиотеки), и попутно перешли на интересный вид разработки кода, который, когда я увидел, то подумал: "товарищи, но на Lisp'е это сделать можно гораздо красивее". Короче, они описали протокол X и его расширения в виде многочисленных файлов XML. То, что они систематизировали спецификацию -- это они большие молодцы! Потом у них имеется преобразователь этого описания в код на Си при помощи XSLT. По сути дела, это препроцессор. Он генерит полную протокольную реализацию с посылкой команд и асинхронным получением ответов. И еще у них есть слой совместимости XCB с Xlib для legacy приложений и набор утилит для более удобной работы с XCB.

Ну вот. Поскольку в CLX нет большого числа желающих сопровождать его и добавлять новые расширения, то я взял за основу эти XML-файлы и написал программу генерации из этой XML-спецификации кода с макросами, описывающими протокол. Почти зеркально. А сейчас пишу код, который позволяет из этих макросов сгенерить полную реализацию протокола X с расширениями, для которых есть описание. XML-файлы XCB напрямую не используются из-за лицензионных соображений (хочу что-то вроде LGPL поставить), т. е. в кодовую базу они не войдут. Теперь сопровождение программы в плане добавления новых расширений будет удовольствием. Ну и еще надо будет сделать автоматическую генерацию кода совместимости со старым CLX и сделать бэкенд для McCLIM. Может быть, это будет новый проект или это будет что-то вроде CLX2. Надеюсь, хватит терпения.

Zubok ★★★★★
() автор топика

Не Common Lisp, но близко: Scheme. Использую в работе постоянно, в основном для маленьких тулзов в стиле "распарсить-сложный-исходник->вывести-по-хитрому". Типа, графы зависимостей рисовать, и т.п. Так же есть пара проектов на SISCweb, тоже вполне живых и рабочих, для внутреннего употребления. В собственно конечном продукте для пользователей тоже Лисп есть, правда свой и маленький, и самим пользователям не видный.

Common Lisp и хотелось бы использовать, да нет его под нужные платформы (.NET и JVM).

anonymous
()

Написан и уже почти год работает в продакшене сервер для GPS системы контроля транспорта. Написан на SBCL. Сервер собирает данные о передвижении автомобилей и обслуживает запросы клиентского ПО. Как бд используется postgres, для работы с БД раньше использовался cl-sql, а теперь перешел на postmodern.

В новой версии клиентского ПО также будет использоваться JScheme.

К сожалению, пока только проприетарные проекты.

kpanic ★★
()
Ответ на: комментарий от Zubok

> Как главного расшатывателя флейма, жду здесь tailgunner.

Это не флеймовая тема :) Мне и самому интересно - для чего люди используют CL. Пока что (при чтении ЛОР) у меня складывалось впечатление, что лисперы в основном пишут код на Си, но лисповыми кодогенераторами :) .

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> Пока что (при чтении ЛОР) у меня складывалось впечатление, что лисперы в основном пишут код на Си, но лисповыми кодогенераторами :) .

Ты предлагаешь сразу писать на Си? 0_0

yyk ★★★★★
()
Ответ на: комментарий от yyk

>> Пока что (при чтении ЛОР) у меня складывалось впечатление, что лисперы в основном пишут код на Си, но лисповыми кодогенераторами :) .

> Ты предлагаешь сразу писать на Си? 0_0

Писать что и для чего? :D

tailgunner ★★★★★
()

Года так, 2 - 2.5 назад, написал кучу всякой фигни, в основном по учёбе, компилятор, dsl для парсинга прайсов, dsl для гуйни к бд ну и кучу лаб. Потом активно занимался emacs-rails, но это уже emacs lisp + конечено кучу всего для себя на emacs-lisp. Сейчас совсем чуть-чуть занимаюсь emacs-rails. И много идей для реализации. Но в основном для emacs-lisp. Для коммно лиспа уже давно есть идея сделат ORM на подобие ActiveRecord, ну теперь уже на подобие DataMapper, скорей, может займусь этим в качестве дипломной работы...

CrazyPit ★★★
()

Геймдев под OpenGL, двигло своё, рабочее, проект в разработке

Используется:

С+CL. Двигло чистый Си и практически все данные преаллоцированы, ибо скорость и ещё раз скорость. Логика и AI - CL. Утилиты и редакторы C+CL вперемешку через UFFI.

MUPROC, CLOCC, CELLS

CLOS естественно в полный рост.

Darkman ★★★
()
Ответ на: комментарий от Darkman

>Под JVM есть Armed Bear Common Lisp

Только авторы заявляют об очень тормозной реализации CLOS, которую надо переделать. Другими словами, использовать, наверное, этот ABCL можно, но рекомендовать как инструмент класса "сел и сразу быстро поехал" нельзя. Об остальных проблемах этой реализации не в курсе.

Zubok ★★★★★
() автор топика
Ответ на: комментарий от Zubok

> Только авторы заявляют об очень тормозной реализации CLOS, которую надо переделать. Другими словами, использовать, наверное, этот ABCL можно, но рекомендовать как инструмент класса "сел и сразу быстро поехал" нельзя.

Не знал. Но и без CLOS много чего наваять можно.

Darkman ★★★
()
Ответ на: комментарий от Zubok

> Об остальных проблемах этой реализации не в курсе.

На 6-й (и на 7-й) работает медленнее, чем на 5-й.

А в целом не очень нравится, что реализация практически полностью "скрвает" под собой "родную" ВМ. Т.е. "скорострельность" кода _всегда_ будет ниже. И применение остаётся только как клея.

yyk ★★★★★
()

Ну вот, как всегда.

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

А здесь демонстрируют очередные быдлоформочки.

Печально.

execve
()
Ответ на: комментарий от Darkman

> Под JVM есть Armed Bear Common Lisp

Он так есть, что можно считать, что его как бы и нет. :(

Да и тяжеловат все таки CL для большинства (моих) задач. Мне Лисп нужен как промежуточный язык, над которым какой либо более высокоуровневый DSL живет. Чем он проще и легковеснее, тем лучше.

anonymous
()
Ответ на: комментарий от yyk

> В смысле "тяжеловат"? Для изучения? Для использования?

Тяжеловат - в смысле большой и жирный. Много лишнего.

Особенно это не в тему для такого часто встречающегося использования лиспов как агентные языки. Тут и Схема тоже жирна слишком, приходится поверх той же Схемы реализовывать более ограниченный и простой язык.

anonymous
()
Ответ на: комментарий от anonymous

Легковеснее реализация или легковеснее сам язык? Если реализация, то CLISP, а если язык, то не знаю. Scheme тогда бери.

Zubok ★★★★★
() автор топика
Ответ на: комментарий от execve

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

С быдлоформочками тут не видел никого.

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