Хотите больше думать и писать меньше кода? Встречайте: F# - пополнение в семействе языков Visual Studio 2010

Если вы ещё не знакомы с понятием функционального программирования – этот недостаток стоит как можно скорее исправить! Эта парадигма программирования, которая позволяет писать математически красивые программы, свободные от большинства традиционных ошибок, способные легко распараллеливаться, долгое время по разным причинам находила весьма ограниченное распространение в индустриальном программировании. Теперь же, благодаря новому функциональному языку программирования F#, вошедшему в состав Visual Studio 2010, вы легко сможете использовать все преимущества функционального подхода в своих проектах. Чуть более подробно о том, зачем понадобился ещё один язык в составе Visual Studio, я попытался порассуждать в блоге, а также в видео-интервью с Саймоном Пейтоном-Джонсом, создателем языка Haskell (что примечательно, автор ещё одного популярнейшего функционального языка также работает в Microsoft Research).

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

Для чего удобно использовать F#? В первую очередь – для задач обработки данных, в которых есть сформулированный в терминах предметной области (т.е., как правило, в математических терминах) алгоритм. Также из-за особенностей функционального подхода он оказывается чрезвычайно удобным для реализации параллельных и асинхронных алгоритмов, что делает его незаменимым при реализации бизнес-логики, в т.ч. распределённых приложений, для программирования высокопроизводительных научных вычислений. Интерпретативный характер среды программирования позволяет эффективно использовать язык для прототипирования. И, в довершение всего, F# работает и на Silverlight!

Есть лишь одна проблема – в настоящее время очень мало русскоязычных ресурсов по F# (однако мы надеемся в ближайшее время изменить ситуацию!). Много примеров использования языка можно найти в блоге Дмитрия Сошникова. Для изучения функционального программирования как дисциплины (с примерами на F#) можно рекомендовать видео-курс Интернет-университета ИНТУИТ, или доступные в репозитории учебных курсов материалы. Также может весьма помочь переведённая на русский язык и свободно-доступна книга по языку OCaml, предшественнику F#. Среди англоязычных книг стоит отметить книги Foundations of F# и Expert F# издательства APress, и Programming F# от O’Reilly.

Пробовали ли Вы программировать на F#? Как думаете, какой процент кода будет писаться на F# через год-два? Нам будет приятно узнать Ваше мнение – в комментариях к этому посту, или в твиттере.