Доброго времени суток!
Хочу сейчас изучить серверный язык программирования. Смотрю сейчас в сторону node.js и java. Задачи которые планирую выполнять - это работа разработка сайта с большим посещением. Как таковых вычислений математических не будет, просто много запросов. Какой язык серверный для этого лучше использовать? Больше интересует, какой из языков лучше будет справляться, сложность/скорость разработки не так интересует.
Сейчас на современных сайтах модно делать переход по страничкам без перезагрузки. Понимаю, что это делается на клиентской части, но все же, возможно это как-то реализовать в связке с Явой?
Очень много зависит от вас, но вот что могу сказать:
Ява будет быстрее ноды, не только потому что JS не имеет типизации, но это кроется и в асинхронности JS и в скорости выполнения мат. задача и алгоритмов. Если у вас сложный алгоритм, который выполняется 2 с, то Сервер будет занят выполнением и не сможет принять еще что либо. В то время как Java имеет многопоточность. Для хайлоад сайтов, вместе с нодой нужно будет использовать более быстрый язык, например как С++. Либо оптимизировать код после.
Спасибо за аргументированный ответ! Но второй вопрос для меня остается до сих пор непонятным.. немного переформулирую его: могу ли я использовать как бэк-энд Яву, генерировать всю информацию в json, а на клиенте принимать яваСкриптом? Например, на клиенте использовать ангуляр/реакт?
Zheka Dzecina: Да, это хороший подход. В частности Ангуляр и реакт именно так и используют. Серверные языки варьируются, Perl, C++, Noda, Java и даже на PHP делают связку. На клиенте вы сами выбирайте, что вам больше нравится.
PS. Ангуляр требователен к знаниям собственного синтаксиса, но позволяет делать многие вещи из коробки. Реакт позволяет собрать собственные библиотеки и кроме JS ничего больше не нужно знать(например, если вы захотите перенести ваше JS приложение на десктоп NodeWebkitJS то реакт перенести проще). На 2015 реакт был лучшим. С выходом ангуляр 2, думаю ситуация выравнивается. У Ангуляра нету дебагера внятного, у реакта он есть. И если у ангуляр ошибка, то приложение молча подыхает и на этом все, реакт скажет где именно ошибка. В плане веса реакт весит меньше, но это нормально ибо не имеет доп. плюшек как у ангуляр.
Ява кстати не сильно быстрее ноды. Ибо V8. Бенчмарки можно погуглить. Вот например свежий https://blog.famzah.net/2016/02/09/cpp-vs-python-v... - чисто вычислительная задача. C++ = 1.1сек, Java со стандартной библиотекой = 15.5сек (!!!), nodejs = 2сек, Java с НЕстандартной библиотекой = 1.5сек. PHP 7 = 7сек, PHP 5.6 = 70сек.
Зачем вводить людей в заблуждение по поводу однопоточности в node.js? Почитайте на досуге, про кластеризацию и еще одно, если вы про что-то услышали(например однопоточный node.js), для начала проверьте, а после уже отвечайте другим!!!!!!!!
Для большого лучше прямые руки, хороший код и грамотная архитектура. Если вы не знаете ни JS ни Java, то не имеет значения, граблей найдете и там и там.
И да, сравнивать фреймворк/платформу с языком программирования нельзя.