Много тут было ответов уже. Некоторые про Java на Desktop просто смешны, конечно. Java уйдёт не скоро, основная причина - море кода, который нужно поддерживать. Если уж очень хочется в ближайшие 10-20 лет работать на саппорте - Java является лучшим выбором, я считаю. С Android немного иначе. Но Java приходится учить, потому что альтернатив мало. Были тут новости, что Google на Swift переведёт Android разработку... Посмеялся, потом погрустил - было бы неплохо, но чтобы всё то, что уже есть перевести на новый язык... Оххх...
Будущее за вот чем. Скорость разработки + эффективность программ (тут я подразумеваю и скорость обработки данных, отсутствие вещей усложняющих разработку при увеличении объёмов приложений и информационное обеспечение разработчиков, коммьюнити, документация,другие ресурсы). Те технологии, которые будут давать это, будут лидерами, тормозить будут такие вещи только, как страх менеджеров и легаси.
Появляются новые языки и технологии, которые соответствуют и ускорению разработки с сохранением эффективности программ, но всё на них не поставишь, потому как на работу устроиться трудно, зная только, например, Go.
Посему, надо иметь базу, в виде JavaScript, Java, Python, Ruby, C++ или других языков и сопутствующие им технологии, которые уже во всю используются, но нельзя забывать, что когда-нибудь наступит момент, когда что-то перевернётся, и 10-20% времени, которое вы тратите на обучение себя, стоит тратить на что-то новое. Может наступить момент, когда, например, вдруг понадобятся всем Rust-программисты. Такое вполне возможно, и когда эта волна пойдёт, вы будете в теме, уже!)))
Так что, есть ли у Java будущее? Я думаю, что это будущее будет похоже на судьбу языка Cobol. Он долго не умирал. Java тоже не скоро умрёт. Но насколько интересно будет работать с ней?