Какими преимуществами обладает Go по сравнению с Java?
Выбираю куда бы мигрировать со своим толстым жирным ERP приложением и выбирал между Go и Node.js.
Поговорил на досуге с одним умным человеком и не смог придумать почему бы не использовать Java, тем паче что с ней я уже работал. Может быть чейнить подскажете?)
ну go явно интереснее node.js, а вот выбор Java... Мне лично просто не нравится Java (но нравится c#) и потому я бы выбрал именно go, с его корутинами и т.д. С Java можно тоже жить, но я пока не могу придумать преимущества (ну кроме как куча готовых решений).
чем же интересней если не секрет?
Готовые решения, тонны документации, JVM это плюсы, а вот минусов объективно назвать не могу. Это хреновый аргумент в споре)
Вячеслав Успенский: на бэкэнде - вполне себе может, вопрос что там будет происходить. Если маршрутизация, сохранение и обработка данных - то вполне себе. Каждого клиента в свою корутину, или конвеер организовать. Много вариантов.
Сергей Протько: Даже если в один поток то это не критично при нормальной оптимизации.
ЗЫ Кстати а почему однопоточный? В исходники не смотрел но даже сомнения не закралось. Отловили пакет отдали в нужнию функцию и дальше себе цикл гоняем.
Вячеслав Успенский: libuv на котором реализовано взаимодействие с I/O асинхронный по настоящему, там два действия могут происходить одновременно, но сам же js и его асинхронности работают в пределах event loop. То есть если где-то кто-то запустил циклик на пол секунды, например похэшировать чего, то весь сервак на эти пол секунды замрет. Так же и со сборкой мусора например и еще куча других радостей.
Есть воркеры, есть отдельные модули добавляющие многопоточность, но я не видел ни одного человека у которого небыло с этим проблем в ноде.
Не нравится джава как язык, пишите на чем-то другом, что работает в окружении jvm. На Scala, Clojure, Groovy, Jython, Kotlin, etc. ИМХО, jvm как платформа - выше всяких похвал. Действительно тонны готовых библиотек, фреймворков, технологий.
о, хороший список, надо глянуть. Вопрос в том что найти ответ на вопрос что же лучше из всего длинного списк адля создания real-time web-based application мне не удалось
Maxim: Ну касаемо скалы - есть Akka, если этот фреймворк не готов к продакшену, то что готово ? И никто не мешает подключить джавайские библиотеки и использовать их, для какой-то низкоуровневой инфраструктуры. А бизнес-логику писать на чем нравится, хоть на кложуре.
Вы мой моск теперь совсем порвали. Технологическая сингулярность в действии. Даже для ноды фулл стек выбрать можно только наугад.
Видимо в таких условиях скоро выгодней будет каждый раз писать свое...