Ответ 1
Можно ли это сделать с помощью чистого Erlang?
Да, он может, подчиняясь аналогу Десятого правила Greenspun: ваша система будет содержать специальную, неформально указанную, загруженную ошибками, медленную реализацию половина OTP.
Я собираюсь создать систему с Erlang (моя проблема может быть решена лучше с несколькими процессорами), и я просмотрел:
В книге действий Erlang/OTP в книге действий (2) говорится: "... писать не-OTP-код Erlang - это действительно передовая тема, и что-то, что нужно делать только тогда, когда вам действительно нужно. Поэтому, возможно, это не способ OTP - это благословение, потому что вы сразу же подберете правильные привычки в отношении вещей OTP..."
(2) настаивает на том, что коммерческие системы должны быть построены только с OTP, в то время как (4) нежно показывает, что OTP - это не единственный способ сделать это.
Кроме того, прочитав (4), я обнаружил, что построение знаний из самых основ Эрланга помогает понять, как работает OTP (но не наоборот).
Итак, вопрос: Должен ли я выбирать Erlang/OTP для создания коммерческой системы или это можно сделать с помощью чистого Erlang?
Можно ли это сделать с помощью чистого Erlang?
Да, он может, подчиняясь аналогу Десятого правила Greenspun: ваша система будет содержать специальную, неформально указанную, загруженную ошибками, медленную реализацию половина OTP.
Учитесь и играйте с чистым Erlang.
Создайте системы в Erlang/OTP.
OTP написан в Erlang, так что это определенно можно сделать в чистом Erlang. Это говорит о том, что OTP предоставляет вам множество полезных функций, которые вам в противном случае нужно было бы написать самостоятельно. @Alexey прав, чем в конечном итоге реализовать часть OTP на этом пути. Проблема в том, что инфраструктура, необходимая для создания отказоустойчивых систем, которые предоставляет OTP, сама по себе является очень безотказной.
Я также буду эхом @Mazen в том, что экспериментирование с этим в чистом Erlang дает вам хорошее представление о том, что происходит внутри OTP и как вы можете создавать отказоустойчивые системы в Erlang. После этого вы улучшите использование OTP. Вы поймете, что лучше не использовать OTP и почему.
Если вы прочитали "Узнайте, что у вас есть Erlang" (как вы сказали, у вас есть), вы заметите, что автор тратит Проектирование параллельного приложения глава, создающая нечто наполовину полезное в "простом Эрланге". Затем в следующих двух главах он в основном выбрасывает все это и использует OTP для достижения того же самого решения с гораздо меньшим количеством кода (добавьте к этому тот факт, что, поскольку он OTP-код, он стандартный, поэтому другие разработчики, знакомые с OTP, будут иметь гораздо лучше понять, где искать, чтобы понять это!)
OTP был разработан и усовершенствован в течение многих лет (начальный выпуск 1998 года в соответствии с Википедией) с большим количеством разработчиков и поддержкой крупной международной компании (Ericsson), а также проверен как открытый, Я думаю, что было бы немного смело предположить, что вы могли бы создать что-то одинаково надежное и масштабируемое!
Поэтому используйте OTP. Даже для проектов "играть" по-прежнему используйте OTP, поскольку это может помочь вам научиться лучше делать ваш "коммерческий" код:)