Функциональные языки существуют уже давно, но им не хватает практической экосистемы, чтобы сделать их актуальными для всех, кроме очень специализированного разработчика бизнеса (например, крупного инвестиционного банка, который может использовать иметь возможность использовать некоторые ресурсы при функциональном программировании для сложных алгоритмов).
Усилия Microsoft разные, не в чистоте языка F #, а в запланированном дебюте в качестве гражданина первого класса крупной платформы программирования (.NET) и, вероятно, очень низкого трения, что усыновляющий программист встретится, когда он / она добавит его в свою существующую инфраструктуру .
В .NET уже можно ссылаться на проект VB из проекта C # (или наоборот) в одном решении. Но так как итоговый промежуточный язык C # или VB практически идентичен 1 , сегодня программисты .NET предпочитают придерживаться одного языка (C # или VB) и участвовать в разговорах с этими программистами, которые приветствуют других. (почти идентичная) темная сторона.
F #, с другой стороны, представит совершенно другой языковой инструмент. Следовательно, вы сможете сохранить программирование в предпочитаемой вами среде .NET (C # или VB), но когда возникнет отдельный функциональный подпроект, вы сможете запрограммировать этот подпроект в F #, все еще используя все имеющиеся у вас C # / VB активы.
Что касается будущего, многие думают, что это не столько универсальный подход ко всем языкам, сколько снижение трения при выборе правильного инструмента для данного подпроекта / задачи.
Что касается выпуска продукта, Microsoft заявила, что намерена предоставлять F # как часть семейства .NET, но в настоящее время выпустила только пару CTP (пока не в бета-состоянии), поэтому я бы хотел Скажем, сейчас нет никакого шанса бросить все, чтобы выучить F #. (Спросите меня снова, когда я увижу бета-версию.)
1 Литералы XML в VB 2008, вероятно, являются наиболее отчетливой разницей между VB и C #.