Какой хороший функциональный язык используется для создания веб-сервиса?[закрыто]

StackOverflow https://stackoverflow.com/questions/105710

Вопрос

Существует ли функциональный язык с хорошей поддержкой и инструментами для создания веб-сервисов?Я смотрел на Scala (который компилируется в JVM и может использовать библиотеки Java) и F # (который является .NET), но они молоды и имеют некоторые недостатки.Scala, в частности, не поддерживает устранение конечных вызовов, за исключением саморекурсивных функций, что ограничивает виды композиции, которые вы можете выполнять (это фундаментальное ограничение JVM).F # является очень новым и, похоже, еще не полностью поддерживается, что делает его более рискованным, чем более традиционный язык.

Можно ли создать веб-сервис, используя Haskell, ML или любой другой более традиционный функциональный язык, или было бы лучше использовать Scala или F #?Есть еще какие-нибудь предложения?

Это было полезно?

Решение

Если .NET является вариантом для платформы, не сбрасывайте со счетов F # из-за его молодости.По мере приближения к тому, чтобы стать официальным продуктом, он все лучше и лучше интегрируется с Visual Studio и наследует все преимущества, предоставляемые .NET.

Существует также активная и доступная поддержка как со стороны Корпорации Майкрософт, так и со стороны сообщества энтузиастов.

Другие советы

Ocaml имеет Ocsigen/Элиом...Хотя я не могу сказать, что пользовался им.Это также находится на ранней стадии.

Эрланг, с Рыскает.Это интересный, мощный язык, он замечательно масштабируется и делает использование 100 или 1000 процессов безопасным и легким.И весело.

(Я также думаю, что это красиво.)

Хаскелл:

Взгляните на этот вопрос:Какой самый простой способ написания веб-приложений на Haskell?

В основном, МЫТЬ, Счастливцы и Янус на данный момент это три самых крупных проекта в Haskell.Я голосую за HAppS, у которого лучшие Учебник на данный момент.

Существует также HSP но в последнее время я не смотрел на это и не думал об этом.

Пожалуйста, прочтите это введение на F# и ASP.NET это даст вам хорошее начало.

В Интернете есть несколько примеров, в которых F # используется в веб-приложениях.Одним из них является, например, автозаполнитель Томаша Петричека, который он создал в качестве иллюстративного приложения к своей статье "Веб-инструменты F #:Упрощенные приложения Ajax".Я сам тоже использовал F # как часть веб-сервиса, и я гарантирую вам, что он работает хорошо :).

Если вы делаете это ради удовольствия, а не ради какой-либо надежности или рабочего места, вы могли бы провести расследование ДУГА.Это незаконченный, находящийся в стадии разработки язык со всеми вытекающими из него преимуществами и недостатками.

Отказ от ответственности:не связан с ARC или Полом Грэмом

Reddit был построен на lisp, не так ли?И Пол Грэм отзывается очень высоко о его гибкости, особенно с веб-приложениями.

Вы могли бы рассмотреть Clojure - это очень новый язык, но выглядит очень многообещающе для масштабируемых параллельных приложений и обладает преимуществом очень хорошей интеграции с JVM и доступом ко всем библиотекам Java (точно так же, как Scala).

Clojure также имеет довольно много конструктивных особенностей, которые позволяют обойти проблему хвостовой рекурсии (специальная конструкция recur, многие основные функции реализуются итеративно и т.д.)

Хотя я не могу рекомендовать его, потому что я все еще играю с ним, Erlang очень мощный.

Я должен согласиться с рекомендацией для Clojure.Я только что закончил нагрузочный тест сервис новостной ленты, написанный на Clojure который поддерживал 80 сообщений об исходящей активности в секунду на веб-сервере Clojure, работающем на экземпляре EC2 m1.medium.

Предыдущее поколение функциональных языков имело такие инструменты, как Ocsigen (для OCaml) и HApps (для Haskell), но у них практически не было пользователей:это полностью непроверенное программное обеспечение.

Напротив, Scala и F # основаны на очень хорошо протестированном коде из Java и .NET.В частности, Microsoft за последний год очень активно разрабатывала F #, поскольку он находится в стадии разработки.Ни один другой функциональный язык никогда не получал такого уровня поддержки, и, следовательно, F # уже очень удобен в использовании (и намного опережает такие языки, как Haskell, с точки зрения инструментов разработки).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top