LINUX.ORG.RU

ЛОР-конкурс: LISP vs. Everything


0

0

Дорогие друзья!

За несколько лет идея превосходства LISP (и функциональных языков вообще) над императивными языками стала настоящим феноменом ЛОРа.

Каждый раз эта тема, возникнув в рамках обсуждения какой-либо новости, приводит к жарким, невероятно интересным дискуссиям. С обеих сторон звучат вполне убедительные и красноречивые доводы. Рассматривается как технологическое, так и экономическое превосходство языков и технологий. В контексте одной из недавних новостей ("50 лет языку LISP", http://www.linux.org.ru/view-message.jsp?msgid=3184185) прозвучала идея наконец поставить точку в историческом противостоянии при помощи практического эксперимента, а именно - конкурса разработчиков.

Формат конкурса представляется таким. Выдвигаются три команды (например, LISP Nerds, Java Monkeys и C/C++ Jerks), каждая из которых должна быть представлена двумя составами. Размер состава - два-три человека. Командам предлагаются задачи по следующим восьми категориям:

1. Системное программирование;
2. Бизнес-приложения;
3. Веб-приложения;
4. Анализ текстов, компиляция и интерпретация;
5. Искусственный интеллект;
6. HPC-вычисления;
7. Компьютерные игры;
8. Desktop-приложения.

Список категорий отражает реальные задачи современного мира информационных технологий; детализация списка и подробные ТЗ последуют, обсуждение списка приветствуется.
Задачи выполняется первыми составами каждой команды. Затем проводится изменение ТЗ (ощутимое, но не кардинальное), и изменения реализуются вторым составом при условии неучастия второго состава в первом раунде. Т.е. цель второго раунда - показать, насколько возможно сопровождение программного продукта при смене команды разработчиков.
Результаты обоих раундов каждого этапа оцениваются жюри и сообществом по нескольким критериям: время, затраченное на решение; качество кода; качество продукта и соответствие требованиям; управляемость проектом, лёгкость (или сложность) поддержки и рефакторинга.
Сразу стоит отметить, что задачи будут представлять собой реальные (но сильно упрощённые) примеры задач из жизни. Упрощённые - потому что надо отдавать себе отчёт в том, что участники, скорее всего, будут весьма занятыми людьми, и их время надо уважать.

Хочется понять, вызывает ли эта идея интерес ЛОРовцев как таковой. Заинтересованным в участии (и в организации) буду благодарен за их мнения по поводу затеи. Скорее всего, это будет классический проект "Just for fun", хотя идеи насчёт организации фонда денежного приза (за счёт спонсоров, например) приветствуются. С организационной точки зрения стоит отметить необходимость площадок для развёртывания и тестирования; понадобятся также репозитории исходных текстов (SVN, GIT).

Приглашаю делиться идеями насчёт формулировки задач. Черновые формулировки уже составлены, но очень хотелось бы, чтобы от конкурса была реальная польза для сообщества, т.е. можно было брать в качестве задач bounties или просто нерешённые вопросы значимых opensource-проектов.

Отдельное спасибо зарегистрированным коллегам за освещение проекта в разделе форума Talks.

anonymous

Re: ЛОР-конкурс: LISP vs. Everything

команда лисперов - это фантастика >.> системное программирование на ява - туда же

stave ★★★★★ ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от stave

Re: ЛОР-конкурс: LISP vs. Everything

>команда лисперов - это фантастика

По утверждению представителей лагеря LISP, "Лисп давно в энтерпрайзе" (при этом обычно добавляют: "только вам, простым смертным, это недоступно"). Вы можете себе представить разработку и поддержку больших корпоративных систем кустарём-одиночкой? пускай даже и гением? Я - нет. Энтерпрайз же, я полагаю, от такой ситуации бежит, как от огня. Никакой вменяемый руководитель не допустит незаменимого слабого звена, не допустит того, чтобы судьба предприятия зависела от какой-то одной личности. Но давайте всё же перенаправим этот вопрос представителям лагеря LISP. Вопрос звучит так: "Возможна ли успешная работа над LISP-проектами силами большой команды? Если нет, то каким образом (по вашему утверждению) LISP снискал признание в области enterprise?"

>системное программирование на ява


Заметьте, к участию приглашаются и программисты на С/C++. Кстати, рекомендую ознакомиться с проектами OpenFire и ApacheDS - это хорошие примеры системного программирования на Java.

anonymous ()

Re: ЛОР-конкурс: LISP vs. Everything

Это где такие специалисты водятся, которые

а) одинаково адекватны в каждой из 8 областей;

б) используют один ЯП для всех этих областей.

Ы?

mv ★★★★★ ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от mv

Re: ЛОР-конкурс: LISP vs. Everything

>одинаково адекватны в каждой из 8 областей

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

>используют один ЯП для всех этих областей.


Апологеты LISP уверяют, что LISP превосходит остальные языки во всех этих областях.

anonymous ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от anonymous

Re: ЛОР-конкурс: LISP vs. Everything

> Апологеты LISP уверяют, что LISP превосходит остальные языки во всех этих областях.

Мне бы никогда не пришло в голову использовать ни один из упомянутых в топике языков для пунктов 4 и 8.

naryl ★★★★★ ()

Re: ЛОР-конкурс: LISP vs. Everything

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

// wbr

klalafuda ★☆☆ ()

Re: ЛОР-конкурс: LISP vs. Everything

Сколько?

Miguel ★★★★★ ()

Re: ЛОР-конкурс: LISP vs. Everything

1. При чем здесь функциональщина? Лисперы делают упор на широкие возможности метапрограммирования.

2. Почему так убог список языков? Нету D, Forth, OCaml, Haskell, Scala, Python, Perl и прочих православных вещей.

3. Где же, наконец, tailgunner?

anonymous ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от anonymous

Re: ЛОР-конкурс: LISP vs. Everything

> Почему так убог список языков? Нету D, Forth, OCaml, Haskell, Scala, Python, Perl

+1. Ещё можно добавить tex ;) Только кто возьмётся?

Готов поучавствовать за D и/или tcl.

naryl ★★★★★ ()

Re: ЛОР-конкурс: LISP vs. Everything

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

>понадобятся также репозитории исходных текстов (SVN, GIT).

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

cvb ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от naryl

Re^2: ЛОР-конкурс: LISP vs. Everything

>> Почему так убог список языков? Нету D, Forth, OCaml, Haskell, Scala, Python, Perl
> +1. Ещё можно добавить tex ;) Только кто возьмётся?


Тогда уж ещё и XSLT до кучи, а то у нас уж больно много любителей программировать на xml-е развелось :)

gaa ★★ ()

Re: ЛОР-конкурс: LISP vs. Everything

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

gaa ★★ ()

Re: ЛОР-конкурс: LISP vs. Everything

> очень хотелось бы, чтобы от конкурса была реальная польза для сообщества, т.е. можно было брать в качестве задач bounties или просто нерешённые вопросы значимых opensource-проектов.

Вот это идея хорошая, но вряд ли её стоит подавать в соревновательной форме, ибо тут нужен совершенно не соревновательный подход, чтобы получилось что-нибудь действительно полезное, а не очередная недоделка, коих полно. А соревнование как раз и подразумевает "сделал и бросил".

gaa ★★ ()

Re: ЛОР-конкурс: LISP vs. Everything

1, 4 без сравнения с perl. Какой-то неадекват получается :-)

Anoxemian ★★★★★ ()

Re: ЛОР-конкурс: LISP vs. Everything

Ну если LISP vs. Everything, то и условия должны быть соответствующими: две команды, вторая может использовать всё, что угодно, кроме LISP.

anonymfus ★★★★ ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от Anoxemian

Re: ЛОР-конкурс: LISP vs. Everything

>> 1. Системное программирование;

>> 4. Анализ текстов, компиляция и интерпретация;

> 1, 4 без сравнения с perl. Какой-то неадекват получается

С каких это пор перл начал рулить в системном программировании и компиляции? Может назовете хоть один компилятор, написанный на перле?

anonymous ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от anonymfus

Re: ЛОР-конкурс: LISP vs. Everything

>две команды, вторая может использовать всё, что угодно, кроме LISP

Террорист! ЛОРовцы передушат друг друга на этапе выбора языка.

anonymous ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от imp

Re: ЛОР-конкурс: LISP vs. Everything

> Готов поучаствовать, если команда по Haskell'ю соберется.

Готов поучаствовать в той же команде.

pierre ()

Re: ЛОР-конкурс: LISP vs. Everything

Каков минимальный размер команды? Боюсь даже четырёх D-программеров на ЛОРе не найти.

naryl ★★★★★ ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от naryl

Re: ЛОР-конкурс: LISP vs. Everything

два-три судя по комментам найдётся
Вообще на D было бы интересно посмотреть/поучаствовать -- если уж C++ и Java есть в списке, D сам Брайт велел. Пункт 6 на D пожалуй под вопросом, но если уж на С/С++ есть тот же MPI/OpenMP, обёртками его спортировать в D можно.
Заодно это бы практически показало его применимость по сравнению с С/С++. Пункт 2 тоже у D под вопросом, впрочем, как и у С++ по сравнению с Java, но тоже вполне реально, дело за конкретным ТЗ.

anonymous ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от naryl

Re: ЛОР-конкурс: LISP vs. Everything

>> Апологеты LISP уверяют, что LISP превосходит остальные языки во всех этих областях.

>Мне бы никогда не пришло в голову использовать ни один из упомянутых в топике языков для пунктов 4 и 8.


4, интерпретация и компиляция на Java -- есть например, ANTLR, SableCC, и ещё вагон и маленькая тележка. На D -- есть SableCC-d, Dparser, GOLDparser (который примерно как Ragel, вообще генерирует конечные автоматы -- поэтому у него есть с десяток бекендов на разных языках, новый прикручивается шаблонами за 5 минут), навороченный language machine, D-to-D и т.п.

8 на яве -- это да, интересное чудо должно быть. Одно энтерпрайз-приложение шло с инсталлятором JBoss/firebird/само приложение, один такой огромный jar на 528 мб. Впрочем, в варианте gnome-java оно довольно симпатично (кстати, раз gnome/gtk, напрашивается Vala и Mono).

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

anonymous ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от anonymous

Re: ЛОР-конкурс: LISP vs. Everything

> Пункт 6 на D

кстати, видел реализацию GLSL шейдеров на D, там и до CUDA/OpenCL недалеко

anonymous ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от anonymous

Re: ЛОР-конкурс: LISP vs. Everything

Во-первых, я не утверждал что этого никто не делает, во-вторых, под упомянутыми в топике я имел ввиду первый пост, т.е. Lisp, Java, C/C++ (да простят меня авторы gcc)

И ИМХО в пункт 4 должен входить только фронтэнд компилятора.

naryl ★★★★★ ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от anonymous

Re: ЛОР-конкурс: LISP vs. Everything

> Где же, наконец, tailgunner?

Он пытается представить системное программирование на Лиспе.

Идея конкурса какая-то странная - писать драйвер на Лиспе? O_o Писать экспертную систему на Си? o_O

Кстати, LOR contest объявлен уже года два назад в эпическом треде "Фраза о Лиспе".

tailgunner ★★★★★ ()

Re: ЛОР-конкурс: LISP vs. Everything

Со списком категорий можно согласиться, но, думаю, основная сложность будет в составлении ТЗ. Готов приступить к обсуждению его содержания. Считаю что LISP vs. Everything стоит ограничить до LISP vs С++/Java, так как для каждой из категий можно найти специализированый язык программирования, который покажет лучший результат, чем данная тройка. Не против поучавствовать по 1, 6 и 8 за С++.

SSN ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от SSN

Re: ЛОР-конкурс: LISP vs. Everything

> Не против поучавствовать по 1, 6 и 8 за С++.

тогда дело за малым - найти дурака, который был бы не против сделать то-же самое на Lisp.

// wbr

klalafuda ★☆☆ ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от SSN

Re: ЛОР-конкурс: LISP vs. Everything

> Считаю что LISP vs. Everything стоит ограничить до LISP vs С++/Java, так как для каждой из категий можно найти специализированый язык программирования, который покажет лучший результат, чем данная тройка.

Честно говоря, не вижу никакой связи между причиной и выводом.

Тогда уж ограничить до неспециализированных языков или языков, на которых есть возможность реализовать все 8 заданий. (эх... tex отпадает %)

naryl ★★★★★ ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от naryl

Re: ЛОР-конкурс: LISP vs. Everything

> Тогда уж ограничить до неспециализированных языков или языков, на которых есть возможность реализовать все 8 заданий. (эх... tex отпадает %)

почему отпадает? отнюдь. безумству храбрых поём мы песню. welcome with tex.

// wbr

klalafuda ★☆☆ ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от anonymous

Re: ЛОР-конкурс: LISP vs. Everything

> 8 на яве -- это да, интересное чудо должно быть.

Уже год как пишу 8 на яве. Сегодня вспоминал маму Гослинга всего 3 раза. Рекорд. (Пришлось "изобретать" линейный поиск. В jdk есть только бинарный)

naryl ★★★★★ ()

Re: ЛОР-конкурс: LISP vs. Everything

Может тогда что-нибудь одно реализовывать? Например игры Жизнь?

anonymous ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от anonymous

Re: ЛОР-конкурс: LISP vs. Everything

По несортированным массивам. Конечно можно было преобразовать к списку, у которого уже есть indexOf и lastIndexOf... хватит оффтопить.

naryl ★★★★★ ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от tailgunner

Re: ЛОР-конкурс: LISP vs. Everything

> Он пытается представить системное программирование на Лиспе.

Сходи в музей, посмотри на Symbolics.

anonymous ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от klalafuda

Re: ЛОР-конкурс: LISP vs. Everything

> посмотрел. не впечатлило.

Ну, твоё мнение особого интереса не представляет, ты ж не специалист, чтоб адекватное мнение иметь. Важно другое - это именно что системное программирование. И именно на Лиспе.

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

anonymous ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от anonymous

Re: ЛОР-конкурс: LISP vs. Everything

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

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

// wbr

klalafuda ★☆☆ ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от anonymous

Re: ЛОР-конкурс: LISP vs. Everything

>> Может тогда что-нибудь одно реализовывать? Например игры Жизнь?

Может быть начнём составлять более-менее чёткое ТЗ?

Например можно реализовать специальную программу-демон, в которой будет крутиться сама игра. На бесконечном двухмерном поле. К этому демону можно цепляться программой с пользовательским интерфейсом (графическая и консольная версия), через которую смотреть что происходит и как-нибудь управлять. Демон можно разносить на несколько машин. В любой момент можно сохранить текущую генерацию мира в файл определённого формата (общего для всех реализаций), чтобы можно было затем восстановить мир или сравнить с результат с результатом некоторой референсной реализации.

Мне это видится как-то так...

mironov_ivan ★★★★★ ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от anonymous

Re: ЛОР-конкурс: LISP vs. Everything

>> Он пытается представить системное программирование на Лиспе.

> Сходи в музей, посмотри на Symbolics.

Да-да, Genera и Movitz (еще что-нибудь есть?). Об ОС для Symbolics я читал почти 20 лет назад в книге финнов %) Но одна работала на Лисп-машине (и ее писали упертые Лисперы), вторая стала зомби еще до рождения. А мы сейчас говорим о гипотетическом соревновании в текущих условиях.

tailgunner ★★★★★ ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от mironov_ivan

Re: ЛОР-конкурс: LISP vs. Everything

> Может быть начнём составлять более-менее чёткое ТЗ?

> Например можно реализовать специальную программу-демон, в которой будет крутиться сама игра. На бесконечном двухмерном поле. К этому демону можно цепляться программой с пользовательским интерфейсом (графическая и консольная версия), через которую смотреть что происходит и как-нибудь управлять.

http://www.linux.org.ru/wiki/en/LOR-contest

tailgunner ★★★★★ ()
Ответ на: Re: ЛОР-конкурс: LISP vs. Everything от anonymous

Re: ЛОР-конкурс: LISP vs. Everything

> Сходи в музей, посмотри на Symbolics.

В музей не обязательно, есть эмулятор Genera

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