Насколько стабильны и широко распространены аккумуляторы OCaml, и рекомендуется ли это?

Я только что вернулся к OCaml для нового небольшого исследовательского проекта после многих лет SML, Haskell и F#.

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

OCaml Batteries Included, кажется, заполняет именно эти пробелы. Но я немного не уверен, что он стал достаточно зрелым, стабильным и распространенным для этого проекта. Часть моих сомнений связана с рядом сбоев при его установке, включая обнаружение того, что в настоящее время инструкции по установке устарели, и только с помощью Google удалось найти ответ на запрос в службу поддержки, в котором объяснялось, что требуется.

Батареи относительно стабильны? (Или, по крайней мере, более стабильный, чем можно было бы предположить выше?) Является ли его использование относительно широко? (Например, 10 % нового кода OCaml написано с его использованием?)
Для каких типов проектов он был бы рекомендован?
(И, в частности, был бы рекомендован для небольшого и среднего исследовательского проекта, который должен Получится небольшая библиотека, которая, вероятно, будет поддерживаться в течение некоторого времени.)
Есть еще какие-нибудь рекомендации?


person RD1    schedule 22.07.2010    source источник
comment
Я не знал, что произошли такие большие изменения. Я только что проверил количество сообщений в архиве Caml-list по месяцам, и, насколько мне известно, они не сильно изменились за последние четыре года: caml.inria.fr/pub/ml-archives/caml-list/index.en.html Можете ли вы указать на какие-либо ссылки, которые показывают отвес? Или хотя бы объясните, как вы определили, что отвес был? У тебя есть   -  person RD1    schedule 26.07.2010
comment
@Jon: Это довольно смелое утверждение, и я не склонен верить, если вы не можете подкрепить его надежной статистикой из достаточно беспристрастного источника.   -  person bcat    schedule 29.07.2010
comment
@RD1 и bcat: я только что вытащил статистику для двух списков рассылки OCaml, и они оба стабильно падали из года в год каждый год в течение четырех лет подряд, увеличившись с 663 сообщений в месяц в 2007 году до 276 сейчас (снижение на 58%). ). Продажи наших продуктов, связанных с OCaml, за тот же период упали на 60%, и, следовательно, мы отказались от OCaml. Тенденции Google показывают аналогичную тенденцию: примерно на 60% снижается доля поисковых запросов Google, связанных с OCaml.   -  person J D    schedule 29.07.2010
comment
Причина, конечно же, в том, что OCaml остался позади при переходе на многоядерность.   -  person J D    schedule 29.07.2010
comment
@Jon Right - ссылка, которую я разместил, предназначена для аналогичной статистики, я думаю. А от 4-х летней давности (как вы сказали изначально) до этого года разница меньше. Если вы выберете пик 663, то да, он упадет, но так же, как и все, если вы намеренно выберете его самую высокую точку. Я бы охарактеризовал ситуацию так: в течение года или около того в районе 2007 года активность OCaml была намного выше, а теперь она вернулась к тому, что было раньше, и нам придется посмотреть, что произойдет дальше. Я согласен, однако, что многоядерность - это проблема - возможно, бэкэнд JVM поможет ... (хотя хвостовые вызовы в JVM - это проблема).   -  person RD1    schedule 29.07.2010
comment
@RD1: Иными словами, трафик в списках рассылки OCaml самый низкий за последние 10 лет. Учитывая, что функциональное программирование сейчас находится на подъеме, это действительно сильное заявление.   -  person J D    schedule 30.07.2010


Ответы (2)


Полуотказ от ответственности: я являюсь одним из текущих разработчиков Batteries Included.

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

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

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

Мой совет: если вы хотите использовать Extlib, используйте батареи. Он поглотил набор функций Extlib (на самом деле, большую часть его кода) и немного его конкретизировал. Если вы найдете ошибки, пожалуйста, сообщите о них :).

person Michael Ekstrand    schedule 23.07.2010
comment
Привет, отличный ответ. Это достаточно хорошо с моей точки зрения, так что я буду использовать его. - person RD1; 29.07.2010

Что ж, я лично рекомендую OCaml Batteries Included. Конечно, так уж получилось, что автором оригинала являюсь я :)

Использование пока не получило широкого распространения, но теперь оно является частью Debian/testing и Ubuntu Lucid Lynx в дополнение к GODI, так что можно ожидать, что несколько человек будут тестировать его на наличие ошибок.

person Yoric    schedule 22.07.2010