Given Github's (Microsoft's) strong push towards thin-client (cloud based development) and their recent AI aided development tools, what according to you will be the development trends in five to ten years time.
AI driven anything these days doesn't show a lot of promise from my observations. Getting any voice activated service to do basic things requires speaking like you are programming and even then its hit or miss. How long have those services been around? I don't anticipate much progress in 5-10 years.
Sure a Hello World app might be do-able by AI but any complex business logic is going to be done incorrectly. I work on Rails and how many times do I use scaffolding? small prototypes is about it and those don't live long.
There are lots of developers that don't like IDE's, like myself. I've been burned way too many times by them doing things I didn't intend. Unless it delivers on all its hopes and promises, AI tools will end up being a neat trick and then be a distraction.
There are some shops that use bleeding edge stuff and then there are probably like 90% of shops that stick with what works. Think of all the software developers working at banks, insurance companies, Fortune 500, etc. In 5-10 years developers will mostly still be doing the same things they are doing today.
- Something lightweight (and simpler) will replace K8s. It's probably not gonna be a new technology per se, but something we already have but used differently (just like HTTP/REST took over the Soap/XML world; we had it in front of us but we weren't looking at it)
- Something else will replace Agile. I'm afraid it will be even worse (some kind of movement driven by people who want to sell books and conference talks), but on paper it will look way leaner than current Agile practices
- By 2030, sexy third-party services that we use today and that take some core functionality of your business to the cloud, will look like legacy stuff that is very hard to maintain (more than the usual legacy code that you own). Hopefully this will lead to less SaaS and more "let's build a library for that" or "we actually don't need that, let's talk to the client"
I think Codex/Copilot is the beginning of the end for software development as we know it. In 2025-2030 the majority of "programming" will consist of feeding business requirements to AI models in the form of natural language and screen design tools, then performing tests to ensure the end result conforms to specifications.
Here are some reasons why I think this will be the case:
- Codex is an extremely low-effort first attempt but it already works for simple programs. It's capable of generating syntax errors, yet this shouldn't be technically possible if it's language-aware (it should know exactly which tokens are illegal). They literally just trained a language model on source code with no considerations for the domain. This means there is a lot of room for improvement, even without advances in ML.
- Codex is not programming as humans do, it's actually doing something much harder. Most software (for end users at least) is designed to display 2d graphics, text and interactions, yet Codex knows nothing of this entire modality. This means its capabilities should increase massively once these modalities are incorporated. It's clear that OpenAI is already pursuing this direction with CLIP/DALL-E
- Source code is actually not a natural representation of software programs, but an abstraction for humans. A more natural representation of software is the syntax tree in the compiler, or maybe a finite-state-machine. The upcoming graph/equivariant transformers should work a lot better in this domain.
- "Worse is better". It doesn't matter if the AI system is sometimes wrong, as long as it's cheaper. For businesses it's more cost effective to hire a low skilled human who can wrangle Codex 3.0 compared to a skilled human at FAANG salaries.
It's early days for this field. Given the current pace of progress I'm pretty certain that in 10 years almost all repetitive, non-creative programming tasks will be delegated to AI systems (eg. current "CRUD" patterns). The "real" programmers will move up the stack and become more like system architects.
Even if we can get rid of the repetitive programming tasks, that still leaves a lot of software development work to do. Someone needs to specify the behavior of the code, either by writing tests or some other way. Those people will need to understand the technical and human environment the software runs in so they can specify the right behavior.
> For businesses it's more cost effective to hire a low skilled human who can wrangle Codex 3.0 compared to a skilled human at FAANG salaries.
For the businesses for which that is true, they aren't paying FAANG salaries already.
For the businesses paying FAANG salaries, its not true, or they would be paying lower salaries and accepting not getting quite at the top of the human talent pool.
> Given the current pace of progress I'm pretty certain that in 10 years almost all repetitive, non-creative programming tasks will be delegated to AI systems (eg. current "CRUD" patterns).
Sure, but the repetitive, non-creative tasks of programming from the 1950s (or even 1970s) have been delegated to automation already. That's what always happens with programming, increasing the value of each unit of human labor and increasing the scope of tasks to which programming is applicable.
It’s what automation does in other fields to, but it transfers some of the work to automators. But when you are automating programming, that transfer is (on a broad scale) something of a no op.
> For the businesses paying FAANG salaries, its not true, or they would be paying lower salaries and accepting not getting quite at the top of the human talent pool.
Maybe, but the FAANG interview process is pretty noisy, also not everyone at Google works on search, there's plenty of basic/repetitive work. In any case, AI coding will probably accelerate the bifurcation of compensation that we already see today - a small percentage will have even higher compensation but the majority will see lower compensation and higher competition.
> But when you are automating programming, that transfer is (on a broad scale) something of a no op.
I don't think this is quite right. Every rung of the ladder up the abstraction stack - from punch cards to assembly to compiled languages to interpreted languages - is qualitatively different. Even today there are separate people doing assembly on embedded devices vs web dev, and there's almost no overlap in skills.
AI coding will be another step up the abstraction stack, and I'm predicting that it will be qualitatively different as well. ie. there will be a different group of people who excel at this type of coding, once the syntax becomes irrelevant. What it means to be a good coder will be different in this domain as well, probably with more focus on soft skills.
We are going to be replaced by unaccountable artificial systems, which will surpass us in economic usefulness, then intelligence and finally material power.
We are going to be living in an I Have No Mouth But I Must Scream world of our own design.
Better that we destroy this technology before it is too late.
Sadly this is impossible for game theoretic reasons.
Nature hates us and demands our replacement.
When you name-dropped "thin clients" my mind immediately flashed to an MIT Athena style diskless, netbooted env. Every workstation silently running a fanless, ultra low power 8GB RPi4 era board with dual 4K display. Any one can log into any workstation, and have their custom lightweight Qt-based desktop appear. With all necessary dependencies baked in server-side, to support the backing (arm) cpu / gpu / tpu private cloud clusters.
With the surging popularity of no-code / co-pilot / ???, one sort of shudders to imagine the devenv of 2030. Humans taken out of the loop. Everything locked down. Natural language activated. Deep RL generated. To paraphrase Lester Bangs about the demise of rock and roll, computational liberation is in a very dangerous place right now ;)
What strong push? You make it sound like not using Github CLI, for example, makes you old school. Cloud9, repl.it etc have been around for a while and are still mostly obscure.
People are still using SVN, Angular.js, Eclipse/vim/Visual Studio and all sorts of good ol' boring tech out there. Even cool kid tech like React or Golang are older than my kids.
Hashicorp stuff seems to be consistently gaining popularity though.
I was referring to the recent Codespaces announcement, not Github CLI. The one where someone was able to reduce dev environment setup time from 45 minutes to 10 seconds.
Sure a Hello World app might be do-able by AI but any complex business logic is going to be done incorrectly. I work on Rails and how many times do I use scaffolding? small prototypes is about it and those don't live long.
There are lots of developers that don't like IDE's, like myself. I've been burned way too many times by them doing things I didn't intend. Unless it delivers on all its hopes and promises, AI tools will end up being a neat trick and then be a distraction.
There are some shops that use bleeding edge stuff and then there are probably like 90% of shops that stick with what works. Think of all the software developers working at banks, insurance companies, Fortune 500, etc. In 5-10 years developers will mostly still be doing the same things they are doing today.