Are there no aspects of programming that present any sort of challenge to you? Lockless concurrency? cryptography? The various things that the AI community has been struggling with over the last quarter-century?
The same tired argument has been made every decade since the 70s, with mostly the same cast of characters: artificial intelligence, English somehow being used to specify the behavior, stock libraries of code, etc. I think we're about as far from it today as we were when Prolog was a big deal.
The amount of incipient complexity in programming has been growing, not going down. What's more complex, "hello, world" to the console in Python, or "hello world" in a browser with the best and newest web stack? Mobility and microservices create lots of new edge cases and complexity—do non-programmers seem particularly well-equipped to handle edge cases to you?
The problem has never really been the syntax—if it were, non-programmers would have made great strides with Applescript and SQL, and we'd all be building PowerBuilder libraries for a living. The problem is that programming requires a mode of thinking which is difficult. Lots of people, even people who do it daily, who are trained to do it and exercise great care and use great tool tools, are not great at it. This is not a syntax problem or a lack of decent libraries problem. We have simple programming languages with huge bodies of libraries. What's hard is the actual programming.
What counts as a wildly challenging idea in applied computer science? A new programming paradigm? I actually can't think of anything I would drop everything to pursue right now, and I suspect most people are the same way. I think it's naive to assume everyone would do something wonderful if only they were unfettered by corporate shackles. For most people writing a good ORM or programming language would be an achievement.
You're likely being down voted because since the invention of programming the field has been continuously becoming "easier" often by leaps and bounds. However, programmers always remain at the edge of the boundary so there is continuously more work for programmers, not less. Every component of what made things "easy" can be improved by making it more flexible, performant etc. and doing this most believe will always require a skilled programmer.
But to play devils advocate, if we were to create true artificial intelligence (I guess it would just be intelligence at that point) then not only would programmers be obsolete, but all of humanity would be obsolete. We'd all just be WALL-E style mouths to feed. This seems difficult to imagine, but we already see it happening in some ways. Unemployment is high almost everywhere and there's no fundamental economic law that every human on the planet can contribute sufficiently to match said human's consumption.
Essentially what this means is we have two pretty rough options. First, all of these people fall under the welfare state. The homeless and hungry all get what they need through governments, NGOs and charities. The other is the Darwinian approach, nature's great equalizer. Both of these options suck pretty hard, but that may be the world we're looking at until our robot overlords turn us into batteries (although it's more likely we'd become pets if anything at all).
Nothing in two million years of evolution programmed us to do programming. There is no common abstraction between it, and ape-on-the-savanna type problems.
Yet, nearly every human being can be taught how to program... But we aren't anywhere close to building an AI that can.
Programming is hard mainly because its open ended. Its not a well defined finite problem. The domain of application keeps expanding and the logic required to organize information flow keeps getting more complex and varied.
It all started as the serial, offline processing of numbers emulating some aspect of the world. Since then you have the major but still largely incomplete revolutions with real time, interactive and concurrent applications.
The metaphors have long stopped being numbers. LLM's pretend to encode human language itself. Our entire semantic universe, to the degree it is externalized, is slowly codified and mapped into bits.
You also have the deepening of the stack. It started with simple machine code but now you can have like four layers of abstraction to help our poor brains manage torrents of information flows between very complex pieces of hardware.
So yeah, programming is hard because we are pushing hard to find the limits of what can be done with digital devices.
I dont think we are even halfway there yet. Its going to get much harder :-)
Think about what it must have felt like going from statically typed languages to dynamic languages. Or even something like the jump from assembly or fortran to C.
In fact you can go back and read some of these accounts. It felt to them like the end of programming, that any lay person could now do it. One generation passed and then everyone just understands that to be what programming is, and assembly seems like some kind of ancient wizardry done by the ancestors.
This is what is going to happen with AI assisted programming. People will still resist using it, the way people resist taking a few months out to learn how to use python. Most people are also not that interested in taking a few hours out to learn how to program with chatgpt.
For people who are willing will become the new programmers, A stakeholder will ask for something and you'll turn around and ask for nearly the same thing to an LLM or other model. It seems easy but so does googling, AI is like one step easier past that - and for now you still have to make minor corrections like you would with a stackoverflow post.
The moat on programming is not difficulty. It's been quite easy to learn programming for the last 5 years or so. The moat is the desire and interest to learn. As long as programming still seems fun to you, this is just what programming is now.
Instead of worrying, learn to use it to extend your abilities early and you'll have a huge edge. Many people are still fighting AI tools. People fought Linux, hard for about the first 10 years of it's life before it started getting really deeply integrated into every company. I suspect we'll see some version of that with both companies and individuals inside companies.
Firstly, no-one is suggesting we get rid of the hard programming. But actually, I disagree with your point of view.
I do research into A.I., and often work with companies. I find problem fall into 3 categories. Approximately:
50% of problems are extremely trivial problems which we've know how to solve for at least 10 years, we just need to help the companies use the existing techniques.
15% of problems require techniques from the last 10 years or so, so require extensive up-to-date expertise but aren't interesting research.
5% of problems are interesting, hard problems which lead to interesting research problems.
30% of problems are so far beyond the state of the art they are impossible.
Helping people in that first 50% solve their problems without having to talk to us is an interesting area. At the moment they use tools like Excel and Microsoft Access. I believe there must be better tools for those problems, which aren't any more complicated. Why can't my mother easily produce (for a concrete example) create and update a schedule for her darts league, without needing me to help?
Imho programming is just a medium of reasoning. In that vein I find arguments like this odd.
As I believe they day there is no more need for humans to be involved in any programme , is the day there is no more need for any reasoning by humans. Not something that seems likely to me.
Then again this article comes from someone developing AIs… how could that not be lofty…
Your post doesn't make sense to me and I think it's because you misunderstand what programming actually is. Programming, at it's core, is just the act of giving the computer commands to execute in a certain way. There is no way to automate a process using a computer without using programming. So what you suggest, is only possible in two ways. Build an artificial intelligence that programs for us and decides what we want or somehow code a piece of software that can solve any problem and automate any task. Neither of which are currently possible or really desirable (imagine the bloat of the software).
Everyone should learn to program, even at the highest level of abstraction (python, visual basic, SCRATCH), just so they understand what the tool (computer) they have in their hands is capable of.
People go through their everyday lives not even considering automating certain tasks because they haven't been exposed to what programming can do. People go through their days not understanding when they are being ripped off or blatantly stolen from. They don't know what is secure and what isn't. Learning to program solves these problems.
To quote Ben Franklin
"Those who give up their liberty for more security neither deserve liberty nor security."
Disclaimer: I am slightly biased. I don't agree with what Steve Jobs stood for. I don't believe people should become mindless content consuming drones nor do I believe in walled gardens. If I buy 3 acres of property I don't want to be locked in .5 acres because of a damn hedge.
For some reason programming is not getting any easier, I can even make an argument its getting worse despite all the improved tooling and andragogy investments we have done.
Programming is in some sort of local minimum and we keep going in circles. Few years ago I watched this talk by Gerald Sussman: "We really don't know how to compute" - https://www.youtube.com/watch?v=HB5TrK7A4pI and it made me question my views on what I think programming is.
I dont know if its because people are afraid to try new things, or there is no funding to try new things, we are kind of stuck. People thinking "don't reinvent the wheel" and for some reason think we have built a wheel (as Casey Muratori says: https://www.youtube.com/watch?v=fQeqsn7JJWA). We have a square at best. There are so many problems in the world, and a lot of them need robust and resilient programs to be solved, e.g. self cleaning public toilets or worm farm that you feed bio garbage and it produces protein flour.
The challenge is exactly the same as it was 80 years ago, manage complexity in chaotic and emergent systems: chaos, complexity and entropy as the poet said. And to be honest, I think we have gotten worse at managing all of those, most bugs that we encounter now is like a murder mystery from Detective Conan and it requires Shinichi Kudo level of deductive reasoning to figure out what is going on.
Programming will remain hard if you keep thinking it is just a translation problem from a "business requirement" to a "computer language".
Just because we have Linux, Python and JavaScript doesn't mean nobody's playing with assembly and experimenting with new ideas at a more fundamental level.
I have a suspicion that the sort of people who think they wouldn't do something hard just because other people have it too easy weren't going to do it in the first place.
Things have not stayed stale for the past 20~30 years, in fact, state of programming have not stayed stale even in the recent 10 years.
We've been progressively solving problems we face, inventing tools, languages, frameworks to make our lives easier. Which further allows us to solve more complicated problems, or similar problems faster.
Problems we face now, like concurrency, big data, lack of cheap programmers to solve business problems were not even problems before, they are now, because they are possible now.
Once we solve those problems of today, we will face new problems, I don't know what they would be, but I am certain many of them would be problems we consider impractical or even impossible today.
I doubt the point is that "Booho things are too easy for you! :(". The point is that there's nothing interesting for a "old-school" programmer in the world we're progressing towards.
People who don't want to learn how to program can always find a reason why not to. This time it's AI, last time it was that tech was over because the Internet Bubble burst, the time before that it was that all the programming jobs were going to be outsourced to India.
[I purposely didn't mark that as a quote. Seeing the entirety as if it was written by a different Paul shows its emptiness.]
Programming will definitely remain hard and thought-requiring. I just don't want to waste another minute of my precious life thinking about edge-conditions at the start and end of a list or array. And I don't want anyone else to do so either. I'm sure we'll get there some how, although it definitely may not be me, but doesn't stop me from giving it a try!
reply