Back in ye olden days (circa 2015), I first wrote a December article that made unreliable and vainglorious predictions about the future. What started as a yearly custom soon became an annual tradition. You might like to review my 2020 effort to see how reliable my crystal ball is.
Here we go again
Personally I am stunned at the speed with which this year has flown in. It feels like everyone was continually busy, but no one had much time to achieve anything. Despite the pandemic, the industry continues to expand rapidly, in terms of both people and technologies. Little surprise then that every established language and framework had a good year, despite new competition emerging. As a result we’re going to be sorting through an embarrassment of riches.
Sing this corrosion to me
In terms of increasing adoption, developer happiness and general hubbub, Rust has made the most progress in 2021. It has consolidated and expanded on the gains from last year and is now taken seriously by everyone. Coming to a project near you soon. That being said, there’s many a slip twixt the cup and the lip.
The big challenge for Rust will be maintaining its identity as a broader cross-section of the developer community use it in anger. Its opinionated stance on FP, memory management and concurrency will inevitably have detractors. This will lead to squabbles over direction, in the same way that Sun and IBM used to grapple for the heart and soul of Java. The Rust community has already had one public fracas this year, which hopefully will not be the start of a trend.
Kotlin me. Kotlin you? Aha...
Kotlin had another good year, at least when seen through my biased lens. The process of harmonising and consolidating the different compilers around a common core is complete, which frees the language team to move onward. In June JetBrains released a survey for new language features which, whilst not binding, teased enhancements that would greatly appeal to TypeScript coders. The Arrow library went to version one, multi-platform adoption stories are now plentiful and JetPack Compose is ready for production. All of which should consolidate Kotlin’s existing position. But a lot more work will need to be done to sell Kotlin JS and Native in virgin pastures.
Sweet types are made of these
However taken we might be with Rust and Kotlin it’s TypeScript that, for the second year running, secures the top spot as most impressive language. Features continue to be added, tools continue to improve, applicability continues to widen etc… We see TypeScript becoming the default choice for new projects in the browser and on AWS (via Lambdas, the CDK and CDK Patterns). As with other languages this is evolutionary rather than revolutionary change, but no less impressive for it.
Never gonna give you up...
The ‘old guard’ of languages are still going strong. The release of JDK 17 is a huge deal, and there is a massive push by vendors to strong-arm clients into upgrading. For their own good of course. The language and JVM enhancements are precisely what Java needs to prosper for another decade, so I say good luck to them.
Python continues to flourish, although the momentum from a few years back seems to have drained away. It remains an excellent general purpose language and the default choice of QA teams and researchers everywhere. We see new projects making use of type hints, which could fundamentally change how folks think about the language.
Scala retains its existing market. But the move to Scala 3 doesn’t seem to be happening with any great urgency. Meanwhile the community retains all its existing issues. Of all the languages I am familiar with Scala is the one that seems most in danger of snuffing out its own candle.
Finally C# and the .NET Platform continue to endure, but change is in the air. F# now has the support of the .NET gurus, but has yet to spread to the rank and file. Visual Studio Code is widely loved but is eating its big brothers lunch, resulting in some controversial choices. More generally the ‘walled garden’ around the Microsoft ecosystem is slowly breaking down, as evidenced by the latest release of Visual Studio including support for Angular / React / Vue projects without any .NET.
We built this city
As regards platforms and frameworks we don’t see a lot of movement in the established favourites. React and Angular continue to duke it out in the browser, with the advantage now going firmly to React. AWS remains the Cloud / Serverless platform to beat, but Azure also has strong adoption in Ireland and GCP scored at least one very significant local partner. We don’t see any of the above changing.
The one really big constant is Spring Boot. Despite its demise being widely anticipated, Spring remains the darling of Enterprise IT and exhibits no signs of decline. On the contrary the uncompromising shift to JDK 17 and Jakarta EE 9 shows how Pivotal are determined to keep Spring positioned as a modern alternative for Cloud development. The biggest challenge remains how to move existing teams from MVC to WebFlux and JDBC to R2DBC without them being beguiled by more streamlined alternatives.
You pay my rent
I cannot praise Space and IntelliJ without being accused of shameless bias. Which is fine because it’s true. The big news in that world is the release of Fleet and support for remote development across the whole IntelliJ product line. This will compete with Visual Studio Code Web and the emerging market in online coding (and no-coding) environments.
Distributed development looks set to be the rule rather than the exception, regardless of how long the pandemic endures. So it’s not surprising that fully online development environments become mainstream. This will hugely simplify on-boarding issues and standing up new projects, but those with poor connectivity will be marginalised even more than they are now. Of course a hybrid approach would be best, as long as this doesn’t lead to “it worked in my cloud” issues…
To summarise what I predict for 2022:
- Rust will grow even faster, but tip into the Trough of Disillusionment.
- TypeScript, React and AWS will continue to go from strength to strength.
- The adoption rate of JDK 17 will be a key indicator of Java’s future.
- .NET will keep changing to align with the rest of the industry.
- Our workspaces will permanently become ‘distributed first’.
Tune in December 2022 to see how much egg I have to wipe off my face.