Я знаю, что даже вопрос Erlang или Java кажется довольно странным, потому что это достаточно разные языки с разными парадигмами. Но теперь я очень поверхностно знаю их обоих, поэтому, спросите вас, что бы вы узнали более ценным, быстрым, масштабируемым ? Что приходит мне в голову:
- Java - основной язык. Я не уверен насчет Groovy и Grails, но если проект становится чем-то большим, чем ваше собственное хобби - гораздо проще найти Java-программистов для поддержки этого кода. Elixir - хобби одного хорошего программиста на Erlang, поэтому было бы очень сложно поддерживать код в Elixir. Кроме того, в Grails уже написан фреймворк, поэтому его лучше реализовать, чем мой собственный, написанный в фреймворке Elixir.
- Приложение Erlang (хорошо написано) - это синоним масштабируемости. Но когда дело доходит до запуска веб-приложений, выполните несколько простых запросов и умрете - нет необходимости масштабировать их больше, чем простые запросы пользователей Round-Robin между ними (процессы Java на разных машинах)?
- Если мы говорим о многих простых запросах (без длинных опросов и т. Д.) - очень много процессов просыпаются и умирают каждую секунду - у Эрланга действительно легкая модель процессов, так что ... Что насчет Java и множества новых порожденных и убитых обрабатывается каждую секунду?
Заранее спасибо.
PS Диаграмма из Этот тест производительности ставит под сомнение производительность Java VM.