The Java development world has seen a lot of changes in the past couple of years, and the dust is just beginning to settle. Here's a look at the changes that will persist through 2015 and which ones may not end up being a big deal.
Developers and businesses require instant gratification
There's no place in today's software infrastructure for the behemoths of the old days. Even the largest enterprises have admitted that the glacial speed of development that was accepted a decade or two ago is not an option any longer. It also means that web-based applications are winning the fight for primacy.
According Liferay's Senior Software Architect, Ray Auge, "Monolithic applications have been dead for a long time. The cost of maintenance, infrastructure, and change—and the slow rate of improvement—are too heavy a burden. You need engagement and immediate feedback on how users are interacting with an application. That has to be reflected all the way through the back-end. The infrastructure itself has to be adaptable so that you can deliver functionality very quickly. You want to be developing and immediately getting feedback. With anything that's not pure services on the web, that's difficult."
Java 8 could have gone either way, but it's been an overwhelming success.
Simon Maple, ZeroTurnaround
Developers also have a strong desire for tooling that is invisible.
Jevgeni Kabanov, founder and CEO of ZeroTurnaround, keyed in on the need for a smooth experience. "The less people notice the product, the happier people are. Ideally, developers never see the product. They install it once and that's it." Modern tooling has also blurred the distinction between remote work and on-premise work. "The big development is that you can now work remotely with your deployment in the cloud the same way as you would locally. You can change the code, the configuration or resources, it doesn't matter. There's complete opacity. You set it up once and it works. That's a great enabler."
Today's developers are tasked with working in an increasingly agile environment, working more closely with Operations, and delivering continuous improvement. Staying in the zone is more important now than ever if developers hope to keep up with this frenetic pace.
Development will become more functional
Speaking of continuous improvement, the recent update to Java 8 may turn out to be a significant boon for developers. ZeroTurnaround's Simon Maple expressed enthusiasm for the reception Java 8 has received. "Java 8 could have gone either way, but it's been an overwhelming success." And not a moment too soon, "If you actually look at the data for J7 end of life, Oracle puts that at around March. That means the adoption of Java 8 is absolutely critical."
It's not just change for the sake of change. Apparently, this new trend is making code better. According to Maple, "From talking to people who are learning J8 and exploring what it delivers, it's interesting that they aren't just using Lambdas in J8, but learning to use them in a more functional way. The Scala guys are quite happy because it's making Java developers aware of how to code functionally, which leads them up to Scala." Of course, not everyone is on board with this brave new world of functional code. "I think there will be different groups, there will be leaders in Java development who make good use of functional development and those who just use Lambdas when they think they should. It's all about getting into that mindset."
What about web-based development?
There are mixed feelings about the use of web-based IDEs. Some see remote coding as a boon for developers, but others aren't so sure. Anton Archipov from ZeroTurnaround is among those who are no longer impressed with the promise of coding in the cloud. "I would say that about 7 years ago when I had low-end computers, I was dreaming about the web IDE. But since then, the hardware has made such a huge step forward that computing power is not a big problem. For the last few years, I haven't even thought about the web based IDE's. They are cool projects, but I don't have a use case for them anymore myself so it's hard to justify."
Anton's coworker, Geert Bevin, admitted that there could still be some life left in the trend. "Something like GitHub might go toward cloud-based development in a way that works in a community. It would support collaboration on code evolution with a distributed platform that allows for integrating code changes into a release or reviewing or commenting on them in an organic manner. Perhaps that's the modern cloud development solution."