Alternative JVM languages will become commonplace.
Even though 'time makes fools of us all' this feels like a dead cert. During 2018, we have seen all our large clients make major investments in JVM languages other than Java. The Kotlin community is now at least as well established as the Scala one and starting to knock out its own frameworks, such as Ktor and Arrow.
Meanwhile established frameworks like Spring are adding features just for Kotlin coders. There is easily enough room for Scala and Kotlin to coexist, although it will be interesting to see if the major changes planned for Scala 3 will be a help or a hindrance.
So expect your next JVM project to be a Kotlin, Scala or even a Clojure one. It must be said, and not without regret, that poor stewardship of Java has accelerated its demise.
The module system added in Java 9 felt driven more by the need to amputate legacy packages than benefit regular coders. The remorseless release train has proved to be a cure more injurious than the original malady.
To the regular developer it now seems simpler to adopt Kotlin than tolerate Oracles efforts to incrementally transform Java into a more ramshackle equivalent. Like C++ before it Java is in danger of suffering a 'reverse Jenga' effect - where so much additional superstructure is welded onto unsuited foundations that the whole edifice collapses.
JEE, Microservices and the Cloud will duel to the death.
The news that Oracle had open sourced JEE seemed to merit barely a murmur of comment this year. How far the mighty have fallen. JEE veterans like me will remember a time when 'the answer is JEE - what's your problem?' was the dominant philosophy and Sun's JEE Architecture Diagram was holy writ. These days we selectively use individual parts of JEE like buzzards picking choice carrion from a fresh carcass.
The fall of JEE was mainly due to an inability to respond to innovations like Microservices, Reactive Design and Cloud Computing. Plus ever increasing competition from frameworks like Spring. The folks at Pivotal all but announced victory when they formally cut the umbilical with Spring 5, WebFlux, Project Reactor and Netty.
However just because there is a loser doesn't mean there is a winner. Spring now has to adapt to Serverless Computing offerings like AWS Lambda and Azure Functions. These new approaches are basking in the warmth of the sunny side of the Gartner Hype Curve, but there are increasing rumblings of disquiet about the vendor lock-in they entail.
So this will (hopefully) be the year that some clear direction emerges and we find a happy medium that allows services to remain vendor neutral whilst enjoying the same benefits as their leaner but locked-in cousins. There is still room for JEE to innovate in this space, but honestly I don't know if enough people still care.
Machine Learning will become part of your skillset.
In 2018, Machine Learning / ML entered the lexicon of even the most obdurate Enterprise Developer. Thought leaders like Google and Amazon proved the utility of ML internally and then opened up their toolkits for general use. The cloud offers the ability to 'try before you buy' and rapidly deploy ML models with as much scalability as you require. It's not that neural networks will replace conventional business logic, but instead models will be used to add back some of the contextual metadata that is stripped away when a process is automated. As with cryptography, the low level details will need to be encapsulated by higher level libraries for common use cases, so hopefully we won't all have to go back to maths class :-)
The browser will remain a beacon of joy and simplicity.
And if you believe that I have a bridge in Brooklyn to sell you :-) I don't know anyone mad enough to predict where the browser is headed but as I have ranted about previously the current state of the art seems to combine the simplicity of C++ with the type safety of Perl and a component model that makes me nostalgic for the simpler days of CORBA.
As we demoed at the September BASH there are frameworks like Fable, Slinky and Kotlin.js that let you use server-side technologies in the browser, but impressive as they are I don't see them becoming dominant anytime soon. Although I personally favour Angular over React its the latter that seems to be gaining in popularity, mostly because its easier to get started with.
It does feel like there's a simpler stack just waiting to be mounted within the browser. Technologies like WebAssembly and RSocket show that it's possible to build a better mousetrap, but for the moment we seem to be content in our misery. Special mention is due to Typescript, which when combined with WebStorm or Visual Studio Code almost makes the browser feel like a sane programming environment.
That's all I see in the scrying bowl for another year. Hopefully it won't sound too ridiculous when I review it in 12 months time. As ever at Instil we are eager to hear from enquiring minds - especially those who feel like speaking at BASH :-) So feel free to get in touch if you take a different view...
Head of Learning