Практическое применение
От: frogkiller Россия  
Дата: 04.09.06 13:08
Оценка:
Не для разжигания очередного флейма в священных войнах, но для понимания рынка, коллеги, хочу спросить. Кто-нибудь лично применял функциональные языки (лисп, эрланг или хаскелль... или ещё что-то из этой оперы) в коммерческих проектах? Если применял, то какие результаты.
Вообще, есть ли в Москве фирмы, использующие ФЯ?

ЗЫ. Я лично заинтересовался ФЯ после того как переписал логику одного проекта почти полностью в терминах remove_if и for_each. Но проект
1) С++
2) присутсвовал низкоуровневый код WinAPI (сокеты, работа с памятью и тд)
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Re: Практическое применение
От: gandalfgrey  
Дата: 04.09.06 13:57
Оценка: 12 (3)
Здравствуйте, frogkiller, Вы писали:

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


На предыдущем месте работе у меня было 4 средней величины ( или чуть поменьше ) проекта на Ерланге. Все — в области телеметрии и телеуправления. По сравнению с аналогичными на С/С++ сокращение времени разработки было в несколько раз.
Сейчас у меня близок к завершению весьма крупный проект на Ерланге + Тикль. Распределенный сервер с движком правил на Ерланге, клиенты на Тикле. Сделать это на императивщине, с приемлемой надежностью и за разумные сроки — абсолютно нереально, даже по самым оптимистичным оценкам
Так что на С/С++ нынче я пишу только расширения к Тиклю.
А насчет контор, использующих Ерланг и прочую функциональщину — это не рекламируют по вполне понятным причинам.
Re: Практическое применение
От: Gaperton http://gaperton.livejournal.com
Дата: 04.09.06 15:24
Оценка: 7 (2)
Здравствуйте, frogkiller, Вы писали:

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

F>Вообще, есть ли в Москве фирмы, использующие ФЯ?

У нас в продакшне применяется Хаскель. Задача — поведенческие модели микроэлектроники (систем на кристалле), разрабатываемой в нашем дизайн-центре. Планируем попробовать для этой задачи Эрланг. Также, по мере набора опыта применения будем расширять применение Хаскеля (навернутые алгоритмы, оптимизаторы, моделирование), Эрланга (моделирование — елси пойдет), и ОКамла (в планах — для компиляторов). Хотите к нам на работу?
Re[2]: Практическое применение
От: UPV-mobile Украина  
Дата: 04.09.06 15:33
Оценка:
Здравствуйте, gandalfgrey, Вы писали:

G>А насчет контор, использующих Ерланг и прочую функциональщину — это не рекламируют по вполне понятным причинам.


А можно немножко подробнее про вполне понятные причины ?
... << RSDN@Home 1.2.0 alpha rev. 0>>
Re[2]: Практическое применение
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.09.06 19:18
Оценка:
Здравствуйте, gandalfgrey, Вы писали:

G>Сделать это на императивщине, с приемлемой надежностью и за разумные сроки — абсолютно нереально, даже по самым оптимистичным оценкам


Императивщина тоже разная бывает. По сравнением с С/С++ несколько кратное ускорение и упрощение ты получишь на даже на Яве.

G>А насчет контор, использующих Ерланг и прочую функциональщину — это не рекламируют по вполне понятным причинам.


Каким?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Практическое применение
От: frogkiller Россия  
Дата: 04.09.06 20:00
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>У нас в продакшне применяется Хаскель. Задача — поведенческие модели микроэлектроники (систем на кристалле), разрабатываемой в нашем дизайн-центре. Планируем попробовать для этой задачи Эрланг. Также, по мере набора опыта применения будем расширять применение Хаскеля (навернутые алгоритмы, оптимизаторы, моделирование), Эрланга (моделирование — елси пойдет), и ОКамла (в планах — для компиляторов).


Как наблюдение, у вас, получается, системы требовательные по быстродействию, но не критичные ко времени отклика. Интересно. С такими сталкиваться не приходилось уже несколько лет.

G>Хотите к нам на работу?


Пока не хочу:
1) Совсем не крут в ФЯ.
2) Мне на текущей работе вполне комфортно.
Но кто знает случаи ведь разные бывают, а задачи у вас интересные.
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Re[2]: Практическое применение
От: frogkiller Россия  
Дата: 04.09.06 20:14
Оценка:
Здравствуйте, gandalfgrey, Вы писали:

G>Распределенный сервер с движком правил на Ерланге, клиенты на Тикле. Сделать это на императивщине, с приемлемой надежностью и за разумные сроки — абсолютно нереально, даже по самым оптимистичным оценкам

G>Так что на С/С++ нынче я пишу только расширения к Тиклю.

У меня сейчас есть чем-то похожий проект — транспортный уровень распределённой системы. Как раз из-за надёжности + быстродейсвия пришлось сокетный уровень писать руками, а вот логика почти вся с помощью std::algoritms. Согласен, описывать её (логику работы) в терминах ФЯ оказалось значительно проще. Отсюда интерес к сабжу.
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Re[3]: Практическое применение
От: Alex EXO http://aleksandr-zubarev.moikrug.ru/
Дата: 05.09.06 04:36
Оценка: 4 (1)
Здравствуйте, VladD2, Вы писали:
VD>Императивщина тоже разная бывает. По сравнением с С/С++ несколько кратное ускорение и упрощение ты получишь на даже на Яве.

Влад, я вот сейчас пишу на яве (требования заказчика такие).
И замечу, что в яве за это ускорение разработки плачено тормознутостью (и монстроидностью) результата.
А в эрланге — практически нет (некоторые фичи получаются быстрее, некоторые медленнее,
в среднем по проекту проигрышь C++ примерно 20%).

У эрлага другое ограничение, и очень серьезное: на нем нельзя писать один проект толпой более 4 человек.
(Можно очень изящно не только "прострелить себе ногу", но и "отстрелить я**а окружающим"...)
"Конвер индийцев" (даже если они русские ) с этим языком не совместим.

G>>А насчет контор, использующих Ерланг и прочую функциональщину — это не рекламируют по вполне понятным причинам.

VD>Каким?

С одной сторны большое конкурентное приимущество по эффективности разработки,
а с другой — большие риски (проект можно убить уведя 1-2 человек).
Re[3]: Практическое применение
От: gandalfgrey  
Дата: 05.09.06 07:34
Оценка: 1 (1)
Здравствуйте, UPV-mobile, Вы писали:

UM>А можно немножко подробнее про вполне понятные причины ?

Запросто !
1. Клиенты часто ( очень часто ) боятся незнакомых слов. Им нравятся модные баззворды, как-то : жаба, дотнет, XML — даже если они неприменимы к их задаче.
2. Конкурентное преимущество. Рассказывать всем ( то-есть и конкурентам ) об используемых технологиях — не самая лучшая мысль, ибо они могут соблазниться оными технологиями.
Это основные причины, но есть еще и куча мелких ( кадры и т.д.)
Re[3]: Практическое применение
От: gandalfgrey  
Дата: 05.09.06 07:38
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Императивщина тоже разная бывает. По сравнением с С/С++ несколько кратное ускорение и упрощение ты получишь на даже на Яве.

Вот не замечал ! Не говоря уж о тормозах жабы как реализациях, ускорение развития проекта не превысит и 1.5. Видел я с десяток проектов, переключившихся с С/С++. Причем 1.5 — это единственный случай, за счет бибилиотек. Обычно 10-20 %.
Стоит ли овчинка выделки ? Тем более, что железо требуется при этом СОВСЕМ другое.
Re[3]: Практическое применение
От: gandalfgrey  
Дата: 05.09.06 07:53
Оценка:
Здравствуйте, frogkiller, Вы писали:

F>У меня сейчас есть чем-то похожий проект — транспортный уровень распределённой системы. Как раз из-за надёжности + быстродейсвия пришлось сокетный уровень писать руками, а вот логика почти вся с помощью std::algoritms. Согласен, описывать её (логику работы) в терминах ФЯ оказалось значительно проще. Отсюда интерес к сабжу.

Было у меня и такое — делал ДЛЛю к Ерлангу для доступа к некоторым системным вещам, благо пишутся такие вещи быстро.
Re[4]: Практическое применение
От: ie Россия http://ziez.blogspot.com/
Дата: 05.09.06 09:40
Оценка: 1 (1)
Здравствуйте, gandalfgrey, Вы писали:

VD>>Императивщина тоже разная бывает. По сравнением с С/С++ несколько кратное ускорение и упрощение ты получишь на даже на Яве.

G>Вот не замечал ! Не говоря уж о тормозах жабы как реализациях, ускорение развития проекта не превысит и 1.5. Видел я с десяток проектов, переключившихся с С/С++. Причем 1.5 — это единственный случай, за счет бибилиотек. Обычно 10-20 %.

Пусть даже 3%. При проекте в несколько десятков человеко-лет стоимость дополнительных серверов для удовлетворения потребностей Явы может быть на порядки ниже разницы стоимости разработки.

G>Стоит ли овчинка выделки ? Тем более, что железо требуется при этом СОВСЕМ другое.


Стоит, но не всегда.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Превратим окружающую нас среду в воскресенье.
Re[5]: Практическое применение
От: gandalfgrey  
Дата: 05.09.06 09:50
Оценка:
Здравствуйте, ie, Вы писали:

ie>Пусть даже 3%. При проекте в несколько десятков человеко-лет стоимость дополнительных серверов для удовлетворения потребностей Явы может быть на порядки ниже разницы стоимости разработки.

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

G>>Стоит ли овчинка выделки ? Тем более, что железо требуется при этом СОВСЕМ другое.

ie>Стоит, но не всегда.
В том-то и вопрос — когда ? Покажите пальцем ! Поднимите мне веки ! (с)
Re[6]: Практическое применение
От: ie Россия http://ziez.blogspot.com/
Дата: 05.09.06 09:59
Оценка: -1
Здравствуйте, gandalfgrey, Вы писали:

ie>>Пусть даже 3%. При проекте в несколько десятков человеко-лет стоимость дополнительных серверов для удовлетворения потребностей Явы может быть на порядки ниже разницы стоимости разработки.

G>Дело в том, что при правильном использовании функциональщины выигрыш в стоимости разработки получится намного больше.

Ну дык с этим никто не спорит, я в контексте сравнения ++ и явы.

G>Ну вот не приходилось мне как-то сталкиваться с задачами, где применение жабы было бы оправдано. Как низкоуровневый язык она не прокатит. Как высокоуровневый — тоже....Всегда находится какая-то, более выгодная альтернатива.


Мне тоже не приходилось, но знакомые пишущие игры на мобилы ни о чем кроме явы слышать не хотят.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Превратим окружающую нас среду в воскресенье.
Re[3]: Практическое применение
От: Gaperton http://gaperton.livejournal.com
Дата: 05.09.06 10:18
Оценка: 2 (1)
Здравствуйте, frogkiller, Вы писали:

F>Здравствуйте, Gaperton, Вы писали:


G>>У нас в продакшне применяется Хаскель. Задача — поведенческие модели микроэлектроники (систем на кристалле), разрабатываемой в нашем дизайн-центре. Планируем попробовать для этой задачи Эрланг. Также, по мере набора опыта применения будем расширять применение Хаскеля (навернутые алгоритмы, оптимизаторы, моделирование), Эрланга (моделирование — елси пойдет), и ОКамла (в планах — для компиляторов).


F>Как наблюдение, у вас, получается, системы требовательные по быстродействию, но не критичные ко времени отклика. Интересно. С такими сталкиваться не приходилось уже несколько лет.


Не совсем. Я объясню критерии выбора, в порядке приоритета.

1) Скорость разработки. Для поведенческих моделей короткий цикл разработки наиболее критичен, как и легкость внесения изменений.
2) Легкость чтения описаний, "декларативность". Модели формализуют применяемые алгоритмы, это конструктивное выражение требований. Насчет Хаскеля — это еще вопрос, насколько удастся сделать его читаемым для разработчиков микросхем. Работаем над этим. У Эрланга здесь должно быть все в порядке — это самый читабельный и простой в мире язык .
3) Скорость выполнения. Должна быть не большой, а разумно приличной, причем все равно, как она достигается — параллелизмом, эффективной компиляцией, или дорогим железом. Это требование поволяет пробовать Эрланг.
4) Внешние интерфейсы, возможность выполнения косимуляции. Это у всех рассматриваемых языков есть, не проблема.

Совершенно неважно: Время отклика, в этом вы правы.
Re[7]: Практическое применение
От: gandalfgrey  
Дата: 05.09.06 10:21
Оценка:
Здравствуйте, ie, Вы писали:

ie>Ну дык с этим никто не спорит, я в контексте сравнения ++ и явы.

С другой стороны, кто нынче будет делать проект на несколько десятков человеколет на С/С++/Жаба ? Количество успешных среди таковых ну очень невелико...

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

Интересно, почему ?
Re[8]: Практическое применение
От: ie Россия http://ziez.blogspot.com/
Дата: 05.09.06 10:53
Оценка:
Здравствуйте, gandalfgrey, Вы писали:

ie>>Ну дык с этим никто не спорит, я в контексте сравнения ++ и явы.

G>С другой стороны, кто нынче будет делать проект на несколько десятков человеколет на С/С++/Жаба ? Количество успешных среди таковых ну очень невелико...

Вон Microsoft делает А если серъезно, то вообще количество успешных среди любых не очень велико.

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

G>Интересно, почему ?

Видимо нет достойной альтернативы. А про ФЯ позволяющие писать для мобильных девайсов, я вообще некогда не слышал.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Превратим окружающую нас среду в воскресенье.
Re[9]: Практическое применение
От: gandalfgrey  
Дата: 05.09.06 11:14
Оценка:
Здравствуйте, ie, Вы писали:

ie>Вон Microsoft делает А если серъезно, то вообще количество успешных среди любых не очень велико.

Так-то оно так, но процент успешных очень сильно зависит от платформы

ie>Видимо нет достойной альтернативы. А про ФЯ позволяющие писать для мобильных девайсов, я вообще некогда не слышал.

у Окамла рантайм небольшой — его можно туда засунуть
ну, всяческие DSLи можно соорудить...А так — есть тикль, луа и прочее. Всяко лучше жабы
[Offtopic] Re[2]: Практическое применение
От: Mirrorer  
Дата: 05.09.06 11:22
Оценка:
Здравствуйте, Gaperton, Вы писали:

F>>Вообще, есть ли в Москве фирмы, использующие ФЯ?


G>У нас в продакшне применяется Хаскель... Планируем попробовать для этой задачи Эрланг.... будем расширять применение Хаскеля (навернутые алгоритмы, оптимизаторы, моделирование), Эрланга (моделирование — елси пойдет), и ОКамла (в планах — для компиляторов). Хотите к нам на работу?


А в Киеве ваше отделение не открылось ще ?
... << RSDN@Home 1.1.4 PINK FLOYD — Shine On You Crazy Diamond (Part One)>>
Re: [MegaOfftopic] Re[2]: Практическое применение
От: Programmierer AG  
Дата: 05.09.06 11:46
Оценка: :))
Здравствуйте, Mirrorer, Вы писали:

M>А в Киеве ваше отделение не открылось ще ?

О! Земляк-единомышленник.
К Гапертону, похоже, уже очередь функционалистов из разных городов выстраивается:
http://thesz.livejournal.com/332859.html, причем там личности очень и очень сильные.

Эдакий клуб желающих работать у Гапертона. Мужики, может сами соберемся и замутим, а?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.