В чем разница с использованием весенней загрузки с Kotlin и с Java? - PullRequest
0 голосов
/ 26 июня 2019

В чем различия при использовании весенней загрузки с Kotlin и с Java?

Kotlin - один из трех языков, которые вы можете выбрать для запуска своего приложения с https://start.spring.io. Так что он поддерживается командой весенней загрузки. Я использовал его для разработки некоторых микросервисов, и, насколько я знаю, в конце все прошло хорошо, но я хотел бы получить отзывы от других разработчиков, потому что я пытаюсь убедить мою новую команду запустить наши новые микросервисы в Котлине.

Плюсы:

  • Нулевая безопасность
  • Более понятный код
  • Val over var

Минусы:

  • Мокито не дружит с Котлиным (я переключился на макет)
  • Покрытие кода было не из коробки (мы должны были разработать наш собственный плагин)
  • Риск, что Java движется быстрее, чем Kotlin

Ответы [ 2 ]

1 голос
/ 26 июня 2019

Так как Kotlin - это просто зависимость и плагин для Maven (вот и все!). Это такой хороший, компактный, простой в использовании язык, который удаляет весь синтаксический жир (в отличие от синтаксического сахара), который предоставляет Java.

Начиная с 5.0.0, Kotlin имеет первоклассную поддержку от Spring, что фактически означает, что он имеет все те же гарантии, что и Java, с точки зрения правильной работы кода.

Сам Kotlin обладает множеством функциональных возможностей взаимодействия для плавной интеграции с любой уже существующей библиотекой Java, что означает, что у вас есть такая же свобода выбора.

Взаимодействие Java с Kotlin удивительно и ни в коем случае не было запоздалой мыслью Jet Brains. Таким образом, Kotlin прекрасно работает с Spring, который предоставляет множество стандартных функций для веб-приложений, особенно Spring Boot.

Это некоторые моменты, о которых Вы уже упоминали, но я по-прежнему буду иметь право голоса по этому поводу. Kotlin имеет гораздо более компактный синтаксис, а его система типов позволяет создавать гораздо более надежный код с помощью закрытых классов с нулевой безопасностью и различий неизменяемых / изменяемых коллекций, что в совокупности значительно сокращает время разработки в любом проекте.

1 голос
/ 26 июня 2019

Основное отличие состоит в том, что с Kotlin вы программируете на Kotlin ... с Java вы программируете на Java. Spring использует некоторые языковые функции исключительно для Kotlin, чтобы упростить определенные операции, но я не думаю, что вы захотите выбрать один язык перед другим только из-за этих нескольких дополнительных преимуществ. По большей части, нет никакой разницы. Spring хорошо поддерживает оба языка.

ОБНОВЛЕНИЕ: Полагаю, я должен добавить, что Kotlin вносит несколько мелких проблем во всю Spring, просто потому, что Spring на самом деле написан на Java и изначально был разработан для использования через Java. Но, как и плюсы, которые вы получаете с помощью Spring и Kotlin, эти незначительные недостатки также не должны определять ваш выбор.

Я думаю, что вы должны спросить: «Какой язык мне использовать, оставив Spring вне этого?». Моя компания кодирует новые модули в Kotlin, потому что мы считаем, что это значительно лучший язык, чем Java. Но у нас есть много унаследованного кода Java, и мы решили по большей части не смешивать языки в одном модуле, поэтому мы по-прежнему пишем код и на Java. Вы должны принять собственное решение. Решите, на каком языке вы хотите программировать, исходя из самого языка и существующей кодовой базы, но не от того, как Spring работает с ним. Весна будет отлично работать с любым из них.

Существует множество статей и блогов, сравнивающих эти два языка и перечисляющих их плюсы и минусы. Я бы посоветовал вам прочитать все, что вы можете. Здесь нет «правильного» ответа. (... именно поэтому я знаю, что этот вопрос будет закрыт как основанный на мнении). Попробуй Котлин. Черт возьми, попробуй Groovy и Scala тоже. «прожить» плюсы и минусы для себя, а затем решить, что будет работать лучше для вас.

Кстати, вы указываете «Риск, что Java движется быстрее, чем Kotlin» как Con of Kotlin. Я думаю, что риск в другом направлении. Java движется очень медленно по сравнению с Kotlin и другими альтернативными языками. Вот почему вы видите, что это играет в догонялки ... наконец, вводя функции в язык, который был на альтернативных языках в течение многих лет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...