LINUX.ORG.RU

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

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

Если все перечисленное тобой сравнить с Java:

динамическая типизация

Статическая типизация конечно благо, на стороне C# еще null safety, в актуальных версиях C# информацию о nullablity переменной/поля можно указать при декларировании типа - String? name. В java этого не хватает, но зато в Kotlin с этим все хоршо, и там еще есть куча интересных абстракций которые позволяют писать очень выразительный код, или же код который будет выглядеть как магия (Мощь языка располагает писать свой DSL, и это нужно вовремя останавливать).

отсутствие нормальных ORM

Есть несколько хороших ORM, Hibernate самый известный из них.

хотя бы одного квери-билдера

Query builder, их почти нет, я думаю ты не найдешь ничего подходящего.

Если с фронта прилетает неправильный тип (вместо {«age»:10} приходит {«age»:«10»}), то обработать это нормально (указать юзеру, в каком именно поле ошибка, когда их куча) невозможно.

Если мы говорим про Java на backend то почти любой жаба разраб положится на фреймворк. Если он не делает что нужно, то придется гуглить. Библиотек сериализации/десериализации JSON две - Jackson и Gson (конечно их больше, но 95% случаев одна из этих двух работают под капотом любого фреймворка), про них тоже придется гуглить. Короче, вместо написания кода будет гуглинг.

дофигища магии

spring framework не использует магию, он состоит из магии.

P.S. Коммерческий опыт на Java с 2007 года.

Исправление Aber, :

Если все перечисленное тобой сравить с Java:

динамическая типизация

Статическая типизация конечно благо, на стороне C# еще null safety, в актуальных версиях C# информацию о nullablity переменной/поля можно указать при декларировании типа - String? name. В java этого не хватает, но зато в Kotlin с этим все хоршо, и там еще есть куча интересных абстракций которые позволяют писать очень выразительрый код, или же код который будет выглядить как магия (Мощь языка распологает писать свой DSL, и это нужно вовремя останавливать).

отсутствие нормальных ORM

Есть несколько хороших ORM, Hibernate самый известный из них.

хотя бы одного квери-билдера

Query builder, их почти нет, я думаю ты не найдешь ничего подходящего.

Если с фронта прилетает неправильный тип (вместо {«age»:10} приходит {«age»:«10»}), то обработать это нормально (указать юзеру, в каком именно поле ошибка, когда их куча) невозможно.

Если мы говорим про Java на backend то почти любой жаба разраб положится на фреймворк. Если он не делает что нужно, то придется гуглить. Библиотек сериализации/десериализации JSON две - Jackson и Gson (конечно их больше, но 95% случаев одни из этих двух работают под каптом любого фреймворка), про них тоже придется гуглить. Короче, вместо написания кода будет гуглинг.

дофигища магии

spring framework не использует магию, он состоит из магии.

P.S. Коммерческий опыт на Java с 2007 года.

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

Если все перечисленное тобой сравить с Java:

динамическая типизация

Статическая типизация конечно благо, на стороне C# еще null safety, в актуальных версиях C# информацию о nullablity переменной/поля можно указать при декларировании типа - String? name. В java этого не хватает, но зато в Kotlin с этим все хоршо, и там еще есть куча интересных абстракций которые позволяют писать очень выразительрый код, или же код который будет выглядить как магия (Мощь языка распологает писать свой DSL, и это нужно вовремя останавливать).

отсутствие нормальных ORM

Есть несколько хороших ORM, Hibernate самый известный из них.

хотя бы одного квери-билдера

Query builder, их почти нет, я думаю ты не найдешь ничего подходящего.

Если с фронта прилетает неправильный тип (вместо {«age»:10} приходит {«age»:«10»}), то обработать это нормально (указать юзеру, в каком именно поле ошибка, когда их куча) невозможно.

Если мы говорим про Java на backend то почти любой жаба разраб положится на фремворк. Если он не делает что нужно, то придется гуглить. Библиотек сериализации/десериализации JSON две - Jackson и Gson (конечно их больше, но 95% случаев одни из этих двух работают под коптом любого фремворка), про них тоже придется гуглить. Короче, вместо написания кода будет гуглинг.

дофигища магии

spring framework не использует магию, он состоит из магии.

P.S. Коммерческий опыт на Java с 2007 года.