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?


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

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

unlog1c ★★★
()

тред не читал, но portage большую часть времени проводит не в cpu.

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

Сорь, под лиспом понимают нынче именно борщелисп.

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

ты не согласен чтоли?

или согласен, но хочешь полить ненавистных лисперов говном поэтому, напрямую не соглашаешься и переходишь к дефекации?

way to go.

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

ты по пруф-ссылкам до сих пор не сходило?

Но ведь ты же не смог привести их. Где они? Где в них конкретно доказательства? Приведи их сюда, как привел скобчатый код.

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

Кстати, надо отдать должное, код ты поправило. Теперь он хотя бы синтаксически корректен.

А в прошлый раз ты привело этот же кусок, только в нем закрывающих скобок было больше, чем открывающих, лол. При этом ты на полном серьезе воняло, что это рабочий код! Как ты вообще смеешь влезать в дискуссию о лиспе, если даже не видишь тупых ошибок в коде?

Это при том, что не-лиспер вычислил ошибку моментально.

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

Но ведь ты же не смог привести их. Где они?

Все ссылки есть в предыдущей теме, где ты столько раз слил.

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

Теперь он хотя бы синтаксически корректен.

Это копипаста из презентации. Какая тебе разница, как там секретарша в презентацию перепечатала.

поправило

Почему это «ло»? Я за свои слова отвечаю. Если где не прав, соглашусь. Ты же по этой теме уже сливался, но продолжаешь нести чушь. Вот ты и быдло.

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

Погоди-ка, ты ведешь к тому, что разработчики выдумали это все, и этот код нерабочий?!?

ROFL, классный аргумент - «разработчики наврали».

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

Погоди-ка, ты ведешь к тому, что разработчики выдумали это все, и этот код нерабочий?!?

Нет, это ложь.

ROFL, классный аргумент - «разработчики наврали».

Но ведь это тоже ложь, я не утверждал этого. Зачем ты приписываешь мне то, чего я не говорил?

Ты утверждаешь, что это не какой-то там конфигурационный файл или сборочный скриптик. Ты утверждаешь, что из скобчатого кода получается код на С++. При этом доказать этот факт ты до сих пор не смог. Да и не собираешься, похоже.

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

Нет, это ложь.

Это был вопрос, придурок.

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

Это очевидно для всех, знакомых хоть немного с английским языком.

При этом доказать этот факт ты до сих пор не смог.

Ты в конец тупой? Я уже сказал, все пруф-ссылки в предыдущей теме.

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

А кто тебе сказал, что они там должны быть? Влажные фантазии не в счет.

Ну вот сами лисперы и утверждают. Дескать, лиспер на каждую задачу пишет DSL, и решает задачу уже на нём. Якобы за счёт этого и продуктивность заебатая.

С какого ли хрена я должен приносить пользу сообществу, в которое я не вхожу?

Значит, этот топик не для вас. Спасибо за участие!

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

Такой крутой подход существует и широко применяется в промышленности. Но к лишпику он не имеет ни малейшего отношения.

Ну а смотри, вот выше товарищ лиспер привёл кусочек кода. Правда, конечно, хотелось бы понять, что с ним дальше происходит. DSL это или не DSL?

С другой стороны, а что если такой же по смыслу скрипт будет на Lua? В геймдеве это ведь мейнстрим. Только что-то я не встречал нигде заявлений «посмотрите, мы сделали DSL на Lua!» Такое впечатление, что лисперы называют термином DSL всё подряд. Доопределили одну функцию — eDSL. Написали пару макросов — DSL!

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

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

Мне вот это совсем не интересно.

Значит, увы, этот тред не для вас.

Спасибо за участие! :)

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

В презентации ни слова о том, какой C++-код генерится из этой скобкоты.

Какая разница? Сам же доказывал, что в рантайме «лиспа» нет?

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

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

Пфффф, вы меня запутали. «Борщевики» — это лисперы? «им бы давно было бы раз плюнуть проставиться на что-нибудь более материальное» — кто кому должен проставиться, и за что?

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

http://www.gnu.org/software/guix/

Производит впечатление proof-of-concept, как и многое в GNU. А с Portage конкретная задача. Guix наверняка можно использовать в качестве примера.

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

Понятия не имею. Не удивлюсь, если они сидят под CP/M. Они ж отсталые.

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

Ну да, трындеть — не мешки ворочать.

Чужие мешки ворочать не собираюсь, и ни от кого не требую. В трындеже меня тоже обвинять ничего, я никому не обещал что побегу писать ненужные мне приблуды по первому зову.

unlog1c ★★★
()

Воу, воу, палехчи

Джентльмены, попрошу вас не так люто дерейлить тему. Игрушка на лиспе — это, конечно, здорово, но у вас для этого есть тема про макросы :) Трепать языком можно сколько угодно, но конкретно в этой теме я бы хотел видеть мнения лисперов о challenge. К тому же, энтузиазма я пока особо не вижу.

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

В презентации ни слова о том, какой C++-код генерится из этой скобкоты.

Там даже не сказано, что сгенерированный Си++ код компилируется %)

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

Вообще-то есть MetaLua, специально чтоб DSL было делать сподручнее. И на Lua DSL пишут уже очень давно, просто считают это нормой и не визжат об этом на каждому углу.

anonymous
()
Ответ на: Воу, воу, палехчи от BYHYRT

мнение о challenge

challenge неинтересный и слишком обьемно-кропотливый чтобы о нем думать. Ну и тут-кто то уже кидал ссылку на guix

x4DA ★★★★★
()
Ответ на: Воу, воу, палехчи от BYHYRT

К тому же, энтузиазма я пока особо не вижу.

В LSB же есть только C, C++, Bash, Python и Perl? Так что ты заведомо неправильную задачу выбрал. Кому оно именно на лиспе нужно? Тем более что открытые компилруемые лиспы — толстые image based. Тем более что если охота шуструю в интерфейсе замену portage, то пусть она ещё будет переносимой, чтобы срезы поднимать на разных дистрибутивах, маке и винде (а portage когда-то и на ней запускался), с сохранением совместимости со всем что есть, разумеется (но тогда трюк в том как сделать «шуструю»).

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

You will need : unfortunately, a running X server :)
there are also a large number of work items to turn zen into a 'production server', but that was never the point !
You will notice that zen is quite slow and buggy.

Заебись «целый Х-сервер», чо. Зато на лишпе!

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

Есть ещё такая вещь — «принести пользу сообществу». Звучит выспренне, но, извините, на одном этом делался Linux.

Ой вей, 0.01, может, и делался (и то, друзья Торвальдса пивом поили), а всё остальное - за деньги или иной косный интерес.

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

[b]C WINS!!![/b]

               | X Server in C | X Server in LISP
---------------+---------------+----------------------------------
Self-contained | yes           | no; needs another X server to run
Feature set    | production    | incomplete
Speed          | fast          | slow
Stability      | stable        | buggy

C WINS!!!

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

вот вам целый х-сервер на лиспе в 5500 строк

ТАКОЙ «Х-сервер» — недоделанный, тормозной и бажный — можно и на сях-плюсах в 5500 строчек уместить.

Но только никому это не приходит в голову. Понимаешь ли, в чем дело. Программисты на си, плюсах, джаве и прочих ненавидимых вами мейнстрим-языках преследуют определенную цель. А именно — создание работающего, качественного, быстрого, полнофункционального и стабильного софта. Язык выбирается под задачу; если это системное ПО, то языком будут С/С++; если прикладное, то С/С++/Python/JavaScript; если серверное ПО, то Java/Python/Ruby.

И только у лисперов задача совершенно другая, а именно — доказать всем, что они могут не хуже, успокоить комплекс неполноценности и почесать свое ЧСВ. Отсюда и медленный, бажный и недоделанный Х-сервер в 5500 строк на лиспе; отсюда же и «легендарный» HTTP-сервер в 500 строк, который не может ровным счетом ничего и падает от малейшей нагрузки; отсюда и сотни калечных недоделок на CLiki. Пускай CLORB заброшен и не развивается с 2005 года, пускай он не поддерживает и половины CORBA 1.0 — зато можно всем говорить, что у LISP есть свой ORB!!!!111

Резюме: разработчики — занимаются делом, а лисперы — петушением.

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

Естественно, ребята из Naughty dog по первому требования готовы предоставить исходники проекта ААА-класса, в которых и будут соответствующие доказательства.

anonymous
()

Правильный портаж уже написан на лиспе и называется guix. Пользуйся и наслаждайся.

ugoday ★★★★★
()

Dan Liebgold, Sony Computer Entertainment: Существенная часть The Last of Us написана на DSL'ях, компиляторы которых написаны на Racket.
Борще-архитектор, Мухосранск: Да вы всё врёте!!111
Dan Liebgold, Sony Computer Entertainment: (пожимает плечами)

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

А теперь сравни с размерами Lua и устыдись.

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

Есть ещё такая вещь — «принести пользу сообществу». Звучит выспренне, но, извините, на одном этом делался Linux.

Ага, вот я помню нас полковой попик замполит пытался развести такими словами на т.н. «дембельский аккорд». Вроде как из вас недоносков, солдат нихрена не получилось, так искупите вину перед Родиной и Богом активным трудом и на месяц раньше домой отпустят. Задача была поставлена - бассейн в детском саду за 3 недели.

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