Существует классическая статья "Haskell vs. Ada vs. C++ vs. Awk vs. ... An Experiment in Software Prototyping Productivity", написанная в 1994-м году. За 15 лет многое изменилось, и, думается, многим было бы интересно прочитать подобную статью про положение дел сегодня.
В связи с этим ищутся:
1) Условия подходящей задачи (критерии см. ниже)
2) Желающие реализовать ее на Haskell/C+/Ocaml/Java/Scala/C#/... с тем, чтобы ваш код был нещадно сравнен с другими и опубликован для всеобщего обозрения.
Q:Зачем все это делается?
A:На других посмотреть, себя показать. В частности, чтобы люди имели возможность посмотреть на решения на других языках, и составить о них какие-то мнение.
Q:Чем не устраивает The Great Language Shootout?
A:Тем, что там отдается предпочтение "быстрым и грязным" решениям, которые всячески "срезают углы". Во-первых, в таком стиле пишется дай бог чтобы 5% от всех программ, во-вторых, людям, не знающим язык X, строго противопоказано смотреть на решения на языке X в Language Shootout — останется превратное впечатление.
Q:Как будут сравниваться решения, чтобы определить победителя?
A:Никак, т.к. победителей не будет. Будут приведена определенная статистика по всем решениям, без выводов.
Q:Какой тогда стимул участвовать?
A:На других посмотреть, себя показать
Какой должна быть задача?
1)Не заточенной под конкретную ОС (т.е. "Реализовать компонент, встраеваемый в Word" или "плагин для libpam" — не катит)
2)Не заточенной под конкретный язык/фреймворк/... (т.е. "получить список сигнатур методов всех объектов указанной сборки .Net" — не катит)
3)Если глубокие знания в предметной области дают решающее преимущество — это fail (т.е. "реализовать DES-CBC" — не катит)
4)Чтобы она не была из категории "мне не нужно, чтобы плац был чистый, а нужно, чтобы вы задолбались" (т.е. "распарсить XLS-файл, не пользуясь библиотеками" — не катит)
5)Задача не должна требовать много времени на реализацию (если это будут человеко-недели — никто за нее не возьмется)
Какой должна быть реализация?
1)Чтобы ее было не стыдно показать другим. В частности, чтобы решение на языке X не заплевали бы как кривое и неидиоматичное другие программисты, знающие язык X.
2)Идеально было бы давать две реализации: первую с ориентиром на "красоту", "образцово-показательность" и легкость поддержки/развития кода (т.е. пишем как пример кода, который будет прилагаться к резюме , а вторую — "грязную и быструю".
3)Т.к. библиотеки — это неотъемлимая часть силы и популярности языка, библиотеками "общего назначения" (контейнеры, парсинг, ...) пользоваться можно и нужно
4)Но! Решение, которое свелось к исключительно к нахождению и использованию какой-то (узкоспециальной) библиотеки никому не интересно и рассматриваться не будет.
Выбирать подходящее условие будет жюри, представляющее апологетов всех течений и направлений, в том числе — включающее тех, кто критически отзывался о материалах, уже вышедших в fprog.ru.
Если у вас есть идея подходящией задачи и вы хотите ей поделится — напишите комментарий, а?
Публикую в «Философии», потому что здесь много хорошего народа сидит
Здравствуйте, Mamut, Вы писали:
M>В связи с этим ищутся: M>1) Условия подходящей задачи (критерии см. ниже) M>2) Желающие реализовать ее на Haskell/C+/Ocaml/Java/Scala/C#/... с тем, чтобы ваш код был нещадно сравнен с другими и опубликован для всеобщего обозрения.
Идеи задачи пока нет, но с радостью взялся бы за пункт 2 на Fan'е
Re: [ANN] Языки программирования в условиях, приближенных к
Здравствуйте, Mamut, Вы писали:
M>Какой должна быть задача? M>1)Не заточенной под конкретную ОС (т.е. "Реализовать компонент, встраеваемый в Word" или "плагин для libpam" — не катит) M>2)Не заточенной под конкретный язык/фреймворк/... (т.е. "получить список сигнатур методов всех объектов указанной сборки .Net" — не катит) M>3)Если глубокие знания в предметной области дают решающее преимущество — это fail (т.е. "реализовать DES-CBC" — не катит) M>4)Чтобы она не была из категории "мне не нужно, чтобы плац был чистый, а нужно, чтобы вы задолбались" (т.е. "распарсить XLS-файл, не пользуясь библиотеками" — не катит) M>5)Задача не должна требовать много времени на реализацию (если это будут человеко-недели — никто за нее не возьмется)
Если брать алгоритмические задачи, то:
Генератор ходов в шахматах/шашках подходит? Не сильно противоречит п. 3?
Оценка руки в пяти (семи) карточном покере
не слишком противоречит п. 3?
Re[2]: [ANN] Языки программирования в условиях, приближенных
M> Если брать алгоритмические задачи, то: M> Генератор ходов в шахматах/шашках подходит? Не сильно противоречит п. 3? M> Оценка руки в пяти (семи) карточном покере M> не слишком противоречит п. 3?
Здравствуйте, AndrewVK, Вы писали:
AVK>В плане сравнения языков — скучно. Языки интересно сравнивать на задачках со структурной сложностью, а не с алгоритмической.
Потому что в первом случае рулит ООП, а во втором ФП, первые интересны для архитекторов, вторые для кодеров. Кажется, это уже было здесь
Здравствуйте, Mamut, Вы писали:
M>3)Если глубокие знания в предметной области дают решающее преимущество — это fail (т.е. "реализовать DES-CBC" — не катит)
Да не нужны для этого какие-то знания! Берем референс, и вперёд. Вот только победитель предопределён
.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re: [ANN] Языки программирования в условиях, приближенных к
Угу, и получим мы с такими условиями очередную пиписькомерку аля квиксорт на хаскелле, которыми очень гордятся господа функциональщики.
Задача должна быть реальной! Например разработать простой интернет магазин с каталогом и веб-сервисом (хотя бы даже самым простейшим) + каким-нибудь аяксом + все это хранится в произвольной СУБД, но, допустим, без интеграции с платежными системами и прочими дебрями. Вот тогда и посмотрим у кого длиннее... шо-то мне кажется что рубироиды таки всех уделают...
ИМХО, задача с магазином вполне корректная — никаких ограничений вроде бы не просматривается: и дотнетчику с жабером подойдем и пыхпыхеру с рубироидом.
Re[2]: [ANN] Языки программирования в условиях, приближенных
Здравствуйте, mini_root_2, Вы писали:
__>ИМХО, задача с магазином вполне корректная — никаких ограничений вроде бы не просматривается: и дотнетчику с жабером подойдем и пыхпыхеру с рубироидом.
Только вот задачка чуть менее чем полностью будет отражать способности веб-фреймворка, а не языка.
... << RSDN@Home 1.2.0 alpha 4 rev. 1276 on Windows 7 6.1.7600.0>>
Здравствуйте, mini_root_2, Вы писали:
__>Задача должна быть реальной! Например разработать простой интернет магазин с каталогом и веб-сервисом (хотя бы даже самым простейшим) + каким-нибудь аяксом + все это хранится в произвольной СУБД, но, допустим, без интеграции с платежными системами и прочими дебрями. Вот тогда и посмотрим у кого длиннее... шо-то мне кажется что рубироиды таки всех уделают...
Это не похоже на задачу для реализации на ЯП общего назначения.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[3]: [ANN] Языки программирования в условиях, приближенных
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, mini_root_2, Вы писали:
AVK>Только вот задачка чуть менее чем полностью будет отражать способности веб-фреймворка, а не языка.
Тогда уберите из заголовка "условия приближенные к боевым": ибо получается, что в реальной жизни "сахар" не является определяющим для решения задачи.
Re[4]: [ANN] Языки программирования в условиях, приближенных
Здравствуйте, mini_root_2, Вы писали:
__>Тогда уберите из заголовка "условия приближенные к боевым": ибо получается, что в реальной жизни "сахар" не является определяющим для решения задачи.
Квантор всеобщности тут лишний.
... << RSDN@Home 1.2.0 alpha 4 rev. 1276 on Windows 7 6.1.7600.0>>
Здравствуйте, FR, Вы писали:
FR>Здравствуйте, achmed, Вы писали:
A>>Пожалуйсита, конвертер html -> wiki, подходит по всем критериям.
FR>Если всерьез нужны специфические знания. Хотя можно жестко ограничить задачу.
html — трудно назвать специфическим знанием
wiki — можно ограничить базовой разметкой, это немного
задача представляет структурную сложность и является жизненной
Re[4]: [ANN] Языки программирования в условиях, приближенных
Здравствуйте, achmed, Вы писали:
A>html — трудно назвать специфическим знанием
Легко, я вот три года назад совсем не знал, так как с web не соприкасался.
A>wiki — можно ограничить базовой разметкой, это немного
A>задача представляет структурную сложность и является жизненной
Да задача нормальная но по ней нужно внятное и строгое ТЗ.
Re: [ANN] Языки программирования в условиях, приближенных к
Не слишком большая, чтобы быть занудной, но и не квиксорт. Плюс, уже известна старая статистика для C++, Java, Python и Lisp. Хочется сравнить с современными решениями и языками.
Re: [ANN] Языки программирования в условиях, приближенных к