Существует классическая статья "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.
Если у вас есть идея подходящией задачи и вы хотите ей поделится — напишите комментарий, а?
(
November 6 2009, 01:11:34 UTC 2 years ago
блекджека и шлюхмодных наворотов.November 6 2009, 01:15:35 UTC 2 years ago
November 6 2009, 05:34:38 UTC 2 years ago
Тема уже затевалась вот тут:
http://www.progz.ru/forum/index.php?s=
Но так до ума и не была доведена.
November 6 2009, 06:52:52 UTC 2 years ago
Из плюсов вижу следующее:
1) есть стандарт который нужно реализовать так что разночтения в задаче вряд ли возможны.
2) Дело довольно полезное т.к. иметь библиотеку реализующую стандарт на политики безопасности на своем любимом языке это не плохо.
3) Задача по времени довольно подъемная
4) С другой стороны стандарт довольно сложный и будет где развернуться.
November 6 2009, 08:41:36 UTC 2 years ago
Обоснование такое: работы немного, не надоест участникам. Хорошо показываются проблемы и плюсы тех или иных языков, связанные с работой в сети. Плюс оно практичное и очень легко тестируется (VLC + файлик с ютуба).
У тех, кто выберет C будет фора засчет наличия библиотек для разбора mp4.
November 6 2009, 12:05:08 UTC 2 years ago
November 6 2009, 12:14:06 UTC 2 years ago
November 6 2009, 13:34:36 UTC 2 years ago
2 years ago
2 years ago
2 years ago
November 6 2009, 08:42:22 UTC 2 years ago
(сеть+парсинг+расширяемость+многопользов
2. Прочитать ролл из каких-нибудь простых структур из файла.
Сделать пейджинг, сортировку по разным полям, фильтрацию.
(файловые операции+парсинг+сортировки+приведение типов)
;)
November 7 2009, 13:09:52 UTC 2 years ago
November 8 2009, 19:06:58 UTC 2 years ago
На C: bison+flex для парсинга, какие-нибудь готовые контейнеры для сортировок.
November 6 2009, 08:57:45 UTC 2 years ago
November 6 2009, 12:14:34 UTC 2 years ago
November 6 2009, 12:17:09 UTC 2 years ago
November 6 2009, 13:38:55 UTC 2 years ago
November 6 2009, 20:14:42 UTC 2 years ago
November 7 2009, 10:17:42 UTC 2 years ago
November 7 2009, 19:37:50 UTC 2 years ago
November 6 2009, 18:22:56 UTC 2 years ago
http://norvig.com/java-lisp.html
Там уже есть кое-какая статистика, но она устарела, и некоторых интересных языков нет.
Задачка не привязана к системе/платформе, требует 2-10 часов на реализацию и 20-500 строк кода.
Сам на днях собирался с аналогичными целями предложить ее нынешней публике.
November 8 2009, 19:39:49 UTC 2 years ago
Релизовать Wavelet packet transform
Релизовать Wavelet packet transform lifting scheme. и дать 1 GB bitmap на обработку.November 9 2009, 06:22:38 UTC 2 years ago
Re: Релизовать Wavelet packet transform
Вэйвлет - это, как ни крути, числодробление. Рулит си или асм или кодогенерация.November 9 2009, 09:49:45 UTC 2 years ago
Re: Релизовать Wavelet packet transform
вейвлет и вейвлет пакет трансформ не одно и то же.При WPT рекурсивно строится дерево вейвлетов, поэтому окамл и хаскель могут дать очень хорошие результаты.
Anonymous
November 13 2009, 04:50:00 UTC 2 years ago
ЛОР-контест?
http://linux.org.ru/wiki/en/LOR-contestПойдет?
November 13 2009, 05:21:30 UTC 2 years ago
ЛОР-контест?
http://linux.org.ru/wiki/en/LOR-conNovember 23 2009, 13:39:20 UTC 2 years ago
насчет блэкджека и шлюх (cgi, встроенное скриптование, виртуальные сервера) вопос обсуждаемый
основное -- сервер должен крутиться долго, что бы нивелировать разницу от GC когда ему не надо освобождать память и free, которая вызывается даже если в данном случае можно свалить подчистку выделенной памяти на ОС