Основное отличие состоит в том, что с 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 и другими альтернативными языками. Вот почему вы видите, что это играет в догонялки ... наконец, вводя функции в язык, который был на альтернативных языках в течение многих лет.