Generational Change
There's really only 1 candidate for the story of 2023 in technology, and that's AI. It's everywhere, and doesn't look like it's going away any time soon. Every organisation is busy adding it to their products, or figuring out how to use it most effectively. We know it's going to be transformational but we're yet to see the full benefits.
As Bill Gates famously said, “people overestimate what they can do in one year and underestimate what they can do in 10 years”. Generative AI made a huge splash when it arrived in late 2022 and 2023, but the real impact begins now, and it'll take the next 10 years to see how it really pans out.
A frequent point made about AI tools right now is that they allow you to write code faster. While this might be a good thing, we should remember that writing code is only a small part of being a software developer - the speed with which you type is not the limiting factor. Finding the right place to use AI tools so they accelerate delivery of product without reducing the quality is our real challenge.
From a learning perspective, we're thinking about how we integrate Generative AI tooling into our courses, and how we balance the need for learning how to write code with the need to use these tools to accelerate development.
A new Generation of Developers
The Cloud migration journey has only just started for a lot of organisations. The relentless challenge to avoid “undifferentiated heavy lifting” will continue - expect cloud providers to keep rolling out new serverless offerings, Infrastructure as Code (and From Code) enhancements and AI Assistants as they carry more responsibility for development teams.
The promise of serverless services like AWS Lambda remains loosely-coupled actions that can be easily glued together. Combine this with the rise of modern low-code platforms and we could see a whole new generation of software developers – people without formal software engineering qualifications yet deserving of the title of Developer. And of course, conversational UIs driven by Large Language Models will play a part.
These new developers will change the shape of digital product development, and we need to be ready to welcome them into the industry.
Programming Languages are Boring
While there’s always innovation at the edges, the mainstream programming languages seem to have reached boring status in 2023. Boring is good. There’s a pattern of reasonable and steady improvements over the year – it feels like most languages are growing alike over time.
On the JVM
Java 21, the latest LTS support version was released in the summer with some useful upgrades – I particularly like the support for pattern matching and record patterns. We’re also seeing it borrow features from other JVM languages, for example, unnamed classes allows a bare main method like Kotlin.
Speaking of Kotlin, 2023 saw its multiplatform support become stable and production ready making it an excellent candidate for cross-platform application development. We'll see whether Kotlin 2.0 with the new K2 compiler makes a big difference in 2024.
Meanwhile, in Browsers
TypeScript continues to be our go-to language at Instil - after a meteoric rise in previous years it has become the default choice for many projects. My only complaint is it suffers from the state of constant churn in JavaScript tooling.
On the front-end 2023 saw a rolling back of the Single Page App pattern - it's beginning to look like that era is ending and we're returning to the more traditional pattern of serving HTML to browsers and enhancing with JavaScript. Modern Web API support in browsers make it possible to build high-quality applications without using a browser-based framework at all – perhaps in 2024 we'll see more lightweight frameworks challenging React as the default choice.
And elsewhere
Python continues to maintain its popularity. We don't often choose it for our projects, but it's been a regular delivery on the training schedule. The last few updates have brought speed boosts and static typing enhancements, and new languages like Mojo are pushing boundaries which might enhance its appeal, particularly for AI driven applications. Microsoft adding Python to Excel might have a big impact on people who programme but who don't call themselves Programmers.
Languages like Rust, Swift, Scala and Go continue to be niche (at least from my perspective). It's difficult to see how any one of them could grow significantly in popularity in 2024.
Great things happen when we work together
There's a definite back to the office theme in the air. Late 2023 saw plenty of news stories about organisations mandating a return to full-time office work. Like many tech companies, Instil is maintaining its remote friendly position, but we retain our office space and encourage folks to come in.
From a training perspective, we're seeing an increase in in-person requests too. I'm enjoying being back in the classroom more, but it’s clear that in-person can be challenging for some. The shift to remote working increased the opportunities for individuals with diverse health, family or learning needs. I'm optimistic that the new era of office work we will maintain that level of access by working to retain those opportunities.
Quality of Communication continues to be the key differentiator between teams who produce average and great software. Modern tooling has made collaboration easy no matter where you happen to be sitting, but there's no doubt that being in the same space makes certain types of collaborative work much easier.
Do the Right Thing
Security and secure programming continues to be of vital importance. If you aren't threat modelling in 2023 you should be in 2024. In a similar vein, being aware of ethical decisions you make with your code will only grow in significance, particularly as we see the rise of AI tooling and the implications of bias in training data sets. Software is increasingly significant in all areas of life, raising the importance of getting security and ethics right.
A new year. A new beginning. And things will change 1
The one thing we can be confident in is that nothing stays the same, and we can be certain that 2024 will bring surprises, but to recap, I think
- AI will continue to dominate our thinking, but needs to find its sweet-spot
- Cloud migration continues apace and new services reduce the need for low-level coding
- Low-Code + Serverless + AI = Developers who aren't programmers
- Which programming language is best? Doesn't matter, they're all good now.
- Work remote? Work in office? Doesn't matter, work together
- Security & Ethical requirements continue to grow in importance
- Taylor Swift said this…↩