?

Log in

No account? Create an account

Журнал от Объекта

Previous Entry Share Next Entry
Видео моего доклада на московской Agile 2015
Default
object

20150319BE А нам-то зачем функциональное программирование? from Stas Fomin on Vimeo.


  • 1
Чтобы лучше наслаждаться докладом :-)

Не, в целом выглядит неплохо и стимулирующе. Может и мне в Питере на каком-нить комсомольско-программистском собрании выступить, подразнить олдскулом? :)

Я был не вполне уверен, что такой доклад уместен на такой конференции, но судя по твитам и тому, что он по опросам оказался на пятом месте (среди примерно 70), он вполне пришелся.

Впрочем, отсутстовавшие на конференции заочно осудили.

Ну, я отчасти согласен, что область применения ФП и сейчас неясна, и практическая польза имеющихся примеров не вполне очевидна, но осуждать - это значит высказываться в стиле "создателям Лиспа 50 лет назад просто было делать нечего".
"ФП ты можешь и не применять, но знать о Лиспе обязан" :)

Область применения ФП столь же неясна, как и область НЕприменения. Множится число проектов, целиком и полностью реализованных на функциональных языках.

Я вовсе не против, пусть расцветают все цветы.
Проблема в том, что критерии оценки "на ФП это сделать эффективнее" очень субъективны.
Как я понимаю, основной критерий - "программистам захотелось".

Почему же, есть и метрики. В моей презентации у меня есть слайд с данными Самона Казинса. Когда они переписали ООП код на F#, число линий кода уменьшилось в разы. Собственно это и не секрет, что одни языки компактнее других, другой вопрос, что это не единственный критерий эффективности. Но и "программистам захотелось" - тоже нормальный критерий, если переход на какой-то другой этих конкретных программистов сделает более продуктивными (при том, что других не сделает). Цель моего доклада была просто показать, как еще можно подходить к обычным программистским проблемам, более широкий кругозор никогда не помешает.

По числу строк LOC (оператор равен строке) оценивать сравнительно тоже непросто, нужно для этого брать чистый эксперимент: четкую спецификацию и две бригады реализаторов одного уровня компетенции.

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

Где-то были сравнительные выразительные способности языков в LOC, по-моему, у Дж.Фокса в книжке про разработку ПО.

Да, безусловно. Кроме того, компактность языка может порой идти за счет доступности его для менее опытных разработчиков. Но для опытных программистов Java и C# довольно говорливы, в них нарастает много церемониальных неисполняемых строчек кода. Поэтому неслучайно, что на ФП нередко переходят уже ветераны, которым эти церемонии больше не нужны.

  • 1