Подтвердить что ты не робот

Erlang Concurrency Модель vs Scala vs Go

Недавно я глубоко изучил функциональное программирование. И этим я немного узнал об Erlang и его модели concurrency.

Удивительно (по крайней мере, для меня), я обнаружил, что он (Erlang) используется в ядре многих известных базовых приложений, таких как канал чата Facebook, back-end Messenger What App и все же в ядро-онлайн-серверов Call Of Duty. Мне даже нужно читать на некоторых форумах, что для распределенных систем, которые посещают веб-запросы, Erlang еще более масштабируема, чем node.js или JVM (не уверен, что эта информация точна)

  • Почему у нас есть случаи перехода, например, Twitter с RoR на Scala? Даже если Scala предназначен для использования с функциональной парадигмой, не будет ли Эрлангом еще лучше?

  • Еще один замечательный случай, который я не могу понять, - это Google. Хорошо известно (по презентации Go в Google I/O 2011), что основные приложения либо построены на С++, либо Java. Так почему же им пришлось создавать Go (golang), если Эрланг может соответствовать роли?

Примечание: не поймите меня неправильно. Для меня ясно, что если у вас есть солидный фон в Java, например, Scala будет моделью функционального программирования намного быстрее, чем Erlang. Но я помещаю производительность в сторону, я имею в виду.

Какими были бы силы Эрланга, которые заставили бы его забрать и потратить столько времени на изучение этого?

Большое спасибо.

4b9b3361

Ответ 1

Эрланг не подходит для каждой проблемы. Ваши примеры показывают, что в основном они используются для (распределенных) сетевых приложений. Но Java и Scala имеют гораздо более широкое использование. Вы можете создавать настольные приложения, игры и многое другое. Язык программирования go отличается от Scala, потому что он позволяет вам настоятельно программировать, что невозможно с erlang.

Основной "проблемой" erlang является функциональный язык. Многие люди придерживаются обязательных языков программирования на основе c, использование языка, такого как erlang, похоже на изучение полного нового языка.

Если ваша проблема идеально подходит для домена erlang, это один из лучших вариантов. Но это не язык, как Java или Scala, которые подходят для многих других проблем.