Является ли F # будущее языков программирования? Правильно ли учиться F #? Какие-либо другие языки на рынке, которые эквивалентны F #?F # - Домен Специфический язык
ответ
Ну, никогда не бывает больно знать другой язык программирования и другой способ взглянуть на вещи.
Поскольку F # является неустойчивым прямо сейчас, поскольку язык, который еще не был официально выпущен, может не быть лучшим временем; Тем не менее, я все равно узнал об этом сейчас.
В F # в основном «Функциональное программирование для .Net» существует ряд подобных (и, возможно, более зрелые языки), такие как:
F # является универсальным, объектно-ориентированным функциональным языком и нет ничего об этом, который специально разработан для предметно-ориентированных языков, хотя, вероятно, можно легко создать DSL внутри F #.
Если вам действительно интересно узнать что-то вроде F #, то сейчас самое подходящее время. Если вы хотите изучить новый язык, чтобы увеличить свои шансы на наем, то F # не может быть хорошим выбором, если вы все еще не знакомы с функциональным программированием. Вы можете попробовать JavaScript, Python, Рубин или C# и использовать анонимные функции.
Если вы хотите придерживаться что-то близкое к F #, есть что-нибудь в ML семьи языков, в частности OCaml. Haskell - чистый функциональный язык, в котором нет побочных эффектов (кроме как в Haskell's monads). Также есть семейство Lisp, Nemerle и некоторые другие.
Если вы хотите выполнять функциональное программирование, перейдите Common LISP. Это кросс-платформа, очень стабильная, и существует уже давно. Это также часть семейства LISP; один из самых известных функциональных языков.
Функциональные языки давно существуют, но им не хватает практической экосистемы, чтобы сделать их релевантными для всех, кроме очень специализированного бизнес-разработчика (например, крупного инвестиционного банка, который мог использовать бросить некоторые ресурсы при функциональном программировании для сложных алгоритмов).
Усилие Microsoft отличается от чистоты языка F #, а скорее его запланированного дебюта как гражданина первого класса основной платформы программирования (.NET) и вероятного очень низкого трения, которое принимающий программист будет когда он/она добавляет его в свою существующую инфраструктуру.
В .NET уже можно ссылаться на проект VB из проекта C# (или наоборот) в одном решении.Но так как итоговый промежуточный язык C# или VB практически идентичен , .NET-программисты сегодня предпочитают придерживаться одного языка (C# или VB) и участвовать в разговоре о разговоре с теми программистами, которые родом из другого (почти идентичного) темная сторона.
F #, с другой стороны, представит совершенно другой инструмент языка. Следовательно, вы сможете продолжать программирование в своей предпочитаемой среде .NET (C# или VB), но когда возникает отдельный функциональный подпроект, вы сможете запрограммировать этот подпроект в F #, все еще используя все существующие C# Активы VB.
Что касается будущего, многие считают, что это не столько один размер, сколько подходит для всего языка, а, наоборот, пониженное трение при выборе правильного инструмента для подпроекта/задачи под рукой.
Что касается выпуска продукта, Microsoft заявила, что она намерена доставить F # как часть семейства .NET, но в настоящее время выпустила только пару CTP (пока не статус бета-версии), поэтому я ' d сказать, что нет спешки, чтобы бросить все, чтобы узнать F # прямо сейчас. (Спросите меня еще раз, когда я вижу бета.)
XML литералы в VB 2008, вероятно, наиболее отчетливый VB против C# разницы.
F # не является будущим языков программирования. На самом деле это глубоко укоренилось в прошлом. Тем не менее, это отличная технология для изучения, поскольку она, скорее всего, представляет собой совершенно другой способ мышления о программировании, чем то, к чему вы, вероятно, привыкли.
Далее, наряду с динамической типизацией, функциональное программирование является одной из концепций, которые были намечены для более широкого включения в следующую версию языка C#.
Но, идите и учитесь!
F # и функциональное программирование - это будущее. Но так же богатая флора ориентированных на ОО языков, процедурных языков и декларативных языков, которые уже существуют. Ни одно из понятий, лежащих в основе, не является новым ни в каком смысле. Благодаря сильной интеграции в режиме реального времени будущее многоязычных (многоязычных) языковых систем выглядит ярким, и это, вероятно, одна из тенденций, которая изменит ландшафт.
И да, это замечательное время, чтобы узнать F #, что сообщество маленькое, яркое и пышное, платформа прекрасно созревает (не забывайте, что F # была запущена в 2002 году) и скоро станет частью Visual Studio.
Что касается других языков, как было сказано, F # сильно зависит от Ocml, до степени, позволяющей скрещивать код компиляции между ними. F # также заимствует выражения последовательности и рабочие процессы (mondas) из Haskell. Scala - еще один интересный язык в той же самой нише. Кроме того, функциональные конструкции заставляют их использовать «традиционные» языки, такие как C# 3.0, C++ (получение lambdas в любой день). Python имеет приятные библиотеки для написания функционального кода. Linq и PLinq являются по существу функциональными/децилятивными по своей природе.
Lisp является дедушкой всего этого и довольно самодовольным!
Я бы сказал, что это good раз, я отправил вопрос на fsbugs на прошлой неделе, и ответ вернулся через пару часов от the man.
Теперь попробуйте это с помощью C# ...
Re "future" - FP - еще один инструмент в коробке; иногда решение FP очень полезно, и иногда это не так много. Но помните, что C# получает все большую пользу на функциональной стороне каждой итерации [хотя вряд ли когда-либо предложит некоторые из очень специфических аспектов FP F #, таких как дискриминационные союзы и т. Д.].
Кроме того, команда C# обсуждала более простую неизменность, поэтому давайте не скрестим пальцы на будущую версию C#. И также помните, что параллельные расширения/параллельные LINQ привносят многие функции «убийцы» FP непосредственно на каждый язык .NET.
Лично я очень сомневаюсь, что он [F #] отправится на воздушный шар и что мы все будем внезапно переключаться на F #; для большинства целей, ориентированных на бизнес, C# по-прежнему делает намного больше смысла IMO, особенно если он предназначен для тестирования (вы можете писать плохой код на любом языке ...).
Но если вы находитесь в одной из тех областей, в которых FP имеет смысл, а вы используете .NET, то F # определенно заслуживает внимания.
Я удивлен Clojure не упоминался в этой дискуссии.
- 1. Развернуть/свернуть Swimlane (Домен специфический язык) C#
- 2. Домен, специфический язык, стандартный формат файла
- 3. ANTLR домен v3 Синтаксических специфический язык
- 4. Домен Специфический язык в C/C++, делает ли это кошерный?
- 5. Язык, специфический для домена Блоггеры
- 6. Laravel 5 Язык специфический путь
- 7. Язык Специфический макет для android
- 8. Язык, специфический сайт, лучшая практика
- 9. Как понять специфический F # синтаксис
- 10. CLGeocoder force специфический язык на iOS8
- 11. F # как язык HPC
- 12. F # язык - советы для новичков
- 13. Как изменить язык месяца «F»?
- 14. LC3 специфический символ
- 15. Язык, на котором разрешен домен IDE
- 16. Домен Определенный язык для бизнес-объектов?
- 17. htaccess перенаправляет на enother домен и язык
- 18. Специфический ранцеобразный
- 19. Elasticsearch - Nest - специфический поиск
- 20. Tkinter screen wipe, специфический
- 21. Пролог специфический элемент поискового подсети
- 22. grep специфический параметр из файла
- 23. Apache mod_rewrite специфический динамический url
- 24. MySQL Сочетание таблиц Специфический порядок
- 25. Цвет специфический узел в igraph
- 26. Какой язык лучше для программирования общего назначения, F # или Haskell?
- 27. Квадратичное программирование - специфический выход
- 28. Специфический анализ Python
- 29. Android специфический UI
- 30. SAS специфический запуск кодов
Я не согласен с тем, что «нет ничего об этом, специально предназначенном для доменных языков». Котировки, пользовательские рабочие процессы, fslex и fsyacc относятся к категории «специально для DSL», ИМХО. – Joh 2011-01-14 12:08:36