Является ли Haskell достаточно зрелым для веб-приложений?

Похоже, что в Haskell для Интернета не так много работы. Люди используют его как инструмент обучения для функциональных программирование больше, чем бизнес. имеет любой разработанный и развернутый веб-сайт приложение на Haskell, еще? Пожалуйста, обмениваться ссылками.

Комментарии следующего сеанса могут изменить мой взгляд и планировать что-то еще, что могло бы также полезны с точки зрения бизнеса. Руководство, руководство, Пожалуйста!

Я планирую изучить функциональный язык программирования, и я выбрал Haskell.

Является ли Haskell "приготовленным" достаточно для разработки коммерческого веб-приложения? Или мне нужно искать другие варианты, может быть, даже что-то другое, кроме функционального языка программирования, если оно достойно?

Инвестиции в изучение языка очень дороги, и я хочу убедиться, что Haskell действительно стоит того, чтобы учиться.

Руководство, пожалуйста.

Ответ 1

Рамиз,

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

Если это так, я рекомендую вам начать с yaws, быстрый HTTP-сервер, написанный на функциональном параллельном языке программирования Erlang. Вы узнаете взлеты и падения скручивания PHP-подобных скриптов в функциональное мышление, многое из которого вы сможете перевести в свою работу с Haskell.

Если вам действительно нравится придерживаться Haskell, и выбор языка для вас более важен, чем общий функциональный подход, а затем взгляните на Real World Haskell. Это даст вам представление о том, как язык решает общие проблемы, которые могут вас заинтересовать в процессе изучения языка.

Ответ 2

Когда вы изучаете новые языки, требуемые инвестиции снижаются. Даже если вы начнете с Haskell, функциональные знания, которые вы получите, помогут вам изучить другие языки.

Это также зависит от того, с какого языка вы пришли. Если вы пришли из Java, я бы предложил scala, если вы пришли из .net, я бы предложил f #

Ответ 3

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

DSL, например, довольно жаркие в настоящее время в пользовательском программном обеспечении. Haskell смехотворно подходит для такого рода работ.

Если это не такая "коммерческая" среда, о которой вы помните, возможно, какой-то проект полиглота лучше всего (я думаю, что хороший пользовательский интерфейс является одной из слабых сторон Haskell). У меня есть проект прямо сейчас, когда Haskell работает как быстрый cgi-сервис в задней части (я не слишком люблю "рамки", и мне действительно не нравятся те, которые доступны для Haskell прямо сейчас), вверх по интерфейсу Flex (Adobe Flash Platform). Возможное намерение этого проекта будет продаваться коммерчески * предприятиям малого и среднего бизнеса в качестве финансовой помощи.

Последнее, что я скажу, это то, что, когда я лично люблю Haskell, я думаю, что его FP в целом обеспечивает наибольшую прямую выгоду. Для этого, если вы обнаружите, что смотрите на другой язык FP, такой как F #, Scala или Erlang, и подумайте, что это будет лучше, тогда я скажу, что бегите с ним.

* Собственно, проект будет использоваться внутри страны не менее чем за год до начала выхода на рынок сторонних сторон.

Ответ 4

Если вы говорите о разработке веб-приложений, то выбранный вами язык является настолько зрелым, как библиотеки, написанные вокруг него для веб-разработки.

Ответ 5

Если вы собираетесь заниматься веб-разработкой, я предлагаю вам глубоко заглянуть внутрь JavaScript.
Javascript - это динамический, слабо типизированный, прототипный язык с первоклассными функциями.
Он имеет множество функциональных возможностей, и вы можете использовать либо V8, TraceMonkey, либо Windows Shell (но он запускает JScript), чтобы запускать его в условиях без браузера.

Ответ 6

Там довольно богатая экосистема веб-библиотек и небольшое количество коммерческих пользователей. Компания, с которой я работаю, использует Haskell для веб-приложений на рынке безопасности.

Посмотрите на библиотеки, чтобы узнать, что предлагается: http://hackage.haskell.org/packages/archive/pkg-list.html#cat:web

Ответ 7

Существует множество библиотек Haskell для разработки веб-сайтов (Happstack, Kibro, Hack, Salvia, Turbinado); проблема в том, что трудно понять, какие из них хороши. Многие из этих библиотек довольно молоды. Я ожидаю, что в ближайшие пару лет ситуация станет лучше, поскольку эти библиотеки созреют и станут более ясными, поскольку эти библиотеки станут лучше документированы.

В то же время я бы сказал, что Haskell - прекрасный язык для написания веб-приложений, при условии, что вы готовы потратить некоторое время на ознакомление с библиотеками и, возможно, улучшить их, когда они не соответствуют вашим потребностям.

Ответ 8

Посмотрите код jinjing: http://github.com/nfjinjing/loli/tree/master Да, он все еще экспериментальный. Но это немного открывает глаза.

Сам Haskell определенно приготовлен. Люди, которые не доверяют Java, используют Haskell (см. http://www.galois.com), когда им необходимо защитить данные правительства.

Но веб-рамки Haskell оставляют желать лучшего. Таким образом, это может быть не самая производительная среда на данный момент. Но... если вы справитесь с этим, неисчислимая сила будет вашей:)

Ответ 9

Если вы думаете, что в долгосрочной перспективе, а также в краткосрочной перспективе, Haskell - лучший вариант. В нем много разных веб-разработок, но в них много общего, например, все структуры используют аппликативные функции для создания форм, а библиотеки взаимозаменяемы. Поэтому, если вы изучите структуру, ее легко изменить на другую, поскольку в основном интерфейс базы данных, методы и методы рендеринга и т.д. - это то же самое самое время. С другой стороны, есть много вещей, чтобы узнать форму Haskell, даже если вы решите перейти на другой язык. Вы выиграете от этого. Так что окончательно Haskell стоит учиться.

Думая, что инвестиции в будущее, но, возможно, не для того, чтобы делать что-то ужасное сейчас, я думаю, что процедурные рамки (основанные на продолжении или нет) - это будущее веб-разработки, поскольку они менее сложны, а код гораздо более удобной и интуитивно понятной. Примеры: ocsigen (ocaml), приморский (smalltalk), coccoon (javascript) и мой собственный: mflow, написанный в Haskell.

Вы когда-нибудь видели трехстраничное веб-приложение в твиттере? https://twitter.com/AGoCorona/status/329648864082677760

Ответ 10

Теперь, без сомнения, haskell можно использовать для коммерческой веб-разработки, как показано на сайте компания janrain, которая использует веб-фреймворк snap.

Интересно отметить, что первая версия haskell (haskell 1.0) была выпущена в 1990 году! И, глядя на то, как тогда был haskell, и как теперь, можно сказать, что было много "приготовления".