139 comments

[ 3.1 ms ] story [ 268 ms ] thread
Probably worth a disclaimer, somewhere:

"I'm the author of Python Crash Course, which is published by No Starch Press: https://nostarch.com/pythoncrashcourse2e" - author and OP

I actually thought this might have been written by ChatGPT.

Part of the answer is that "you should learn to code beyond basic syntax, so that you can be better than the computer".

What it doesn't mention is that the state of AI is also going to continue improving, so you're possibly entering an arms race.

It could be sad if one day AI can do anything. One of those cliche "what's the point". No joy anymore in building.
I play chess and like it, even though the computer in my pocket can win every human player.
If you said "hey I'm bored let's add more squares. Let's move some pieces around or maybe change their movement rules" or "let's play checkers instead" then a human could adapt to this situation pretty easily. A reinforcement learning model like AlphaZero would be like "Whoa whoa whoa not so fast. Let's fire up the GPU cluster." Maybe one day we won't need GPU clusters. But ultimately we're the ones who create all of these tools and decide how to use them.
Why do you treat humans so very different from AlphaZero here? Alphazero could badly play other games quickly, just like humans can. AlphaZero is just able to improve beyond what any human can ever achieve for a lot of types of games.
You don’t always need to have a point for your artistic activities or your hobbies. For example , people still use oil paint while photography exists, people learn piano when a computer does it better.

But professionally, we may have to find new activities.

> people still use oil paint while photography exists

It's not at all the same medium. Unless you consider that the whole point of oil painting is to imitate realistic pictures...

OK, people attempt photorealistic art when of course, the best they can hope for is to look as realistic as a photograph would.

As someone else mentioned, people play chess for fun. People do things that they will never be as good at as computers.

I don't buy this idea that people need to be the "best" at something to enjoy it. Living that way dooms you to always being unhappy

People could retreat to the physical world where AI is useless.

That being said, people still do things they're outclassed at. We still have blacksmiths.

I honestly think a lot of people in their twenties already do this. They’re not making much money but seem to be making enough to just have fun and pursue other things.

My brother has figured he can make a great living out of gardening for people. Yes robots will probably do this one day, but will they to the same level ? Really who knows anymore?

I’m actually sure a lot of the more wealthy people he works for kind of also just like him and his company too. He’s a youthful fun guy with a lot of creative ideas.

The silicone value push for eternal life via the singularity and trips to Mars seems to be mostly fuelled by cults and the need to keep shareholder happy / profits coming in.

I don’t know if anyone else cares that much, including the bots themselves. Time will tell.

Transformer models work on data. Text, images, and motor control can all be fed into the pit.
I'm the author of the post. I didn't feel any need to add a disclaimer, because if my book faded to insignificance tomorrow I'd still argue the same points.

It's really clear how useful these tools are to many experienced programmers, but I have no idea what impact they'll have on people who are new to programming. Most of the write-ups I've seen so far have been from people who already know how to code. I think it will be some time yet before we really see how effectively people who know nothing about programming are able to use these tools for learning.

> I'm the author of the post. I didn't feel any need to add a disclaimer, because if my book faded to insignificance tomorrow I'd still argue the same points.

You need the disclaimer. The reason why is because no one can read your intentions, they can only guess your intention from your actions.

By waiting until a 3rd party disclosed this information a little bit of trust was automatically lost.

This is not how a conflict of interest works.
> I didn't feel any need to add a disclaimer, because if my book faded to insignificance tomorrow I'd still argue the same points.

I believe you, but this really isn't how maintaining credibility with a conflict of interest works.

You also don't have to add a "disclaimer". Just mention anywhere that you wrote a book on programming. You can say it abstractly like that if you don't want it to be an ad. Considering how much this experience informs your argument, it should be pretty easy to work in.

And thank you for your book. I've recommended it to many people.

I was really surprised by people's reactions about the need for a disclaimer, and didn't know what to make of it for a while. I also watched the votes on my comment here go up and down quickly, indicating that some people thought a disclaimer was warranted, and some thought there was no need.

I ended up doing a lot of reflecting about the comments people made. I think I've gotten used to writing for an audience that already knows that I'm the author of PCC, and I start to assume that anyone else will see that quickly as well. Do I really need to add a disclaimer any time I write about the process of learning to code, or its ongoing relevance? I'm not asking anyone to respond to that, especially on an old post, but that's the question that I kept coming back to for a while.

I realize that a post like this, shared with a larger audience, at this point in time, warrants a disclaimer. I've been a member of HN for over ten years, and I value my reputation here. I'm sorry if I misled anyone as they went into reading this post. I didn't add a disclaimer right away because I've made a habit of not responding too quickly to feedback on the internet when I'm not sure exactly how to respond.

I ended up adding a disclaimer, but that was well after this had dropped off the front page. I didn't put off adding a disclaimer to mislead anyone, it just took a while to think through all this. I will be more careful about which posts need to include a disclaimer from this point forward.

I know few people will see this, but if anyone sees the surrounding comments after the disclaimer is there I'd like them to see this context. Thank you all for the critical feedback. As uncomfortable as it is sometimes, it's part of what I've always appreciated about HN.

The Substack is called “mostly Python”. I assumed the author is a programming educator or enthusiast of some sort.
I wish HN had pinned comments to save others time
I found myself thinking that yes, you should still learn to code, but no you probably shouldn’t bother to write blog posts about why you should still learn to code.
That’s right, use ChatGPT to write the blog posts.
Honesty I think tools like GPT are going to cause more people to learn to code, not less.

I've been using GPT to write very simple utilities in languages I am unfamiliar with, and for me, there's no faster way to pick up a language then to see an example program where you already know exactly what it does.

(Or is supposed to do, finding the small mistakes that GPT sometimes makes also helps learn things, ironically.)

Yes exactly. I had a specific project in mind, and ChatGPT was able to give me step by step instructions how to build it. It’s like having a private tutor. That’s transformative for folks like me that struggle to get through generic 12 week courses, but want their learning experience scaffolded around a project they’re already motivated to work on.
Do people learn more languages since translation tools exist?
I don't think that analogy works as it isn't about learning languages so much as knowing how to write (but I also can't quite fix the analogy, sadly).

A better one (but one which doesn't leave software engineering): as programming languages have gotten easier to use and tooling has gotten better making programmers more effective, more programmers have been needed to write ever more code despite them all having to expend much less effort if they were to merely do the same things... because, and this is key, the tooling now allowance people to tackle ever more complicated problems leading to new things that can be achieved.

I think it fits because ChatGPT writes code for you like DeepL and Google Translate translates for you.

Easier tooling is more like programms like Duolingo and Babbel.

If you totally trust the former you don't need to learn anything, the latter enforces to do something on your own.

Google Translate is translating for me, but it isn't reading for me. I think more people bother to both read and write more content of higher importance because of the existence of Google Translate, as it allows people of every language to have a wider audience and to waste less of their effort on translations of their content.

And that's where it is a complex analogy for me to use and fix, because I get what you are wanting to point at, and yet it doesn't seem like the relevant thing to measure.

I believe that large language models automatically writing code will result in many more programs existing of much higher complexity and I simply do not see how that is going to result in fewer software developers.

I do believe it will change how we do this job and the level of scale and abstraction we are dealing with, but if you think that the world of post-AI software is going to involve a bunch of people building stuff that looks as simple as it is today in 2023 just without software developers I think you are going to be surprised, as frankly you don't need a software developer at all to build most marketing websites people need--we solved that problem years ago with WYSIWYG tooling--and yet somehow every marketing website is now more complicated than ever before because the goalposts moved.

Imagine when every single thing you interact with is going to be some crazy 3D environment with animated characters providing immersive abuse^Hengagement designed to close the deal. Sure, you could just generate a static website for your project but that's so early 2020s it hurts, right?

And yeah: the team that builds that might be doing a ton of development using AIs but it isn't going to be just "outsource it to the AI" until the AI gets smart enough to replace us entirely and at that point we probably only have a few more years of being alive anyway ;P.

>I simply do not see how that is going to result in fewer software developers.

One simple reason: demand. If software developing is more than a hobby you need to get paid, and ChatGPT will be cheaper than entry level programmers, so it will be hard to get entry level jobs and the experience to reach the next level while getting paid.

ChatGPT has made me enjoy making games again. Trying to do something specific in Unity usually meant having to sift through old outdated forums or long videos. Now I can prototype ideas just by asking. Can't wait until this is built into Unity so it can assist with more than just code. Something like RunwayML but for game engines.
I mean you're ignoring an obvious trend. These LLMs are improving rapidly.

If the improvement continues, the LLMs can reach a point in skill where they can replace us. Your statement and this article is gambling on the status quo. That humans will always be better then AI.

Why is this causing so much of a ruckus right now? Pretty much everyone knows chatGPT is pretty stupid when compared to a human.

It's causing a ruckus because it's a herald for a possible future where the AI becomes superior to human problem solving.

It's not a unrealistic proposition given that chess AI and go AI has already surpassed us.

Using the achievements of machine learning (not 'AI') in chess and go, which are created, constrained game spaces, to tout the promise of 'a possible future where the AI becomes superior to human problem solving' is either the spruiking of a fraudster or the rantings of a fantasist.
Constrained game lol? You know arithmetic isn't constrained right? Computers can fucking beat us in arithmetic without even implementing an AI or utilizing machine learning. Let me put it bluntly.. you have to be a literal idiot to think a "constrained game" is a factor here.

Not only that.. your argument in itself is self defeating EVEN if "constrained games" WAS a factor. A machine learning system beat the best human humanity had to offer at a game that is fucking constrained? Literally, the more pathetically simplistic the task the worse Humans perform against an AI. That's the overall logic of your genius argument.

I think one thing is proven by your response. That basically certain people are just not smart or intelligent. You're pretty much below average. This isn't an insult. I'm just pointing out the truth here. I'm sorry but you can't even come up with a coherent argument against the "rantings of a fraudster." Consider measuring your IQ to verify.

Wow, straight off the deep end.
It's true that it would be helpful to be able to troubleshoot the code output of AI chatbots. What I've heard from friends is that ChatGPT is pretty good at troubleshooting itself — not automatically, but if you re-enter buggy output, it can often correctly suggest how to fix the bug. This won't always be the case, but it does seem to undercut the argument that humans are always needed to fix bigs. There may be other reasons, like optimization, that are more compelling. Or it's possible that AI will be good at that as well!
If ChatGPT had existed 20 years ago, things like React would never have been developed and all websites would still be using nested tables for layout.
...or ChatGPT would have come up with something like/better than React, and we/it would be using that now.
Has AI produced any novel technology yet that it wasn’t trained to do?
I feel like the fact this question is being asked in plain seriousness 4 months after the technology was made publicly available/known to the general public sends a different message than you meant.
(comment deleted)
Pretty sure they were asking rhetorically, because the answer is obviously not, since that’s not how LLMs work
Yes. Although over text it sometimes doesn’t come through.
(comment deleted)
(comment deleted)
GP’s hypo said “20 years ago”. I assume that in 20 years, AI will have created things more impressive than React.
But that would be totally unrelated to ChatGPT or anything resembling it. Sure, there could be another advance in AI, probably using another approach, but how is that different from 5 years ago?
But ChatGPT doesn't create new texts it remixes pre existing ones.

It reorders existing words but doesn't invent new ones

That is not how it works, at least not for any conventional meaning of “remix”. It doesn’t store a copy of all the text it has been trained on, and it doesn’t just mix existing phrases together. The easiest way to see that is to ask GPT-4 to invent a new word for a concept, which it can do quite easily.
I don't quite see what creating new words has to do with this, but ChatGPT is happy to oblige when you ask it to make up a new word.

In any case, I generally feel that discourse works better when people just remix existing words and concepts rather than rushing to create new ones.

That's not what generative AI does because it produces test that most like fit the prompt.

The probability for new concepts for any prompt is near zero.

> The probability for new concepts for any prompt is near zero.

That is actually what the "temperature" API parameter controls - set it to high and you'll get a high probability of new concepts, coupled with a high probability of nonsense. (I assume) It's like facilitating a brainstorming session and offering the participants edibles.

At least so far, language models have zero capacity and zero indication of capacity they can come up with anything. Or even calculate things.
Not sure what you mean by “calculate things”, but it’s fairly easy to see how language models can at least come up with new combinations of existing things that have never existed.
> things like React would never have been developed

Not entirely sure that would have been a negative outcome. React is horrible.

I don’t particularly like React, but I don’t think it’s horrible either. I also think it has introduced a lot of important concepts to a space that wasn’t particularly predisposed to them. It’s an overall good, even if it’s not my preference.
> Not entirely sure that would have been a negative outcome. React is horrible.

Oh sweet summer child. It's ancestors were so much worse. They had to deal with Microsoft Internet Explorer

jQuery. bootstrap. And if that doesn't strike fear in your heart, ANGULAR!

Aw come on jQuery was fun! Remember those big long chained commands? Remember how suddenly you could just select anything off the page, using cas selectors? Remember how much easier ajax and animation and dom manipulation and events were with jQuery?
Meh, to a point. Once things crossed a certain threshold of dynamic behavior the state handling became a nightmare. Now, arguably few services needed that much dynamism.
Hard disagree. Front end development was an order of magnitude easier better faster before FB pushed React into the dev mindspace.
No one is stopping you from going back to jQuery. But there's a reason the world moved on to React and others
The main reasons being facebook’s popularity and herd mentality.
You think that's the only reason React took off? Have you ever tried to build a complex web application using only jQuery?
Yeah, I've done it many times successfully, drag and drop interfaces, form builders, dynamic form inputs, animations, etc. It's 10x easier with vanilla JS and sprinklings of jQuery.

Believe it or not, gmail was a much faster cleaner better interface before they switched to Angular, and FB worked much better and was way less buggy and slow before they switched to React. The reason the mega-caps pushed their use was to offload processing power to the client, which saves them server costs. Front end JS frameworks don't solve a problem almost every other company has, hence why they had to be pushed by FB/Google, and didn't grow organically from the open source community.

I suspect when you want complex modals and chat dialogs you'll notice jQuery starting to bend under the weight. It can be done, though not as well as more modern, albeit large frontend tools.
No. Both of those things can be done with light JS use. A framework is definitely not needed.
It seems to me that Facebook has put out many many open source libraries, but React is the only one that has taken off in a bigway outside FB. People generally scoffed at FB technically since they were built on PHP.

I think bringing the functional programming approach and princinpled state management to frontend was just something that the time was ripe for.

(Also React was much different back then, before hooks, etc).

I always use sprinkles of jQuery over React/Angular/Front End Framework de jour if given the choice.
These tools you mention are worse but that doesnt mean react is great. The two statements dont negate each other.
If ChatGPT existed 47 years ago programming as we know it never would have been invented, and we'd just ask our room sized tabulation machines to kindly do payroll.
Just to nitpick, Fortran is pretty much "programming as we know it" and was released 66 years ago (in 1957).
I was going for the invention of fortran, I just did the math very incorrectly
I don’t have a dog in the AI fight, but it seems pretty plausible that React’s core concepts would have been part of a hypothetical 20 years ago training set. All of these were part of at least academic discourse:

- Algebraic effects

- DSLs designed to be expressive and statically analyzable

- [Thing] as a function of state (I’m not sure how much this was applied to UI specifically, but if I had to take a wild guess, probably)

- Abstraction of declarative definitions from computational instructions

If anything, I think a declarative UI model could have come much sooner if there weren’t such deep investment in other techniques. Not that a hypothetical AI of the time would have arrived at that, but I definitely think it had enough training material to go on.

Lishten, money penny, just because we have face swapping technology and voice cloning technology and deep fakes does not mean I shouldn't practice my Sean Connery impression. I admit, I may be somewhat shaken by these recent developments but I'm not shttiered.
My view is that even if AI can program really well, it can't architect full solutions, you still need to tell it specifics and test/debug its output (at least for now). It's like if you're a farmer and you got tractors, you don't need to till and harvest anymore but you still gotta drive it and press buttons and even if tractors drove themselves and pressed their own buttons you gotta supervise them and maintain them.

I think people being less eager to be programmers will only help with increasing wages lol

A single crop harvester can replace 30 farm workers. If programming is going the same route as your farming example then we're in for a shock. The complexity and scale of software increases every year so I wonder if AI will be able to keep up or if there will always be a need for specialized roles.
Coding is a small percentage of a programming job, I don't write more than 100 lines / day, GPT tools are also very late to the party of code generation, it's been 40 years of development in this area.
Yeah but not everyone affords a crop harvester and even then you have less farm workers not no farm workers.

I think there will be less demand for programmers and more demand at lesser pay for the top quintile of talented coders. There will also be ML managing/engineering/monitoring type jobs that will require you to know how to code. Various other disciplines will also have knowing python and shell scripting a requirement.

The only thing that will get decimated is the need for a 10:1 ratio (making that up for the record) between coders that stitch software and suck at debugging and coders that sre debugging ninjas that can identify issues GPT* hallucinates.

The next stage of decimation is a long way off when GPT is able to be integrated into the production monitoring tooling, debug on it's own and answer questions like "why is your code slow under these circumstances? And why does it randomly crash?" Right now operations/sre/users ask that of the programmer. I don't believe GPT is anywhere near being able to reliably answer those questions because if it were, why emit such code to begin with? You would be able to prompt it to generate perfect code if it could do that, the code I have seen is impressive but full of flaws even a collegr freshman wouldn't make.

To me the question is the same as dalle-e replacing artists. Even whe the drawing is not weird or just messed up it still does not "wow" you, i mean technically it qualifies and for a machine it is impressive but it just feels mediocre to the most part.

I think in reality what you will see is GPT assisted IDEs giving new meaning to "code completion".

And you still need to run the software. ChatGPT isn't infallible and you will still push bugs or hit sudden scaling or perf issues. Maybe it can help debug at 2am but honestly I'd rather be debugging a system I built rather than one I partially copy-pasted in and didn't fully understand. The old fashioned way has the benefit of growing your own mind and making you "stronger and smarter"
My view is that even if AI can program really well, it can't architect full solutions, you still need to tell it specifics and test/debug its output (at least for now). It's like if you're a farmer and you got tractors, you don't need to till and harvest anymore but you still gotta drive it and press buttons and even if tractors drove themselves and pressed their own buttons you gotta supervise them and maintain them.

I think people being less eager to be programmers will only help with increasing wages lol

But does this mean no more stackoverflow? Not cool.

Learn to read code that you didn't write
This post is speculative. We're only 4 months into seeing the potential of LLMs with huge sets of training data.

4 months... that's it.

Wait 5 years, and during that time we'll know whether or not it's worth it to know programming. Maybe not even 5 years, give it 2 years.

GPT3 is from 2020. I know ChatGPT is slightly novel, but let’s not exaggerate.
I'm talking about the recent acceleration of changes, chatGPT, dall e, midjourney.

chatGPT and dall-e put fuel on the fire. Interest has spiked and additionally the industry and academia is matching the trend with an equivalent refocus of research efforts.

No exaggeration here to say "we don't know what will happen"

Dall-E was a few months later. I don’t want to be obtuse, but I am into this topic for quite a while and progress is actually kind of slow to me. Society is still hung up on (to me) minor and extremely uninteresting issues.

I’m getting tired of the “losing jobs” narrative. GPT4 is a worse coder than 3. What I’d like to see is some discussion about this tech disrupting the need for “leadership” and bullshit executives. IMO vast swaths of elites - GPTs tendency to hallucinate makes it the perfect politician - are becoming obsolete as their opinion and influence is no longer interesting / necessary. This, of course, will not happen. We will only replace workers, the rest will be fine. We won’t even talk about it.

Sorry for the detour and unsubstantiated rant. I deserve the downvotes. Taking the hit for the socialist team here.

Maybe we're 2 months away from the singularity or 200 years. Who knows? Until then you should be paralyzed with fear. Don't get comfortable!
No, you need not. Especially if you own a time machine. Its a matter of perspective, though.

Analogy:-

Because of a tool such as Grammarly, I no longer recommend my kids to bother when they lose marks due to minor grammatical mistakes on a handwritten test.

They better put that 80-20 to practice and learn to recognize aggressively reducing their efforts/tasks/work to 20 wherever possible.

Their English teacher disagrees with me.

Maybe, we do have a horse in this race.

This comment was edited in Grammarly, and it score a 67 out of 100 on readability.

(comment deleted)
Did you/Grammarly mean „scored“?
So you're the reason why the texts I receive from younger relatives are incomprehensible. You should listen to their English teacher. An adult using Grammarly to highlight their mistakes is different from a child relying on Grammarly because they haven't learned any better.

> This comment was edited in Grammarly, and it score a 67 out of 100 on readability.

I can see that. Your 80-20 sentence is poorly constructed, you used the wrong tense in "and it score a 67 out of 100". Other than highlighting the fact that Grammarly thinks you write poorly, what point are you making exactly?

The elephant in the room is that a lot of outsourcing jobs will get slashed first. Curious how this will affect the economy of countries such as india or other popular outsourcing destinations.
What makes you so confident its the outsourced jobs that will get cut and not the domestic ones?
This should be obvious. Jobs outsourced to India are jobs that can be specified rather precisely and require less interaction/requirements engineering across timezones.
As someone who is both a developer and currently occasionally uses GPT in the course of development, I skimmed this article looking for the one point I think there is to make on this subject.

I think the opposite of what people are worrying about will happen here. AI will create a feedback loop for developers, where there just aren’t enough humans to keep up with the work - exacerbating the existing problem of a shortage.

For me, LLMs can essentially replace large portions of my workflow: stack overflow, googling for examples, finding some obscure syntax, getting started on a problem when I’m coming from a place of little understanding. Assuming I ask the right questions in the right order and get the output running, it can drastically reduce my time to a working solution.

This is the same thing previous tools have done, but with a faster and tighter feedback loop. That will just amplify the primary pattern of software: with every solution we create new problems to solve. And every new abstraction has some hidden cost.

Mark my words: our near future problem as engineers is not that we can’t get jobs, it’s that we can’t fill them all. We will most likely find ourselves desperately chasing automation that never quite gets as automated as we need it to be.

Of course this is both good and bad. But it means that like this author, we need to encourage everyone possible to “learn to code” in some sense.

On the other hand, if it replaces large parts of your workflow, that means your work is now very different. It will perhaps be more about making strategic decisions, less about implementing the details. So depending on what type of work you are good at and enjoy, it can be a good or a bad thing.
Don’t forget that most companies want us to actually do more, there’s pretty much infinite creativity available. Faster and cheaper code delivery will probably lead to more code , more moonshot ideas to be involved in, more scaling issues, security issues and on and on.

There will now be more competition of course, more LLMs to build and maintain. More features to keep up with etc.

Also AI safety jobs will become more of a thing, could just be getting started.

…or it’s the end of all work!!!!!!

I have a similar take. I suspect at some stage “software development” will mean feeding business requirements (with some degree of precision) into the algorithm and letting it handle logic, resource provisioning etc. The last traditional programming jobs to go will be legacy software for critical infrastructure, defense, and financial institutions.

Communication skills and business domain knowledge will become far more important than what we consider “tech skills” today.

I doubt the world’s appetite for software will decline even when one person manages to develop in a day what used to take a team of people months. We’ll have a lot more work to do, and a lot more people will join the field.

However, on average, it might become a much less lucrative and prestigious profession.

> I suspect at some stage “software development” will mean feeding business requirements (with some degree of precision) into the algorithm and letting it handle

That’s just a higher level programming language… And we all know that it doesn’t solve things.

It actually does solve a lot things, in the sense that there’s a lower barrier for entry. A lot of lower-level programming skills are being abstracted away and obsoleted. My prediction may be wrong, but it’s based on the extrapolation of the trends you’re referring to.
High level languages like Python abstract away boring specifics like memory management and implantation data structures.

Natural language programming via GPT instead abstracts away the actual functioning.

I’ve seen colleagues use snippets from chatGPT that are horrendously inefficient despite being “simple” prompts. They look fine at first glance, but work only 50% of the time.

Oh, there’s no doubt this particular AI software is flawed. But I don’t think there’s anything inherent to AI that renders it unable to master specific frameworks or algorithms in future iterations. The timeframe is up in the air, though.
I’m not convinced it’s an AI quality problem - rather, the difficulty of translating natural language into machine requirements. This is an age-old problem, not even restricted to Computer Science.
I agree with the other comment responding to you. Consider SQL. A typical select statement with a join and a sort would have taken a team of people months to implement in an application-specific proprietary data-storage structure (perhaps a red black tree). Now it’s a trivial line of SQL. Like the top comment said, this has not eliminated those teams’ jobs.
The one difference I see is that SQL is still predictable in it's output. I don't think feeding requirements into an AI is at that state yet
+1 Predictability and rigour are crucial IMHO.
Absolutely, but GPT has taken "rubber ducky debugging" to an entire new level.
Interesting you should mention SQL, because a lot of non-tech business people I’ve met have rudimentary SQL skills nowadays. Database administration is a dying field.
I was speaking of the engineering teams that existed before database administration was formalized as a field at all. Mainframe, batch processing, and written in C: proprietary company-specific applications.

Analogously, it may not be long before crud websites are created, end to end, by non-tech people with mostly natural language.

That being said, today’s crud web developers won’t be out of work. Their experience writing/designing code will be put to use in more complex, potentially yet-unseen applications.

Where's the shortage of engineering? Tech companies nearly universally (outside like Defense) are laying off huge swaths of developers.
It's always been a shortage of firms willing to pay the appropriate amount.

When you pay enough the talent pool is endless.

This is true but this doesn’t imply those companies couldn’t still use those engineers in some capacity but rather they have decided to cut the cost of employing them.

Universally, software is so flawed and yet so fundamental to modern life, there is certainly a possibility for everyone to contribute but not necessarily funding to pay them for their work.

The problem isn't how you, an engineer, perceives the tool could be useful.

The problem is how your CEO, not an engineer, perceives the tool could be useful.

This. I asked a question regarding this on a forum and I got downvoted to oblivion just because I said a manager/CTO/CEO could see this as an opportunity to lay off people, cut salaries, etc...
I am skeptical that this will happen but if it does it seems to me it will still be a short term situation. I don’t believe the world’s need for software, especially high quality software, is anywhere near met. There are many problems waiting to be solved with software that just aren’t due to cost or time of implementation. The outcome will be more software and more complex software, you may as an individual engineer be expected to manage and produce more software then before but the demand for software engineers will not be reduced because all of the sudden there is much more software in the world.
Maybe those laid off people can start a business that replaces the CEO/CTO with an AI.
Reality has a way to make itself perceived at some point.
M̶a̶r̶k̶e̶t̶s̶ MBAs and their ilk can remain irrational longer than you can remain solvent.
If it's a real problem, it'll only be a temporary one that eventually self-corrects.
The CEO at a company I worked for a few years ago suddenly one day discovered open source. He decided that we were now going to be a software company and "the nerds will do the work for free!" Not even paraphrasing there, that's what he said at a companywide town hall meeting. He thought he was brilliant for discovering open source and that he was the first to think of exploiting it for commercial gain.

Bankruptcy reorganization took longer than expected but he's still CEO, so I guess it didn't impact him very much but lots of people lost their jobs and everyone who owned stock was wiped out, which included a good chunk of the employees.

The problem is your CEO was right. Exploiting open source is the right move. Instead of hiring engineers to write an operating system you guys likely exploited Linux and a bunch of other free tools.

100 percent: open source has contributed to less demand. It's the only logical conclusion.

The thing is that supply is so low that even with less demand it still outstrips supply.

Here's the the thing we should be cautious about. Times change. Technology changes, the culture changes and interest rates also change. Demand may not always outstrip supply.

No, the CEO was wrong. You're conflating a serendipitous use of open source software with a targeted exploitation of it. People decided to open source Linux, GCC, and other tools. So developers at companies use them, because they are available. This is not exploitation, though, it is the intention. Developers made these tools specifically for other developers to use them, even at their jobs.

The CEO, however, wants to convince developers to work on software that would drive value for the company. In essence, the CEO wants to trick open source developers. This is clearly doomed to fail.

I know commercial products where the code is open source (and largely useless to anything except the product) and people contribute. Decent Espresso is one. It is insane anyone contributes but they do. Rich owner gets tons of free labor.
You are getting your emotions mixed up with facts.

When you use open source you are exploiting a resource as there is no fair trade. It's not a crime nor is it immoral but because no fair trade occured it is technically an exploitation.

No CEO tricked open source developers. Open source developers create open source as a charity to society that's all. They aren't tricked. They willingly choose to allow others to exploit their goodwill as a resource. Many people choose not to exploit them and donate money for their efforts, but most don't.

Put it this way. People can be aware they are being exploited and people can be unaware that they are exploiting others. Knowledge of the action is independent of the action of exploitation.

If I gift you resources, the trade is fair. This is you putting your own emotions into it, and projecting. You don't get to tell me what I do with my resources, and my labor and time has no intrinsic value.

Even with your description of things, you still have the wrong way of things. The CEO in the description obviously wants to make open source developers build _something new_. That is, something they have not decided to gift to the community already. We can argue semantics of the word exploit, of which I think you're being ridiculous, but even with your definition the situations are different.

>If I gift you resources, the trade is fair.

A gift isn't a fair trade. That's why a gift is not called a fair trade. There's such phrase: "fair gift".

> You don't get to tell me what I do with my resources, and my labor and time has no intrinsic value.

I never did tell you what to do with your time and resources. Why would you assume I did something that never occurred? I think your emotions are saying this.

>The CEO in the description obviously wants to make open source developers build _something new_. That is, something they have not decided to gift to the community already.

No exploitation doesn't just involve that. Even taking something already built without a fair trade is still exploitation.

>We can argue semantics of the word exploit, of which I think you're being ridiculous, but even with your definition the situations are different.

Not only CAN we argue this, we are arguing this. This is the central point. And it's not about MY definition either. It's about the colloquial definition of the word exploit. If you google it, you will see that I am right.

There is no different "situation" here. You're simply offended by the word "exploit" because you have preconceived connotations attached to it. I don't have any skin in the game, I don't have to adjust vocabulary or my interpretation of the English language to justify my place in the world.

That CEO is strategically making the best decision by "exploiting" open source. Anyone following that plan is also making the most cost efficient strategic move. He may be acting like an ass about it, but logically his strategy is correct. That's just reality.

I mean how you perceive the tool is relevant as well. It's just self delusion and denial.

It's obvious if your productivity increases because of AI it diminishes the need of another person's productivity. You give everyone more AI tools you could increase productivity to levels beyond what is necessary. If some productivity isn't necessary it's laid off. Simple logic.

It's quite obvious. It's just people have a fascination and love for this technology such that they need to construct a delusional narrative that validates their love and validates their moral imperatives. But deep down they know, because it's really really straightforward the consequences of any tool like this.

Increased efficiency leads to more demand, not less. This is known as the Jevons paradox in economics (see: https://en.m.wikipedia.org/wiki/Jevons_paradox).

The historical precedent would be for increased productivity to lead to more software being developed, not the same amount but by fewer developers.

Except how did the company go bankrupt then?

This paradox only occurs if every resource is abundant. We tend to see it a lot (especially in the last decade) because of the easy money policies by the Fed in the last decade or so. Following your example, if we have unlimited money and gas prices are cheap, we buy more gas. But with limited money, when gas gets cheaper, we don't buy more gas, we usually allocate more money for more essentials.

The scenario with a bankruptcy is largely parallel to what we're seeing recently with interest rates and the lay offs. Free money is being tightened. With limited money the paradox no longer functions. Big tech is not going to hire people to write existing software they can get on the open source world, so they let go of a bunch of people.

You can literally see the two curves correlate ever since interest rates started to rise... Open source projects are going up right now while lay offs are also increasing... violating the paradox.

The Jevons paradox was noted in the 19th century when the world was far less wealthy than today. Recent American monetary policy has little relevance.

There’s many more examples if you look up induced demand - a similar effect is the Downs–Thomson paradox, where adding more roads increases traffic congestion in the long term. You may see a short term improvement (the same way a struggling company that increases productivity will let go of employees) but eventually a new equilibrium is reached.

But the problem is we see opposite trends as well.

We see paradoxical trends and trends that are not. It just means the paradox can sometimes occur it does not mean the paradox is a general rule.

This assessment is correct. Many more engineers will be needed. Far more than exist right now. There is a lot of work to do. There could be innovation in products and services...more products, more services, more innovation, for another 1,000 years.
There is no worker shortage for engineers in software roles. Nor a shortage in other engineering professions. That's corpo propaganda used to reduce salaries, the largest expense of tech. More job competition = less pay.

If anyone wants the best software devs there's plenty of them uploading projects on GitHub. The resume is right there in plain sight. Speaking to numerous hiring managers personally, the story is the same. They know, they also have a few hundred applications already. You'll know there's a shortage when the org actually puts money into education, interns, and makes offers to juniors.

Further - if there were a shortage, that would be an existential crisis to any engineering org. They would be tumbling over themselves trying to get people through school. They have actual billions lying around. This is not the case. These corps contribute almost nothing, because they don't need to.

I certainly can’t argue with this point. Except I will add that when I speak of a shortage of engineers, I am perhaps more speaking of a gut feeling on the overall quality of software the entire industry is putting out. There may or may not be a surplus of engineers out there to fill jobs, but there are a lot of hats an engineer has to wear if they actually want to drive systemic positive forward change, much of which is of course not really “engineering” at all.

Maybe what I’m trying to say is: for the vast majority of new-hires despite qualifications, they will consistently produce more technical debt and that debt will need to be paid from time to time. I believe the increase in popularity of LLM-type AIs will amplify this effect and make that debt more visible and urgent.

Increased productivity of a single developer -> less demand for developers More AI based companies and products -> more demand for developers Not sure which force is stronger.
The correct answer is “switch your major to electrical engineering or industrial engineering."
In my opinion, GPT doesn't invalidate the need to learn to code anymore than the invention of the pocket calculator invalidated the need to learn one's arithmetic.