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

Вы рассмотрели генерирование события в методе set, если данные недопустимы? Это избежало бы проблемы выдачи исключения и избавит от необходимости явно проверять объект на "недопустимый" флаг. Вы могли даже передать аргумент, указывающий, какое поле привело проверку к сбою, для создания его более допускающим повторное использование.

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

19
задан Ramiz Uddin 11 August 2009 в 10:22
поделиться

8 ответов

Машинный язык - это «Битовая кодировка» кодов операций ЦП.

Язык ассемблера - «Символьная кодировка» кодов операций ЦП.

Итак, для примера символически:

loop:  dec R1    # Decrement register R1
       bnq loop  # Branch if not equal to zero to
                 # address "loop"

Становится битовым кодированием:

# Mythical CPU Machine code 4 bits operation,
#                           4 bit "option"
       0x41      # 4 is a "dec" and represents r1;
       0x7E      # 7 is bnq and E means PC -2;

Как правило, это отношение один к одному, однако некоторые языки ассемблера могут иметь дополнительные инструкции сборки, которые отображаются либо на несколько инструкций машинного кода, либо повторно используют другой код операции. Например, использование машинного кода «xor R1, R1» как «clr R1» или чего-то очень похожего.

Кроме того, языки ассемблера будут поддерживать «макропрограммирование», которое в 80-х годах, когда ассемблер широко использовался, придавал исходному коду более «высокоуровневый» вид. Я лично написал макросы сборки, которые выглядели как «график x, y» и «

11
ответ дан 30 November 2019 в 03:16
поделиться

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

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

8
ответ дан 30 November 2019 в 03:16
поделиться

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

DSL, например, в наши дни довольно популярны специальные программы. Haskell смехотворно подходит для такого типа работы.

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

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

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

6
ответ дан 30 November 2019 в 03:16
поделиться

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

6
ответ дан 30 November 2019 в 03:16
поделиться

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

2
ответ дан 30 November 2019 в 03:16
поделиться

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

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

2
ответ дан 30 November 2019 в 03:16
поделиться

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

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

2
ответ дан 30 November 2019 в 03:16
поделиться

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

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

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

2
ответ дан 30 November 2019 в 03:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: