LINUX.ORG.RU

История изменений

Исправление vbr, (текущая версия) :

Вот развёрнутый ответ на вопрос «Чем оно лучше Java» я бы сам с удовольствием почитал (ну кроме того, что ему не нужна JRE и нет лишней сущности в виде промежуточного кода, разумеется).

Первый плюс это размер небольшого сервиса (образа). В Java базовый образ это около 70 MB самый урезанный, а большинство скорей всего будут использовать полный на 250 MB. Прибавить сюда ещё несколько десятков мегабайтов jar-ок типичных spring boot зависимостей. В Go ничего этого нет, там буквально 10-15 MB будет небольшой сервис весить, насколько я помню.

Второй плюс это потребление оперативной памяти на небольшой нагрузке. В Java я бы не рассчитывал на меньше, чем 500 MB даже для простого сервиса на спринг буте. В Go это десятки MB от силы.

Третий плюс это скорость запуска. В Go она моментальная. В Java Spring на практике - около нескольких секунд. Для некоторых юз-кейсов это может быть важно.

Четвёртый плюс (ну скорей особенность, но лично для меня плюс) это культура разработки. В Go отказываются от зависимостей, стараются обходиться стандартной библиотекой. В Java упомянутый два раза спринг бут встречается чуть менее, чем во всех проектах. В Go пропагандируется простой подход с минимумом магии. В Java пропагандируется декларативный подход с АОП (аспектно-ориентированное программирование).

Пятый плюс это унифицированная экосистема. Есть один инструмент для сборки, есть один кодовый стиль. В Java инструментов для сборки как минимум два, популярных стилей как минимум два. Это, конечно, всё ещё несоизмеримо лучше, чем в каком-нибудь C++, но хуже, чем в Go.

Что интересно - второй, третий, четвёртый минусы Java не являются несомненными. В Java никто не мешает взять какой-нибудь Helidon SE и писать код без упарывания, или вообще через com.sun.net.httpserver из стандартной библиотеки, но никто так не делает, тебя не поймут и попросят сделать «как все». Поэтому я всё же их записываю в минусы, язык это не теория, а принятые практики в первую очередь.

Исходная версия vbr, :

Вот развёрнутый ответ на вопрос «Чем оно лучше Java» я бы сам с удовольствием почитал (ну кроме того, что ему не нужна JRE и нет лишней сущности в виде промежуточного кода, разумеется).

Первый плюс это размер небольшого сервиса (образа). В Java базовый образ это около 70 MB самый урезанный, а большинство скорей всего будут использовать полный на 250 MB. Прибавить сюда ещё несколько десятков мегабайтов jar-ок типичных spring boot зависимостей. В Go ничего этого нет, там буквально 10-15 MB будет небольшой сервис весить, насколько я помню.

Второй плюс это потребление оперативной памяти на небольшой нагрузке. В Java я бы не рассчитывал на меньше, чем 500 MB даже для простого сервиса на спринг буте. В Go это десятки MB от силы.

Третий плюс (ну скорей особенность, но лично для меня плюс) это культура разработки. В Go отказываются от зависимостей, стараются обходиться стандартной библиотекой. В Java упомянутый два раза спринг бут встречается чуть менее, чем во всех проектах. В Go пропагандируется простой подход с минимумом магии. В Java пропагандируется декларативный подход с АОП (аспектно-ориентированное программирование). И хотя в Java никто не мешает взять какой-нибудь Helidon SE и писать код без упарывания, но никто так не делает, тебя не поймут и попросят сделать «как все».

Четвёртый плюс это унифицированная экосистема. Есть один инструмент для сборки, есть один кодовый стиль. В Java инструментов для сборки как минимум два, популярных стилей как минимум два. Это, конечно, всё ещё несоизмеримо лучше, чем в каком-нибудь C++, но хуже, чем в Go.