Должен ли я инвестировать время на изучение нового языка F # Microsoft? Я в основном разработчик С#.NET, и мне интересно, поможет ли обучение F # в разработке современных приложений.
Должен ли я изучать языки F # или функционального программирования в целом?
Ответ 1
F # - отличное место для начала изучения функциональных языков. Если вы обеспокоены тем, что знание F # не распространяется на другие функциональные языки, вы не должны. F # является членом семейства языков ML. Microsoft немного изменила его, чтобы он хорошо работал с .NET.
Luca Bolognese дал потрясающую презентацию на F # на PDC 2008. Я бы настоятельно рекомендовал вам посмотреть ее и решить, стоит ли F # изучать.
Ответ 2
Стоит взглянуть на языки программирования, которые заставляют вас думать по-другому, и если вы разработчик С#, F #, вероятно, является языком функционального программирования, который вы найдете наиболее доступным.
Даже если вы решите, что не хотите разрабатывать приложения в F #, опыт использования F # может изменить способ записи С#.
Ответ 3
Вы сказали: "Должен ли я изучать языки функционального программирования в целом?"
Если вы хотите понять программирование на более глубоком уровне, я говорю, что вы должны. Изучение LISP было приключением для глаз для меня. Сначала было очень тяжело. И вот однажды, как по волшебству, это было естественно для меня. Это может быть только лучше для вашей способности видеть проблемы по-разному.
Ответ 4
Я изучил Prolog давным-давно, и он остался моим любимым языком во многих отношениях. Теперь Prolog - это не только функциональный язык, но и язык ИИ, однако некоторое время назад я изучил Erlang, основанный на Prolog. Я могу порекомендовать вам изучать оба этих языка, поскольку вы многому научитесь, что приносит пользу вашей повседневной разработке - например, С#.
Если бы я должен был изучить новый функциональный язык сегодня, скорее всего, это будет F #, поскольку он станет гражданином первого класса платформы .NET. Я думаю, что F # - это функциональный (хорошо многовариантный) язык, на котором у вас будет больше шансов быть продуктивным.
Ответ 5
Ответ 6
Будет ли это полезно при разработке "общих" приложений? В частности, не более или менее c или С#. Это не RAD, поэтому в F # нет ярлыков, которые помогут вам ближе к выпуску "общего" приложения быстрее, чем любой другой язык без RAD.
С другой стороны, для программ, которые больше вычисляются, чем представления, F # может быть ближе к домену приложения, чем к другому языку. Функциональные языки делают работу с определенными предметными областями более интуитивной.
Я лично считаю, что это стоит того, чтобы учиться не потому, что он будет решать все ваши проблемы, а потому, что каждый программист стоит флип, должен знать, по крайней мере, один функциональный язык. Многие, казалось бы, барочные программные концепции становятся более прозрачными, когда концепция функционального программирования плавает вокруг в вашей голове.
Еще одно личное предпочтение; Мне нравятся языки программирования с твердой, разнообразной системой типов. Мне не нравятся колонные конструкции для обуви, которые не имеют для них очень сильного концептуального соответствия. Системы типа ML, на мой взгляд, позволяют создавать типы с гораздо более тонкой детализацией, чем другие системы основного типа. В результате я чувствую, что могу писать код, который более естественно взаимодействует с этими структурами с языками стиля ML, такими как F #.
Хотя это не очень помогает в общих понятиях, которые имеют набор функций для поддержки их в более распространенных языках, для всего, что даже отдаленно необычно, я предпочел бы, чтобы F # для большинства других языков.