LINUX.ORG.RU

Вышел 2-й выпуск журнала «Практика функционального программирования»

 , , ,


1

0

Вышел в свет второй выпуск журнала «Практика функционального программирования».

Центральная тема второго выпуска журнала — демонстрация применения функционального программирования в реальных, а не академических проектах.

Первые четыре статьи — Дмитрия Зуйкова, Дмитрия Астапова, Сергея Зефирова в соавторстве с Владиславом Балиным, и Алексея Отта — вытаскивают на поверхность «кухню» нескольких компаний. Статьи демонстрируют, что функциональные языки находят применение в промышленном программировании в самых разных нишах. Конечно, использование «нестандартных» языков накладывает на проекты некоторые сложно оценимые риски, и далеко не все из них рассмотрены в статьях. Но если статьи этого номера позволят развеять хоть часть сомнений, мифов и предрассудков и поднять дискуссию о применимости функциональных языков в промышленном программировании на новый уровень, мы будем считать свою задачу выполненной.

Статья Александра Самойловича рассматривает создание на языке Erlang игрушечного, но практичного проекта — рекурсивного многопоточного обходчика сайтов. К третьему выпуску журнала мы планируем подготовить ещё несколько статей про Erlang.

Завершающая статья Романа Душкина в большей степени ориентирована на теорию: она познакомит вас с концепцией алгебраических типов данных (АТД) в Haskell и других функциональных языках.

>>> Подробности

★★★★★

Проверено: maxcom ()
Последнее исправление: maxcom (всего исправлений: 1)

Круто! А о всех следующих выпусках будет сообщаться на ЛОРе или лучше как-то ещё мониторить?

Bohtvaroh ★★★★
()
Ответ на: комментарий от gns

> Ну _про_ success story может и можно рассказать, а вот саму success story про Дозор -- ну... ты сам знаешь. :))

Некрасиво! А то что ни пост, какие-то намеки. Есть о чем поговорить с Алексом лично, в личной переписке и общайтесь.

satanic-mechanic
()
Ответ на: комментарий от Bohtvaroh

может быть и будет - тут много разработчиков. но все это анонсируется в сообществах ru_declarative и fprog в ЖЖ, ну и анонсы оттуда попадают в http://planet.defun.ru - агрегатор блогов относящихся к ФП

ott ★★★★★
() автор топика

Забавно, что в "Истории одного компилятора" динамические языки поливает предстваитель компании, использующей динамический Эрланг %)

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Имею право. Просто есть языки, от которых никакого толку, а есть языки, которые заменить пока нечем, такие, как Эрланг.

voidlizard
()
Ответ на: комментарий от voidlizard

> Имею право.

На него никто и не посягал.

> Просто есть языки, от которых никакого толку, а есть языки, которые заменить пока нечем

Всё плохое, что было сказано (вполне заслуженно) о Питоне, было сказано так, что это можно отнести к почти любому (или вообще любому) динамически типизированному языку.

> такие, как Эрланг.

Можно ли понимать процитированную фразу так, что при наличии статически типизированного языка программирования сильно параллельных программ, от Эрланга тоже не было бы "никакого толку"?

tailgunner ★★★★★
()
Ответ на: комментарий от kost-bebix

> Ну, к примеру, работа со строками та же, насколько помню. Надо еще раз открывать книжечку про лисп что начинал читать. В общем, хочу питон, только с синтаксисом скобочками как у лиспа, понимаешь? Чтоб он был хакбл и нацелен на функциональное программирование всем своим синтаксисом.

Как бы вам сюда clojure.org. Вот тут[1] прямо сравниваются элементарные синтаксические конструкции clojure и python.

[1] http://groups.google.com/group/clojure/browse_thread/thread/d5e041cb8e4fd1c4/...

anonymous
()
Ответ на: комментарий от ott

> угу, он самый

Понятно. Использовал его (тот, который для почты - или только он и был Дозор, а остальное - Тропа и т.п.?) когда-то. Но как следует поковырять не дали - проблема в мозгах была у людей, определявших цели...

Cyril ★★
()
Ответ на: комментарий от Cyril

Вот чего я, кстати, в этих "Инфосистемах Джет" не понял - это как они нашли меня через три года, три смены места работы и одну - города для того, чтобы пригласить на семинар по почтовому Дозору... Ж;-) Организаторша на их стороне не раскололась.

Cyril ★★
()
Ответ на: комментарий от volh

на llvm.org есть еще туториал - как сделать на окамл простой язык, с генерацией кода для llvm

ott ★★★★★
() автор топика
Ответ на: комментарий от Cyril

ну фамилии-имена сохраняются-то после семинаров/встреч, а потом уже дело владения поиском в интернете :-)

ott ★★★★★
() автор топика
Ответ на: комментарий от Davidov

> Неужели питон со скобочками для кого-то будет, действительно, удобнее питона?

Питоновский скрипт несколько трудновато вводить, например, в одну строчку :)

KRoN73 ★★★★★
()
Ответ на: комментарий от ott

Жжесть... Об этом не подумал - всегда считал, чо меня в Интернете почти нет. Специально проверил сейчас - даже многовато, на мой вкус. Ж;-)

Cyril ★★
()

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

anonymous
()
Ответ на: комментарий от kost-bebix

>Скжаите, нет ли такого же языка как лисп, только чтоб он был примерно как питон? Тоесть весь такой питон, но синтаксис вот этими списками и скобочками чтоб был.

newlisp?

Led ★★★☆☆
()
Ответ на: комментарий от anonymous

>Почему нет статей по Scala, имхо весьма перспективный язык

"Перспективный" в чём? Или просто слово модное ляпнуть решили?

Led ★★★☆☆
()
Ответ на: комментарий от Davidov

>Неужели питон для кого-то будет, действительно, удобным?

fixed

Led ★★★☆☆
()
Ответ на: комментарий от tailgunner

>Забавно, что в "Истории одного компилятора" динамические языки поливает предстваитель компании, использующей динамический Эрланг %)

Erlang динамический, но не настолько и не так как ты думаешь:)

Led ★★★☆☆
()
Ответ на: комментарий от r

Во-первых, статье 7 лет; во-вторых, там указано два класса причин, по которым трудно сделать статически типизированный Эрланг: чисто технологические (Mnesia, горячая загрузка и прочее) и из области CS ("Scientific challenges"). Вот и интересно, что думают по этому поводу те, кто с Эрлангом реально работают.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Вот и интересно, что думают по этому поводу те, кто с Эрлангом реально работают.

Ещё раз: там не та "динамика", что ты думаешь. И без этой "эрланговской динамики" это будет уже не эрланг

Led ★★★☆☆
()
Ответ на: комментарий от Led

> Erlang динамический, но не настолько и не так как ты думаешь:)

Это замечательно, но процитирую статью по ссылке выше: "a static type system would bring clear benefits in practice. Indeed, users' desire for a type system is a recurring topic". Это так или уже нет?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> "a static type system would bring clear benefits in practice. Indeed, users' desire for a type system is a recurring topic". Это так или уже нет?

Не так. "Типизированный Эрланг" - возможно, это было бы не так уж плохо. Но только как совершенно другая платформа, другой нишей применения, лишь немного пересекающейся с текущей.

Led ★★★☆☆
()

Здравствуйте.

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

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


Статья №1, "История разработки одного компилятора". Компилятор в байт-код со специального DSL, для упрощения процесса прошивки GSM-терминалов. На OCaml.

Статья №2, "Использование Haskell при поддержке критически важной для бизнеса информационной системы". Транслятор с высокоуровневого DSL описания услуг в инструкции для настройки оборудования. На Haskell. Пестрит терминами "бизнес", "бизнес-логика", "информационные системы" и т.д., привет крикунам о "LISP - это элита, это вам не бизнес-логику клепать".

Статья №3, "Прототипирование с помощью функциональных языков" - о моделировании микросхемной логики. На Haskell и Erlang.

Статья №4, "Использование Scheme в разработке семейства продуктов «Дозор-Джет»". Статья заслуживает отдельного внимания. Вот тут, казалось бы, должен быть рай для Scheme! Ваш покорный слуга, штудируя статью, ожидал прочитать о самообучающейся системе, нейронных сетях, алгоритмах AI! Ваш покорный слуга был наивен. Система представляет собой банальный rule engine, причем на Scheme там написан лишь интерпретатор DSL'я, конфигурирующего систему. И еще - о ужас! - серверная часть веб-интерфейса. Как только могли авторы опуститься до уровня жабо- и похапе-быдлокодеров? Это же дно!

Но пора делать выводы. Они весьма краткие. "Самые разные ниши" на поверку оказались трансляцией DSL'ей и моделированием дискретной логики. Так что,

> функциональные языки находят применение в промышленном программировании в некоторых узких нишах.


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

Kuka ★★
()
Ответ на: комментарий от Kuka

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

И только ради этого стоило регистрироваться? Попукать в лужу можно было и анонимусом...

Led ★★★☆☆
()

Супер! Спасибо за новость!

crank
()
Ответ на: комментарий от tailgunner

Д я не спорю - просто ссылка по теме.

r ★★★★★
()
Ответ на: комментарий от Led

>Но только как совершенно другая платформа, другой нишей применения, лишь немного пересекающейся с текущей.

...по причине того что?....

r ★★★★★
()
Ответ на: комментарий от r

>>Но только как совершенно другая платформа, другой нишей применения, лишь немного пересекающейся с текущей. >...по причине того что?....

Причина чего (из трёх) интересует?

Led ★★★☆☆
()
Ответ на: комментарий от Led

>Причина чего (из трёх) интересует?

Каким образом статическая типизация приведет к вышеперечисленному.

r ★★★★★
()
Ответ на: комментарий от tailgunner

Потому что сериализация в т.ч. кода, потому что всё - RPC, потому что динамическая "горячая загрузка" и многое что еще. Я не утверждаю, что нельзя --- я не уверен, что можно. Или, скажем, оверхед от реализации всего этого будет такой, что съест все преимущества статики. + куча исключений времени исполнения, которые убьют смысл статической проверки типов. Я не утверждаю, что оно так и будет, это требует исследования.

voidlizard
()
Ответ на: комментарий от Kuka

А Дозор-JET? А серверные приложения на Эрланге?

И кстати, это не DSL для прошивки терминалов, а универсальный язык. По приведенным примерам это вполне понятно.

voidlizard
()

огромное пасибо Льву Валкину и всем кто учавствует в этом непростом деле!!!!!!!

AVATAR
()
Ответ на: комментарий от anonymous

> По количеству мифов, созданных вокруг него фанбоями, Лисп превзойдёт Элвиса, торсионщиков, Вангу и тамплиеров, вместе взятых.

:))) Хорошо сказал (ещё коллайдер забыл и Кеннеди).

Чем мутнее язык, тем больше вокруг него "мифов". C# прост как полено, изучается за 3 недели, потом сразу же пишутся средней руки приблуды - никаких мифов, всё открыто и просто. (если не включать сюда LINQ и трюки ООП)

matumba ★★★★★
()
Ответ на: комментарий от matumba

> Чем мутнее язык,

Сложно представить язык ещё проще чем лисп. Если не считать схему отдельным языком, конечно.

ugoday ★★★★★
()
Ответ на: комментарий от r

> Сча мрачную шутку нашли в о всех версиях - называется try finally catch finally да-е-мое-finally.

А что там нашли? http://lampsvn.epfl.ch/trac/scala/ticket/1789 - это вроде старое, да и продакшен вряд ли пострадает от этого.

> я скалу запихнул уже в продакшен:)

Прикольно. Интересны впечатления. :) Кстати, ты в Киеве на тусовку LtU не собираешься?

pitekantrop ★★★
()
Ответ на: комментарий от Kuka

> "Самые разные ниши" на поверку оказались трансляцией DSL'ей и моделированием дискретной логики.

Собсно, на этом (и на числах Фибаначей) и держатся все мифы о "скрытой мощи" ФП. "Примеры из реальной жизни" - это как раз те самые "морды к базам", которые никак не пишутся функциональщиками - "слишком просто". :)

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