LINUX.ORG.RU

Вызов лисперам.

 


2

5

Всем привет. А давайте проверим некоторые громкие утверждения о лиспе, и сделаем это с пользой для человечества?

Я часто вижу на ЛОРе утверждения наподобие такого: «Лисп-макросы дают возможность создавать DSL под задачу, а саму задачу решать на языке предметной области». Дальше обычно следуют выводы: благодаря этому лиспер во много раз производительнее программиста на С, С++, Java, Python и прочих non-Lisp языках. Сразу disclaimer: я тут ни на чьей стороне, мне самому интересно посмотреть, как работает этот подход. В частных беседах добиться особо ничего не удалось, разве что «я тут писал DSL для разбора лисповых DSL, чтобы можно было DSLить, пока DSL разбирается; а eDSLей так вообще было не счесть». Поэтому предлагаю решить предельно конкретную задачу, в которой, кстати, есть острая нужда.

Есть такой замечательный дистрибутив Gentoo, наверняка многие им пользуются. У него прекрасная концепция, но есть большая проблема с пакетным менеджером portage. Он — «невыносимо тормозной», а его разработчики "не хотят лезть в это адское спагетти из пистона и баша". Перевожу на профессиональный язык: portage имеет проблемы с производительностью и поддерживаемостью. Вероятно, отчасти из-за неудачного выбора языков реализации.

ЛОРовцы уже кинули клич на предмет переписывания portage на С/С++, но как мне показалось, делишки идут неважно. Давайте поможем общему делу? Мне кажется, задача просто идеальная:

1. Не «Hello, World», но и не система управления ядрёным реактором. Судя по утверждениям лисперов, такое должно занять от одного вечера до нескольких дней. Таким образом, проверяем claim о производительности лиспера;
2. Исходный продукт испытывает проблемы с перфомансом. Проверяем claim о том, что лисп не тормознее сишечки, а также claim, что на лиспе проще реализовать правильные алгоритмы и структуры данных;
3. Предметная область — пакеты, метаданные, содержимое, зависимости, сборка и установка. Предельно ясная и самодостаточная. Проверяем claim о DSL и решении задачи на языке предметной области.

Итак, ТЗ — реализовать Gentoo portage на лиспе вашей мечты, The Right Way(TM). Приз — всенародное признание, сотни нефти и гарем из 99 девственниц подросшая репутация лиспа :) Впрочем, пацаны вроде даже собирались скидываться на условную «бутылку Жигуля». Кстати, призываю Chaser_Andrey в свидетели.

Ну, что? Challenge accepted?


Ответ на: комментарий от Virtuos86

А питонисты уже посрамлены. Потому что тормозит на столько, что уже зовут лисперов на помощь портэж переписывать.

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

Вроде бы

вроде бы, но никто не знает )
Там вообще какая-нибудь есть внятная документация, что этот портеж должен делать какие там интерфейсы и т.д.?

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

Но ведь ты знаешь.

ну это уже дефакто. Написано на питоне, система сложная, значит писал питонист. Значит тут одно из двух либо питонисты тупые, либо питон тормозит.
А чтобы это опровергнуть Я КИДАЮ ВЫЗОВ ПИТОНИСТАМ, попробуйте перепишите код, который уже написан на питоне, чтобы он работал быстрее, чтобы люди не жаловались.
(Кстати, хаскелисты тоже могут попробовать.)
Что-то не слышно возражений по существу — видимо все толковые питонисты уже кинулись писать код и завтра я буду посрамлён быстрой реализацией портажа на питоне.

Bad_ptr ★★★★★
()
Последнее исправление: Bad_ptr (всего исправлений: 1)
Ответ на: комментарий от Bad_ptr

Написано на питоне, система сложная, значит писал питонист. Значит тут одно из двух либо питонисты тупые, либо питон тормозит.

Нужно повысить градус неадеквата. Давай, ты сможешь.

Что-то не слышно возражений по существу

Возражать тебе? Да ты еще более упорот, чем кажешься.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от Bad_ptr

Там вообще какая-нибудь есть внятная документация, что этот портеж должен делать какие там интерфейсы и т.д.?

Такая — Желающие принять участие в написании альтернативы portage на C++ просьба отписаться (комментарий) ?

quasimoto ★★★★
()
Ответ на: ) от Bad_ptr

один питонщик уже слился

«Обосрался - засчитай оппоненту слив» (ц)

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

Обосрался

так обосрался ещё ТС, а тут вдруг комментаторы налетели как мухи

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

Сто раз обсасывалось уже, что там дело не только в языке реализации. И здравомыслящие питонисты подключают в тяжелых случаях мощь Си, а не надеются на «пуре питон павэр». Подходящий пример: Mercurial vs. Bazaar.

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

CPython - референсная реализация Python, заменяющая ему стандарт. То бишь, когда пишут «Python», имеют в виду «CPython» (питонисты имеют в виду; что имеют в виду все остальные это их проблемы). Соответственно, сообщество пилит си-пайтон, всё остальное - поделки энтузиастов. Нааример, Jython по сравнению с JRuby вообще не развивается. Есть еще PyPy, но он все еще догоняет основную реализацию, например, в плане наличия популярных библиотек, а значит, не готов для безболезненной замены в «промышленном производстве».

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

А питонисты уже посрамлены. Потому что тормозит на столько, что уже зовут лисперов на помощь портэж переписывать.

хитрые лисперы берут CL-Python и трахаются с неработающими в нём ебыдлами.

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

читай профиль портэджа в /etc/portage/profile и всю его библиотеку, которая инклудится через inherit. а потом когда ты делаешь eselect profile set симлинки на него устанавливаюцца.

оно логично, ещё можно посмотреть xmerge из crosstools как отрабатывает, например под mingw: ставится свой кросспортедж, со своим хитрым профилем, пишется враппер (кроссмёрдж, тот самый xmerge) который вызывает не системный gcc а gcc из кросстулчейна, и им собирается пакетик в кросстулз окружении. с кросстулзовым профилем.

например, можно под винду mingw-ом через xmerge пакетики собирать. только особого смысла не имеет, т.к. придётся свой профиль для кросстулчейна запилить, со своими виндовыми зависимостями. то есть, сама структура зависимостей она для винды другая будет. в принципе это возможно сделать аналогично тому, как gentoo-freebsd сделали, но проще взять другой нормальный пакетный менеджер вместо emerge : paludis / cave из генты/exherbro ну или тот самый guix, в них кросскомпиляция более здоровски работает.

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

The project was started in 2006, and is currently (2013) not under active development anymore.

уже не пилят, кажется

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