What are your opinions on the future of back-end web development? Is the Java ecosystem going to wither away as more modern and better solutions are emerging and maturing?
If so, which language/framework and/or programming paradigm do you think will become the new dominant player and how soon?
Personally I would love to see Rust becoming a new standard, it’s a pleasure to write and has a rapidly growing ecosystem, I don’t think it’s far away from overtaking Java. The biggest hurdle imo is big corporations taking a pretty big risk by choosing a relatively new language that’s harder to learn compared to what has been the standard for decades.
Playing it safe means you minimize surprises and have a very large amount of people that are already experts in the language.
Taking the risk will definitely improve a lot of things given that you find enough people that know or are willing to learn Rust, but it also means that you’re trading off Java flaws with Rust flaws. That’s the case however with every big change, and Java flaws are a good enough reason to make a big change.
Java is getting better each year plus Kotlin works in the same eco system and is hyper popular. I don’t think that Java will wither any time soon.
I really like Kotlin, I would much prefer using it at work instead of Java
It sure is! We moved a few years ago and no one regrets.
Advertising it on work is not an option? Because the technical barrier to change language inside the JVM ecosystem is quite low.
Why not use it at work? It’s incredibly easy. You can even replace it a single file at a time.
That’s not possible for one person to do out of their own personal preferences in a large scale enterprise application.
It would be a project wide migration with tons of people working on it and testing afterwards.
I do not know why you think this. You bring it up at an architectural meeting, you begin by explaining the reduction in bugs (there are plenty of studies for this). Then after you get buy in you can literally add the Kotlin library to your pom or build.gradle or buck or whatever system you use and then you can add a single file for Kotlin and it just works. You don’t have to migrate anything, even existing files. I know. I’ve done it multiple times at multiple companies. Migration is incredibly easy if you want to do it, but you can literally just have both side by side with no problems. You wouldn’t need testing for anything except the new code you added. In fact a great way to start with Kotlin is by using it for test files. Then you don’t need to test anything related to the Kotlin code at all!
And yes, I’ve been the “one person” pushing the Kotlin so I do understand the political and technical problems you have to deal with. It really isn’t as difficult as you think.
Going to a hybrid would technically be easy it’s true, but very few people know Kotlin so no one would write it, not even the ones who know it since others need to be able to read it.
I’m not nearly high enough hierarchically to call a shot like this or be able to continually enforce it. I usually always ask my team leader for his opinion even if I’m simply adding some kind of dependency.
I really think you’re overstating how difficult Kotlin is to learn. I’ve converted over 30 people to Kotlin, and it doesn’t take more than a few minutes for them to get the gist of it. If you use Lombok it’s even easier. Just say it’s Lombok without all the bytecode manipulation, it’s actually part of the language.
People love using it once they see it. I’ve had one single person go back to using Java after using Kotlin. Do you use anything like groovy, cucumber, aspectj, powermock, etc? If so you have an even greater argument here. It’s much easier to learn Kotlin than to get any new employee up to speed on those tools and frameworks.
Just try. It really sounds like you don’t believe in yourself here. I wasn’t high ranking when I switched my last company over to Kotlin. The language really speaks for itself. There are also plenty of resources giving you ammo for convincing.
Kotlin is a very easy transition, and it sorts out a ton of issues that you find in Java. Certainly easier than moving to Rust.