Не для разжигания очередного флейма в священных войнах, но для понимания рынка, коллеги, хочу спросить. Кто-нибудь лично применял функциональные языки (лисп, эрланг или хаскелль... или ещё что-то из этой оперы) в коммерческих проектах? Если применял, то какие результаты.
Вообще, есть ли в Москве фирмы, использующие ФЯ?
ЗЫ. Я лично заинтересовался ФЯ после того как переписал логику одного проекта почти полностью в терминах remove_if и for_each. Но проект
1) С++
2) присутсвовал низкоуровневый код WinAPI (сокеты, работа с памятью и тд)
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Здравствуйте, frogkiller, Вы писали:
F>Не для разжигания очередного флейма в священных войнах, но для понимания рынка, коллеги, хочу спросить. Кто-нибудь лично применял функциональные языки (лисп, эрланг или хаскелль... или ещё что-то из этой оперы) в коммерческих проектах? Если применял, то какие результаты.
На предыдущем месте работе у меня было 4 средней величины ( или чуть поменьше ) проекта на Ерланге. Все — в области телеметрии и телеуправления. По сравнению с аналогичными на С/С++ сокращение времени разработки было в несколько раз.
Сейчас у меня близок к завершению весьма крупный проект на Ерланге + Тикль. Распределенный сервер с движком правил на Ерланге, клиенты на Тикле. Сделать это на императивщине, с приемлемой надежностью и за разумные сроки — абсолютно нереально, даже по самым оптимистичным оценкам
Так что на С/С++ нынче я пишу только расширения к Тиклю.
А насчет контор, использующих Ерланг и прочую функциональщину — это не рекламируют по вполне понятным причинам.
Здравствуйте, frogkiller, Вы писали:
F>Не для разжигания очередного флейма в священных войнах, но для понимания рынка, коллеги, хочу спросить. Кто-нибудь лично применял функциональные языки (лисп, эрланг или хаскелль... или ещё что-то из этой оперы) в коммерческих проектах? Если применял, то какие результаты. F>Вообще, есть ли в Москве фирмы, использующие ФЯ?
У нас в продакшне применяется Хаскель. Задача — поведенческие модели микроэлектроники (систем на кристалле), разрабатываемой в нашем дизайн-центре. Планируем попробовать для этой задачи Эрланг. Также, по мере набора опыта применения будем расширять применение Хаскеля (навернутые алгоритмы, оптимизаторы, моделирование), Эрланга (моделирование — елси пойдет), и ОКамла (в планах — для компиляторов). Хотите к нам на работу?
Здравствуйте, gandalfgrey, Вы писали:
G>А насчет контор, использующих Ерланг и прочую функциональщину — это не рекламируют по вполне понятным причинам.
А можно немножко подробнее про вполне понятные причины ?
Здравствуйте, gandalfgrey, Вы писали:
G>Сделать это на императивщине, с приемлемой надежностью и за разумные сроки — абсолютно нереально, даже по самым оптимистичным оценкам
Императивщина тоже разная бывает. По сравнением с С/С++ несколько кратное ускорение и упрощение ты получишь на даже на Яве.
G>А насчет контор, использующих Ерланг и прочую функциональщину — это не рекламируют по вполне понятным причинам.
Каким?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Gaperton, Вы писали:
G>У нас в продакшне применяется Хаскель. Задача — поведенческие модели микроэлектроники (систем на кристалле), разрабатываемой в нашем дизайн-центре. Планируем попробовать для этой задачи Эрланг. Также, по мере набора опыта применения будем расширять применение Хаскеля (навернутые алгоритмы, оптимизаторы, моделирование), Эрланга (моделирование — елси пойдет), и ОКамла (в планах — для компиляторов).
Как наблюдение, у вас, получается, системы требовательные по быстродействию, но не критичные ко времени отклика. Интересно. С такими сталкиваться не приходилось уже несколько лет.
G>Хотите к нам на работу?
Пока не хочу:
1) Совсем не крут в ФЯ.
2) Мне на текущей работе вполне комфортно.
Но кто знает случаи ведь разные бывают, а задачи у вас интересные.
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Здравствуйте, gandalfgrey, Вы писали:
G>Распределенный сервер с движком правил на Ерланге, клиенты на Тикле. Сделать это на императивщине, с приемлемой надежностью и за разумные сроки — абсолютно нереально, даже по самым оптимистичным оценкам G>Так что на С/С++ нынче я пишу только расширения к Тиклю.
У меня сейчас есть чем-то похожий проект — транспортный уровень распределённой системы. Как раз из-за надёжности + быстродейсвия пришлось сокетный уровень писать руками, а вот логика почти вся с помощью std::algoritms. Согласен, описывать её (логику работы) в терминах ФЯ оказалось значительно проще. Отсюда интерес к сабжу.
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Здравствуйте, VladD2, Вы писали: VD>Императивщина тоже разная бывает. По сравнением с С/С++ несколько кратное ускорение и упрощение ты получишь на даже на Яве.
Влад, я вот сейчас пишу на яве (требования заказчика такие).
И замечу, что в яве за это ускорение разработки плачено тормознутостью (и монстроидностью) результата.
А в эрланге — практически нет (некоторые фичи получаются быстрее, некоторые медленнее,
в среднем по проекту проигрышь C++ примерно 20%).
У эрлага другое ограничение, и очень серьезное: на нем нельзя писать один проект толпой более 4 человек.
(Можно очень изящно не только "прострелить себе ногу", но и "отстрелить я**а окружающим"...)
"Конвер индийцев" (даже если они русские ) с этим языком не совместим.
G>>А насчет контор, использующих Ерланг и прочую функциональщину — это не рекламируют по вполне понятным причинам. VD>Каким?
С одной сторны большое конкурентное приимущество по эффективности разработки,
а с другой — большие риски (проект можно убить уведя 1-2 человек).
Здравствуйте, UPV-mobile, Вы писали:
UM>А можно немножко подробнее про вполне понятные причины ?
Запросто !
1. Клиенты часто ( очень часто ) боятся незнакомых слов. Им нравятся модные баззворды, как-то : жаба, дотнет, XML — даже если они неприменимы к их задаче.
2. Конкурентное преимущество. Рассказывать всем ( то-есть и конкурентам ) об используемых технологиях — не самая лучшая мысль, ибо они могут соблазниться оными технологиями.
Это основные причины, но есть еще и куча мелких ( кадры и т.д.)
Здравствуйте, VladD2, Вы писали:
VD>Императивщина тоже разная бывает. По сравнением с С/С++ несколько кратное ускорение и упрощение ты получишь на даже на Яве.
Вот не замечал ! Не говоря уж о тормозах жабы как реализациях, ускорение развития проекта не превысит и 1.5. Видел я с десяток проектов, переключившихся с С/С++. Причем 1.5 — это единственный случай, за счет бибилиотек. Обычно 10-20 %.
Стоит ли овчинка выделки ? Тем более, что железо требуется при этом СОВСЕМ другое.
Здравствуйте, frogkiller, Вы писали:
F>У меня сейчас есть чем-то похожий проект — транспортный уровень распределённой системы. Как раз из-за надёжности + быстродейсвия пришлось сокетный уровень писать руками, а вот логика почти вся с помощью std::algoritms. Согласен, описывать её (логику работы) в терминах ФЯ оказалось значительно проще. Отсюда интерес к сабжу.
Было у меня и такое — делал ДЛЛю к Ерлангу для доступа к некоторым системным вещам, благо пишутся такие вещи быстро.
Здравствуйте, gandalfgrey, Вы писали:
VD>>Императивщина тоже разная бывает. По сравнением с С/С++ несколько кратное ускорение и упрощение ты получишь на даже на Яве. G>Вот не замечал ! Не говоря уж о тормозах жабы как реализациях, ускорение развития проекта не превысит и 1.5. Видел я с десяток проектов, переключившихся с С/С++. Причем 1.5 — это единственный случай, за счет бибилиотек. Обычно 10-20 %.
Пусть даже 3%. При проекте в несколько десятков человеко-лет стоимость дополнительных серверов для удовлетворения потребностей Явы может быть на порядки ниже разницы стоимости разработки.
G>Стоит ли овчинка выделки ? Тем более, что железо требуется при этом СОВСЕМ другое.
Здравствуйте, ie, Вы писали:
ie>Пусть даже 3%. При проекте в несколько десятков человеко-лет стоимость дополнительных серверов для удовлетворения потребностей Явы может быть на порядки ниже разницы стоимости разработки.
Дело в том, что при правильном использовании функциональщины выигрыш в стоимости разработки получится намного больше. Ну вот не приходилось мне как-то сталкиваться с задачами, где применение жабы было бы оправдано. Как низкоуровневый язык она не прокатит. Как высокоуровневый — тоже....Всегда находится какая-то, более выгодная альтернатива.
G>>Стоит ли овчинка выделки ? Тем более, что железо требуется при этом СОВСЕМ другое. ie>Стоит, но не всегда.
В том-то и вопрос — когда ? Покажите пальцем ! Поднимите мне веки ! (с)
Здравствуйте, gandalfgrey, Вы писали:
ie>>Пусть даже 3%. При проекте в несколько десятков человеко-лет стоимость дополнительных серверов для удовлетворения потребностей Явы может быть на порядки ниже разницы стоимости разработки. G>Дело в том, что при правильном использовании функциональщины выигрыш в стоимости разработки получится намного больше.
Ну дык с этим никто не спорит, я в контексте сравнения ++ и явы.
G>Ну вот не приходилось мне как-то сталкиваться с задачами, где применение жабы было бы оправдано. Как низкоуровневый язык она не прокатит. Как высокоуровневый — тоже....Всегда находится какая-то, более выгодная альтернатива.
Мне тоже не приходилось, но знакомые пишущие игры на мобилы ни о чем кроме явы слышать не хотят.
Здравствуйте, frogkiller, Вы писали:
F>Здравствуйте, Gaperton, Вы писали:
G>>У нас в продакшне применяется Хаскель. Задача — поведенческие модели микроэлектроники (систем на кристалле), разрабатываемой в нашем дизайн-центре. Планируем попробовать для этой задачи Эрланг. Также, по мере набора опыта применения будем расширять применение Хаскеля (навернутые алгоритмы, оптимизаторы, моделирование), Эрланга (моделирование — елси пойдет), и ОКамла (в планах — для компиляторов).
F>Как наблюдение, у вас, получается, системы требовательные по быстродействию, но не критичные ко времени отклика. Интересно. С такими сталкиваться не приходилось уже несколько лет.
Не совсем. Я объясню критерии выбора, в порядке приоритета.
1) Скорость разработки. Для поведенческих моделей короткий цикл разработки наиболее критичен, как и легкость внесения изменений.
2) Легкость чтения описаний, "декларативность". Модели формализуют применяемые алгоритмы, это конструктивное выражение требований. Насчет Хаскеля — это еще вопрос, насколько удастся сделать его читаемым для разработчиков микросхем. Работаем над этим. У Эрланга здесь должно быть все в порядке — это самый читабельный и простой в мире язык .
3) Скорость выполнения. Должна быть не большой, а разумно приличной, причем все равно, как она достигается — параллелизмом, эффективной компиляцией, или дорогим железом. Это требование поволяет пробовать Эрланг.
4) Внешние интерфейсы, возможность выполнения косимуляции. Это у всех рассматриваемых языков есть, не проблема.
Совершенно неважно: Время отклика, в этом вы правы.
Здравствуйте, ie, Вы писали:
ie>Ну дык с этим никто не спорит, я в контексте сравнения ++ и явы.
С другой стороны, кто нынче будет делать проект на несколько десятков человеколет на С/С++/Жаба ? Количество успешных среди таковых ну очень невелико...
ie>Мне тоже не приходилось, но знакомые пишущие игры на мобилы ни о чем кроме явы слышать не хотят.
Интересно, почему ?
Здравствуйте, gandalfgrey, Вы писали:
ie>>Ну дык с этим никто не спорит, я в контексте сравнения ++ и явы. G>С другой стороны, кто нынче будет делать проект на несколько десятков человеколет на С/С++/Жаба ? Количество успешных среди таковых ну очень невелико...
Вон Microsoft делает А если серъезно, то вообще количество успешных среди любых не очень велико.
ie>>Мне тоже не приходилось, но знакомые пишущие игры на мобилы ни о чем кроме явы слышать не хотят. G>Интересно, почему ?
Видимо нет достойной альтернативы. А про ФЯ позволяющие писать для мобильных девайсов, я вообще некогда не слышал.
Здравствуйте, ie, Вы писали:
ie>Вон Microsoft делает А если серъезно, то вообще количество успешных среди любых не очень велико.
Так-то оно так, но процент успешных очень сильно зависит от платформы
ie>Видимо нет достойной альтернативы. А про ФЯ позволяющие писать для мобильных девайсов, я вообще некогда не слышал.
у Окамла рантайм небольшой — его можно туда засунуть
ну, всяческие DSLи можно соорудить...А так — есть тикль, луа и прочее. Всяко лучше жабы
Здравствуйте, Gaperton, Вы писали:
F>>Вообще, есть ли в Москве фирмы, использующие ФЯ?
G>У нас в продакшне применяется Хаскель... Планируем попробовать для этой задачи Эрланг.... будем расширять применение Хаскеля (навернутые алгоритмы, оптимизаторы, моделирование), Эрланга (моделирование — елси пойдет), и ОКамла (в планах — для компиляторов). Хотите к нам на работу?
А в Киеве ваше отделение не открылось ще ?
... << RSDN@Home 1.1.4 PINK FLOYD — Shine On You Crazy Diamond (Part One)>>
Здравствуйте, Mirrorer, Вы писали:
M>А в Киеве ваше отделение не открылось ще ?
О! Земляк-единомышленник.
К Гапертону, похоже, уже очередь функционалистов из разных городов выстраивается: http://thesz.livejournal.com/332859.html, причем там личности очень и очень сильные.
Эдакий клуб желающих работать у Гапертона. Мужики, может сами соберемся и замутим, а?