It is traditional at this time of year to stick your neck out (turkey style) and foolishly make prophecies about technology trends over the next 12 months. So having girded my loins and doused myself in flame retardant I humbly predict the following.
.NET Will Continue To Decline
As was memorably said in the ‘programming languages as weapons’ article C# is a laser rifle strapped to a donkey. When you take it of the donkey it doesn’t work as well. We see a gradual move away from .NET by companies small and large, mainly because of all the FUD around where Microsoft is taking the platform. Java/JEE may be being fragmented and pushed in all kinds of weird ways but the unspoken assumption is that one of these will pay out, whereas the proprietary nature of .NET offers no such guarantee (even with the increasing movement to Open Source). This could of course be reversed by innovation, direction and leadership from Redmond, but none seems to be forthcoming.
The JVM Language Wars Will Remain
There seems to be end in sight to the JVM language wars. Scala adoption is increasing, but Clojure remains a big player and Kotlin will have more of an impact once it hits version one. More Java developers will be converted (or compelled) into functional programming using version 8 but this will most likely only fuel the debate rather than settle it.
Microservices Will Become Huge
We are about to reach a tipping point where every service will become a Microservice and every deployment into the Cloud. The synergy between DevOps, Microservices and Cloud Computing is too strong to be ignored and the benefits too obvious. As ever though expect tool vendors to jump in with both feet, consultants (ahem) to over egg the pudding and an inevitable backlash toward the end of the year.
There may be some wishful thinking here but hopefully market economics will triumph over hipsterism and the browser environment will settle down into ECMAScript 6 plus one or two UI frameworks for SPA’s. There wont be a mass adoption of JS on the server side but it will continue to leech into other areas of software engineering.
You Will Do Type Driven Development & Property Based Testing
As Dependent Types (in Scala, F# etc…) and the Idris Language enter the developer zeitgeist the use of ‘real types’ in programming will become the next big thing. The ability of compilers to detect and disallow method calls in invalid contexts will make unit tests much shorter by removing the need for boilerplate test cases. Also the use of generated test values to expose the ‘unknown unknowns’ in test cases will become more appreciated and widely used.
Formal Education Will Be Increasingly Irrelevant
Degrees in IT are becoming ever more expensive whilst yielding ever fewer benefits. Enthusiasts who have participated in coder dojos, coding camps (like the Festival Of Code), internships, open source projects and online courses (like Coursera) are much better placed to enter the industry than those who have taken a traditional academic route. As this becomes increasingly obvious employers will turn to STEM programs and apprenticeship schemes as vehicles for recruiting developers.