Подтвердить что ты не робот

Должен ли я изучать языки F # или функционального программирования в целом?

Должен ли я инвестировать время на изучение нового языка F # Microsoft? Я в основном разработчик С#.NET, и мне интересно, поможет ли обучение F # в разработке современных приложений.

4b9b3361

Ответ 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 # - это функциональный (хорошо многовариантный) язык, на котором у вас будет больше шансов быть продуктивным.

Ответ 6

Будет ли это полезно при разработке "общих" приложений? В частности, не более или менее c или С#. Это не RAD, поэтому в F # нет ярлыков, которые помогут вам ближе к выпуску "общего" приложения быстрее, чем любой другой язык без RAD.

С другой стороны, для программ, которые больше вычисляются, чем представления, F # может быть ближе к домену приложения, чем к другому языку. Функциональные языки делают работу с определенными предметными областями более интуитивной.

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

Еще одно личное предпочтение; Мне нравятся языки программирования с твердой, разнообразной системой типов. Мне не нравятся колонные конструкции для обуви, которые не имеют для них очень сильного концептуального соответствия. Системы типа ML, на мой взгляд, позволяют создавать типы с гораздо более тонкой детализацией, чем другие системы основного типа. В результате я чувствую, что могу писать код, который более естественно взаимодействует с этими структурами с языками стиля ML, такими как F #.

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