Создание коммерческой системы: чистый Erlang или Erlang / OTP?

Я собираюсь создать систему на Erlang (моя проблема может быть решена лучше при использовании нескольких процессоров), и я бегло просмотрел:

  1. Выучите Erlang;
  2. Erlang / OTP в действии
  3. Программирование на Erlang (Армстронг);
  4. Программирование на Erlang (Cesarini).

В книге «Erlang / OTP in Action» (2) говорится: «... написание кода Erlang без использования OTP - действительно сложная тема, и ее следует делать только тогда, когда это действительно необходимо. Использование без OTP - это благо, потому что вы сразу приобретете правильные привычки в отношении OTP ... "

(2) настаивает на том, что коммерческие системы должны строиться только с использованием OTP, в то время как (4) мягко показывает, что OTP - не единственный способ сделать это.

Кроме того, прочитав (4), я обнаружил, что построение знаний на основе самых основ Erlang помогает понять, как работает OTP (но не наоборот).

Итак, вопрос: следует ли мне выбрать Erlang / OTP для создания коммерческой системы или это можно сделать с помощью чистого Erlang?


person skanatek    schedule 04.09.2011    source источник


Ответы (4)


можно ли это сделать с помощью чистого Erlang?

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

person Alexey Romanov    schedule 04.09.2011

Учитесь и играйте с чистым Erlang.

Сборка систем на Erlang / OTP.

person Mazen Harake    schedule 04.09.2011

OTP написан на Erlang, поэтому его определенно можно сделать на чистом Erlang. При этом OTP предоставляет вам множество полезных функций, которые в противном случае вам пришлось бы написать самостоятельно. @Alexey прав, вы в конечном итоге будете внедрять часть OTP на этом пути. Проблема в том, что структура, необходимая для построения отказоустойчивых систем, которую предоставляет OTP, должна быть очень безотказной.

Я также повторю @Mazen в том, что экспериментирование с выполнением этого в чистом Erlang дает вам хорошее представление о том, что происходит внутри OTP и как вы можете создавать отказоустойчивые системы в Erlang. После этого вы сможете лучше использовать OTP. Вы лучше поймете, когда нельзя использовать OTP и почему.

person rvirding    schedule 04.09.2011

Если вы прочитаете "Learn You Some Erlang" (как вы и сказали), то заметите, что автор тратит Разработка параллельного приложения, в которой написано что-то наполовину полезное на" простом Erlang ". Затем в следующих двух главах он в основном отбрасывает все это и использует OTP для достижения того же самого с гораздо меньшим количеством кода (добавьте к этому тот факт, что, поскольку это код OTP, он стандартен, поэтому другие разработчики, знакомые с OTP, будут иметь гораздо лучше, где искать, чтобы понять это!)

OTP разрабатывался и совершенствовался в течение множества лет (первоначальный выпуск 1998 г., согласно Википедии) с большим количеством разработчиков и при поддержке крупной международной компании (Ericsson), а также это все с открытым исходным кодом. Я думаю, было бы немного дерзко предположить, что вы можете самостоятельно создать что-то столь же надежное и масштабируемое!

Так что используйте OTP. Даже для "игровых" проектов по-прежнему используйте OTP, так как он может только помочь вам научиться делать ваш "коммерческий" код лучше :)

person Seb    schedule 08.10.2012