2014-12-02 6 views
-1

Мы думаем об использовании функциональных языков в наших проектах. Я пытаюсь собрать точки, с которых мы можем начинать функциональный язык (в основном мы разработчики java). Мы думаем об использовании Ocaml. Я пробовал учиться с их сайта ocaml.org. Я задаю вопросы тем, кто использует Ocaml на своем рабочем месте.Ресурсы обучения Ocaml

  1. Уменьшает ли Ocaml строки кода по сравнению с Java?
  2. Какие редакторы вы используете?
  3. Я видел, что есть много Ocaml library. Реализации - Батареи, сердечник и т. Д. В начале можно использовать только батареи?
  4. Вы используете Ocaml Core (по улице Джейн)? Насколько он отличается от стандартным?

В начале мы планируем использовать Ocaml в очень небольшом количестве, возможно, в проекте дома.

+1

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

+0

Точно. Я не прошу ресурсов или книг или сравнения. Я ожидал опыта людей с Ocaml. Поскольку язык почти такой же старый, как Java, я уверен, что в производстве будут значительные системы, в которых Ocaml используется в значительной степени. – Chirota

ответ

4

В Vector Fabrics мы широко используем OCaml.

Узнав о преимуществах, которые функциональное программирование может принести нашей инженерной деятельности (мы в основном создаем программные средства для анализа программ на C и C++), мы рассматривали как Haskell, так и OCaml как языки для использования. В конце концов, мы решили пойти на OCaml, главным образом потому, что его модель исполнения проще (нетерпеливая оценка против ленивой оценки Haskell), и поэтому рассуждение о поведении программ несколько проще для программистов, которые не обязательно имеют опыт в функциональном программировании (нас особенно интересовали рассуждения о космическом поведении программ, а иногда и для экспертов, довольно сложных в Haskell).

OCaml, позволяющий выборочно «убегать» к императивному и даже объектно-ориентированному программированию - это то, что иногда пригодится, но не то, что мы рекомендуем нашим программистам в качестве хорошей практики в повседневном программировании. Наше обоснование: как только вы примете функциональный язык программирования, вам лучше использовать его для выполнения функционального программирования, иначе вы можете в конечном итоге написать императивные и объектно-ориентированные программы в (для этих целей) неуклюжий синтаксис. В конце концов, если вы проблемный домен лучше обслуживается с объектно-ориентированным программированием, тогда вам лучше выбрать язык, подобный Java, который намного лучше подходит для этого.

Ответ на ваши вопросы:

  1. ли уменьшить строк кода Ocaml по сравнению с Java сказать? Да, но только если действительно принять «функциональный стиль» программирования. Кроме того, будьте осторожны: функциональные программы могут быть красиво краткими, но иногда нотация может скрывать присущую сложность алгоритмов.
  2. Какие редакторы вы используете? В основном мы используем редакторы общего назначения, такие как emacs и vim.
  3. Я видел, что существует множество реализаций библиотеки Ocaml - Батареи, Core и т. Д. В начале можно использовать только батареи? Батареи обеспечивают хорошую и, возможно, достаточно мощную стандартную библиотеку (но также и Core). В зависимости от вашего проблемного домена вам может потребоваться расширить стандартные библиотеки с помощью собственных библиотек.
  4. Вы используете Ocaml Core (по улице Джейн)? Насколько он отличается от стандартного? Мы не используем его, но см., Например, What are the pros and cons of Batteries and Core?.

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

Смежные вопросы