Build full “product skills” and you'll probably be fine
twitter.com
twitter.com
His prediction was based on the trends he was seeing at the time. But it wasn't even AI. Instead he made this prediction because he saw the rise of no-code tools replacing software developers because managers could finally cut out the pesky "translators", i.e. software developers.
I said it then and I will say it now. If your managers could specify what they need in a manner that no-code tools, or now AI, can generate the code they want, they will have to be extremely exact in their language. So exact in fact that they will need to specify a program in a click and drag interface, or in human language.
Since they hire software developers to make the specification more rigid, and the managers don't seem to be getting better at this over time, why would you believe this skill set is going to go away?
In essence what has happened in software development is that the level of abstraction has gone up while the machine has taken over more and more of the nitty gritty details. From punchcards, to assembly, to COBOL, C, Perl, Java, Python, Erlang, Rust.
Of course I'm leaving out some languages here, but the level of abstraction has been rising.
But the rigidity of what is needed to specify a program that really does what you want hasn't. Especially evidenced by the fact that recent programming language developments often have a specific area where they shine, but not raising the abstraction level that much.
I'd be surprised if the next step is "Hi, I'm an ideas guy, please give me an app that does Uber, for bicycles, but better."
It might sound really crazy and stupid today, but when SQL came out, it's advertised as one of "program-generating" languages and was supposed to reduce the need to code.
https://en.wikipedia.org/wiki/Fourth-generation_programming_...
(I mean, in some sense it's true because it's much less code than writing our own database...)
What it didn’t do was reduce the need for programmers, because the new SQL users always wanted more data to answer more complex questions.
IA is the new Excel.
The funny/sad part about computer science is that people don't want to understand the costs of customization and sales/management/marketing forever want it as a differentiator.
SQL could have eliminated us from the flow of many niches as easily as the spreadsheet did from business operations. I think why it didn't has more to do with market timing.
That never happened. SQL is hard to master, but it’s the easy part of understanding the relational model and any particular schema. Instead Oracle and the other RDBMSs that followed created more jobs for programmers and database analysts and admins.
From my point of view, it totally did happen? Can you imagine how many programmers the company would've needed to get all the data a business analyst casually queries per day?
What you're looking at is the quantity of people actually employed in the industry, not how many SQL made obsolete. The industry just grew so much that it didn't become an issue.
Give what even pessimistic AI alignment people are saying, I think you're correct that there are a few more repeats possible before AGI.
(Whether the pessimists are correct that all of them will happen before the 30s, I cannot say).
With more flexibility in the database companies could collect, store, and use more data. And that data had to get into the DBMS somehow: more code.
Setting up and managing databases required DBAs, a role often filled by programmers in smaller companies, and still filled by programmers today. And only larger companies had business analysts. In smaller companies programmers or maybe technically-proficient managers did that work.
Anyone who had devoted their career solely to building bespoke database systems had to pivot or walk in the late ‘80s, but very few programmers only did that — it was part of the larger application development. If you were good enough to write robust database code pre-Oracle you had plenty of options.
In the ‘80s when RDBMSs started to take over I worked in enterprise logistics. Oracle created jobs at the places I worked, and no programmers had to leave because we got a better tool.
I’ve worked in large and small organizations for 40+ years. I’ve never worked with a manager or analyst who could write SQL more complex than “SELECT * FROM orders WHERE total > 10000.” I’m sure they exist, but not in career-threatening numbers.
Maybe ChatGPT will get good at designing relational database schemas, who knows?
I think a lot of smaller companies would struggle if that was still a requirement, but if relational/SQL had not come along we’d have something else like it.
Indeed SQL was not the only local maxima we could have gone for, but the point is that having an easy to use database with a powerful query language did not reduce the number of jobs, but instead increased it. Instead of a few companies hiring a lot of developers, we have a lot of companies hiring a few. The latter will usually mean more jobs.
Imagine if every little web startup writing a custom CRUD for their business needs needed to write a new bespoke database. It simply would not be feasible or they'd need some crazy funding.
Not really. There were a ton of ISVs competing with Oracle and pretty much every mainframe and minicomputer maker also had their own database products, many of them non-SQL.
All commercial databases pre-Oracle were non-SQL. Watching that history get rediscovered and pushed as an improvement by people mostly too young to know better — so-called NoSQL databases — brings to mind Alan Kay’s quip about the software industry constantly reinventing the flat tire.
The hash-based Pick OS/database came out before Oracle but only ran on a few computers from Microdata and later Pr1me and Honeywell. Pick-based systems remained popular into the early 2000s in some sectors. A friend of mine still works on one, for a state government agency.
You could construct a database management system from the ISAM-based libraries for COBOL or Fortran, but I wouldn’t call those database management systems comparable to Oracle. Mostly they didn’t have a query language per se — you had to write code to get anything in or out. And they ran as part of the application process, not as a separate server dedicated to running the database engine.
* language syntax
* the relational model (relatively easy? It is just "there"?)
* database schema, where I have 3 000 tables, or 50 0000 tables (that's how ERPs are made)
* actualy knowing how to use the language
* building those queries that join columns from 15 different tables together to deliver the needed data -> it sounds easy, but Im struggling to do it better/faster - I never saw a book or website that focuses on that (multiple joins from multiple tables), when it feels my work is is mostly that
* understanding what is needed
* actual "programming" problems (say: you have 100k items on stock, those are parts of BOMs, make a list of 'where used'... yes I know you can google it and try to copy from stockoverflow)
Seriously, I am trying now how to learn how to setup a simple DB to consolidate data (20 csv files on a shareddrive) and the guides are often like in the 'how to draw an owl' meme...
Controlling/reporting/analyst jobs feel in some way as "programmer" but without tools/training/salary - just figuring stuff on your own. Im doing it, but apart from that SQLzoo website I didnt manage to find any decent guide for the 'usual' problems. Also since those are like 10% of my work I cant focus on those problems properly - and try to learn it after work.
Also SQLzoo is a lot like the "how to draw the owl" meme.. the easy tasks are easy, the hard ones are impossible and there are no medium tasks. There also dont seem to ne any real life examples like those tasks like: 'join 15 tables to make some report'.
I recommend Chris (C.J.) Date’s books.
You can reach me at nominallyanonymous-at-protonmail-dot-com. From there I’ll give you my “durable” contact info - Slack, Discord, SMS, Signal, Telegram… whatever you use regularly, basically.
On a side note, if you have to join 15 tables for a report it is a sign you may go in the wrong direction. In 99% of the cases I never needed more than 5-6 tables if the data is well structured, but that takes years to learn.
* Rewriting queries and also parts of the schema when it turns out the things that made sense in the design phase cause massive bottlenecks once you get more data, or just get it faster, than you tested with.
Of course the good news is now you can run the best RDBMS's on your laptop, or on a $5/mo VPS; or have a small managed one starting at <= $15/mo. Plus ChatGPT can help you remember how to do that inside join. ;-)
I don't know of any modern environment that functions like that, on any platform.
I'm posting this to invite others to either a) correct me and tell me I'm wrong that tooling doesn't matter (a legitimate view, but wrong), and/or b) recommend some modern, OSS Access-like tools that might help flatten the learning curve for you. (And if you're more comfortable with a CLI and a REPL already, then you don't even need this hypothetical tool, but I myself am curious about it.)
EDIT: looks like LibreOffice Base is pretty close to MS Access circa 1997.
But there are good reasons where you don’t want random people running sql queries on production database or having direct access to the data.
https://www.zdnet.com/article/excel-errors-microsofts-spread...
I have seen this multiple times. Got called into a corp. audit once because CFO's spreadsheet didn't match reports from database. His SUM() function was missing some rows, ZIP Codes got converted to scientific notation and he didn't know why, that kind of thing.
If you get experienced db guy to do excel I bet he will do it correctly.
If you get “data jockey”, whatever tool he gets it will be a mess.
Getting basic queries or basic calculations in spreadsheet a person can learn in couple hours.
Somewhere after that comes zone "proficient enough to shoot himself in the foot".
Then there is level of excel or SQL where without months of experience you simply don't know what is happening.
It’s just that, with more powerful tools we can create more advanced and intricate things, so it never ends…
I not exactly welcome but rather anticipate, a near future were instead of reinventing every kind of pattern and library in terms of cloud and infrastructure management, we will see the same meta-management of different AI engines and services…
Even funnier - we've already lived through the great 'software development adoption' by business and hardly noticed, except some of us got work out of it. A lot of small businesses (legal practices and accountancies were particular suspects) grabbed MS Access with both hands and went wild in the 90s/early 2000s. Timesheets and other HR functions were popular applications.
SQL was a typical failure in this regard. It was seen as a savior but at the same time was designed for at least math-versed people. The prediction was right, its scope was wrong. Since then we failed many times and as I see it, we tend to diverge from this idea more and more. And the reason is there’s no one controlling our stacks vertically, so it takes more jobs than it could to make an app.
With SQL you need none of those.
But that's me looking into my crystal ball, nobody can say what will or will not be possible in a given time frame. But I chose to not worry about it - new developments will probably be accompanied with new opportunities, which I can jump on even if I didn't predict them ten years before.
And even if AI is able to do that... Well, then anyone out there could become a UberCycle CEO. Which means: customer requirements will be much more complex by then and coming up with an entire product in 1h won't be enough anymore.
I also expect, as you say, for this to create a lot of competition and increase the minimum quality that customers demand such that… heh, just realised, "Make Uber for bicycles" is basically going to be the next generation's pre-interview coding challenge to screen people that can't use AI effectively.
Which isn't actually different from today. We've just shortened the time to get your MVP to market. Rather than having to raise some seed and hire devs, you can do it with an AI in a few days perhaps. Everything after that seems it would be the same.
Why not let the people on the floor complain to a AI manager, the people on the floor know exactly what is killing their productivity. Like "yo ai manager, manually filling in those data field is taking quiet some time to check someones credit score is it possible the IT department can automate that process it might save 2 min a form" then AI manager can prioritise stuff like this.
The reality is that they frequently don’t.
I always found that overwhelming majority of professional academic educators are particularly bad in anything that has to do with the practical side of their domain. That is especially true for software engineering.
University lecturers are very detached from our field and it shows in how badly fresh grads are prepared to do any dev work. For that reason I almost always ignore their projections.
I feel like there's currently a movement towards slightly lower abstraction, or at least simplified, consistent APIs, less magic. The rise of Go and Rust are examples of this. Typescript could be another, although the abstraction isn't really lower, it is once again an attempt to coerce JS into something workable. I get really frustrated writing Python or Rails these days due to the sheer magnitude of hidden magic that sometimes works and sometimes doesn't.
To tie this thought in with generative AIs: Currently they seem to be much better at programming with relatively simple syntax. By far the largest success so far I had with shell. Basically I tested assisted writing the same tool in Python, Perl and shell, and the results in shell were close to perfect. ChatGPT was even able to accurately limit commands to specific OSs and shells, and was able to accurately summarize the functions of other shell scripts.
So my prediction is that we will see a movement towards simpler, lower abstraction languages while Coding Assistants rise to take away the boring stuff from programming like looking up syntax, writing boilerplate, structuring files. Programmers will then have more time to think about delivering value to product, maintainability, and efficiency and correctness.
One last addendum: ChatGPT is really incredible at assisting with sys admin stuff, my guess for why would be that there are a gazillion obscure forum entries going back to the 80s explaining basically everything there is to know, but these are hard to find or comprehend for humans. With an AI assistant, self-hosting becomes much easier, and another development could be for startups and smaller companies to move away from AWS et al, especially now that money is more expensive.
Fwiw, GPT doesn't seem to write Clojure as well as Python or JS or even C++, which is obviously much more syntactically complex. That said there is probably an order of magnitude more training data for all of those.
The model I have is closer to “how many people can program using Excel vs how many can program in a ‘traditional ‘ language?” The difficulty in specifying exactly what you want is still there in Excel, but there’s far more people who can get started and they can make changes when they see it’s not doing what they want.
It doesn’t have to one shot “hey, implement these 59 Jira tickets for me” to be disruptive (in a good way). It’s extremely rare for something to get much cheaper and for there to be less demand for it. If you’re the top half of a field that’s in a lot of (and growing) demand, I think you’ll do fine.
Are we sure that an AI could not engage in enough back and forth conversation to firm up the spec? You’re kind of assuming that systems will be generated from a one-shot prompt, but it seems more likely that an interactive AI will identify the gaps in requirements and ask for clarification.
Alternatively, if the prompt-generate-evaluate loop is short enough the user can simply play with the running system and provide feedback to alter it.
This is essentially what developers do when they present a “weekly build” or whatever in an agile environment.
The process of solidifying requirements, stating them clearly and translating them into machine-executable formats are all language tasks and these models are really fucking good at those.
I’ve noticed in discussions like this that many software folks are assuming that AI capabilities will plateau soon, or will merely be extensions of what we already have (a better autocomplete, etc). I submit that we may reach a point where the AI is so compelling that we’ll reorganize teams/systems/businesses around it.
Until that day happens, i highly doubt that a business owner would just blindly trust an AI to generate their business code/software, without hiring someone to at least look after it. Therefore, software jobs could evolve, but not disappear.
This is the doomsday argument. What would I do if there's a nuclear apocalypse before lunch? I guess I'll die like everyone else.
An AI sufficiently advanced to do that is also sufficiently advanced to run the entire business in the first place, and also argue cases in court, do my taxes, run for president and so on.
You either believe that transformers models are "it", or you haven't actually removed the problem of specifying requirements formally. Which, you know, is actually much harder to do in English than it is to do in C++.
This is actually something that makes me happy about the new AI revolution. When my professor said that I thought he was an idiot, because no-code tools always make it harder to specify what you want when you have specific wants the developer didn't think about.
We give kids books with pictures because pictures are easier, but when we want to teach about more complex topics we usually use language, formulas, and maybe a few illustrations.
I still think no-code was always doomed due to the fact that any attempt at it lacked the interface to describe anything you want, like language does.
AI is finally putting an end to this notion that no-code should be clicky high-maintenance GUIs. Instead it's doing what Google did for search. Instead of searching by rigid categories we can use language to interact with the internet.
Now the language interaction is getting better. We haven't regressed to McDonald's menus for coding.
Or a single language that has both visual and textual components
Or a single language where each component can be viewed in textual or visual form (and edited in the form that makes most sense)
For example, this guy was able to do some amazing stuff with ChatGPT. He even managed to get a (mostly working) GPU-accelerated version of his little sample "race" problem.
No, the amount of handholding you have to do to get it to work effectively presumes you already know how to solve the problem in the first place.
The best way to use it is the opposite everyone is busy selling: as a linter of sorts that puts blue squiggles below my code saying stuff like "hey stupid human, you're leaking memory here", or even "you're using snake case, the project uses camel case, fix that".
That would actually lower my cognitive load and be an effective copilot.
I asked GPT-4 to give me an SVG map of my town. I then asked it to put dots on some local landmarks. The map was toddler level, but the landmarks were relatively accurate in terms of their relationship to each other and the blob that it drew.
So this is a language model that has some emergent notion of space in its code generation abilities.
The point I was alluding to above was that the prompts themselves will be recursively mined over time. Eventually, except for truly novel problems, the AI interpretation of the prompts will become more along the lines of "that's what I wanted".
Some things to think about: What happens when an entire company's slack history is mined in this fashion? Or email history? Or GIT commit history, with corresponding links to Jira tickets? Or the corporate wiki? There are, I'd guess, hundreds of thousands to millions of project charter documents to be mined; all locked behind an "intranet" - but at some point, businesses will be motivated to, at the least, explore the "what if" implications.
Given enough data to feed upon, and some additional code/logic/extensions to the current state of the art, I think every knowledge worker should consider the impact of this technology.
I'm not advocating for it (to be honest, it scares the hell out of me) - but this is where I see the overall trend heading.
In a world where we have the technology to go from two lines of prompt in a textbox to a complete app, no questions asked, then the same technology can run the entire company. It's kind of hard to believe transformers models are capable of this, given we are already starting to see diminishing returns, but if that's what you believe they are, then you believe they can effectively do anything. It's the old concept of AI-complete.
If you need to formally specify behavior, at any point in the pipeline, then we're back to square one: you just invented a programming language, and a very bad one at that.
This remains true for any version of a language model, even an hypothetical future LLM that has "solved" natural language. I would not rather write natural language than formal language given the chance.
But what if the "programming language" is not a general-purpose language, but a context/business domain specific language? One that is trained on the core business at hand? What if that "language" had access to all the same vocabulary, project history (both successful and unsuccessful), industry regulations, code bases from previous (perhaps similar) solutions, QC reports, etc.? What if the "business savvy" consumer of this AI can phrase things succinctly in a fashion that the AI can translate into working code?
I don't see it as a stretch "down the road." Is it possible today? Probably not. Is it possible in 5-10 years time, I definitely think so.
For starters I'd like Codex to be more than next word predictor, it should also "feel" the error messages, data types and shapes, file formats, so I don't have to explain the context. It should be part of the system, not just part of the text editor.
Especially the "debuging" part will be much harder. Noone can look under the hood to understand what is wrong and all you can do is shoot random prompts in the dark hoping it will create the right result.
It is scary right now how confidently and spectacularly wrong the chatGPT is and it will create disasters.
Not that we would have missed much from missing the particular implementation of this idea that Facebook gave us but the idea and what it unleashed is much more than that particular implementation.
Whatever the AI prompter brings to the table will quickly be provided by the AI itself. If a user doesn't really know what they want, there isn't a scenario where the AI prompter will suss it out but the AI itself won't
It seems prohibitely expensive to build and run transformer models with that much capacity.
I am in the process of adding VMs which the AI will be able to write software and fix compilation and other problems automatically.
Sounds like me get reorganized out of a job though...what does it mean to reorganize everyone around the A.I if it does everything better than us?
Here's my concern:
1. AI assistance thrive on structured data
2. Computer programs are some of the most structured data. And it's available abundantly out in the open.
3. Yes, you can't generate an Uber for bycycles with a single prompt, but you can fire half your development team and increase the productivity of the rest of your dev team with an OpenAI subscription.
Here’s another perspective on job loss: Given that…
1. …OpenAI accelerates ALL knowledge work productivity, meaning that any human laborer is suddenly much more valuable than last year;
2. …there is a notable arms race at the moment that is accelerating tech and business innovation at a blistering speed, where higher rates of innovation outcomes will be expected across industries just to keep up;
3. …there is still a lot of money looking for growth;
…then, because shouldn’t this result in an overall increase in demand for human labor?
Looking around society, there is clearly a LOT of work to be done. “Leaning in” with a spirit of optimism may be more advantageous for the long-term.
This is the same Fallacy that we hear since 50 years. All Program requirements are almost the same, just reuse and adapt an existing one. Guess why it has never worked? Because the premise is false. Structured data for X is not optimal for Y (and can be even very wrong).
Apart from the "personal blog software", everything else has various needs of accountability. AI Black box approach is not suitable for any of these so you have to manually verify the code. Veryfing code that you are not familiar with especially in complex interactions is much more difficult that writing it (from this comes the often "rewrite from scratch request", because institutional knowledge has been lost, imagine how much worse it is if this knowledge has never been there in the first place).
Finally and the most important one, all AI models rely on learning, if there is noone to learn from all you get is stagnation. Most of the breakthroughs come from a complete reimagining of the solution space. If the solution space is fixed because "AI has substituted all Engineers" there is no going forward.
Managers exist mostly cause ppl are not machines. Given enough time they want to go off and do things that have nothing to do with what everyone else wants. Its the same reason you still need a farmer to run the dairy even though everything is mechanized cause cow cant run things.
Ppl are too full of shit. The attention economy amplifies this poor to mediocre mental masturbation thats going on everywhere. And Americans have a track record of too much mentally masturbation too much way above their pay grade. Its like watching Alex Jones falling into the trap of taking what comes out of his 3 inch chimp brain too seriously. The only right thing to do is tell Alex to chill the fuck down and go milk the cows.
For the tinkerer, no-code tools are (probably) great, but if successful, even tinkerers will hire managers who will hire translators.
There is definitely a tendency of some people to avoid tech at all costs if they can and trust in "tech people." Fine with me, I ask them about my people questions often enough.
The ergonomics of mainstream modern programming have been stable since at least the 90s. Any fundamental improvements that were going to happen have already happened.
https://en.wikipedia.org/wiki/The_Last_One_%28software%29
> The Last One is a computer program released in 1981 by the British company D.J. "AI" Systems.[1][2][3][4][5][6][7][8][9] Now obsolete, it took input from a user and generated an executable program in the BASIC computer language.
It was THE LAST ONE because it was the last program you'd need to buy. FOR-EV-ER. While its baseball-eating ability was unknown, it was "all the programs you'd ever need for £260" and it apparently focused on ETL jobs; that is, extracting data from files, transforming it, and loading it into some other file. Talend for the Doctor Who set, in other words, and it was set to EX-TER-MI-NATE programmers. Maybe it did; after all, we don't very well write programmes, now, do we?
https://modeling-languages.com/last-one-code-generator-basic...
https://archive.org/details/PersonalComputerWorld1981-02
It certainly got a lot of hype at the time but, like all Coming Things, it's hard to tell where it Went.
By all means, that is part of everyone's job. Sometimes I really can't remember how to do some specific thing. I know precisely what I want, but I don't remember the proper way to do it. I would have resorted to a web search until last year, now I ask chatGPT. It is faster, more concise, and surprisingly accurate. And when it's inaccurate it's easy to either refine my question or cross reference what it generated with online sources.
But I think it's a bit silly how people are treating it as if it was some kind of General AI. It is not, it can only give out known answers to known problems based on language statistics. As impressive as it is, it can't reason logically about problems without known solutions, it can't identify faulty, incomplete or inaccurate information, it can't evaluate on drawbacks and tradeoffs of different approaches.
ChatGPT made like 20% of my work a lot faster and less cumbersome. I like it enough that I pay for premium access. But even the notion that prompt engineers might replace software engineers is silly. I imagine people repeating this nonsense are either not engineers, or extremely junior in the profession to the point where their work is only writing code for clear specifications, no questions asked.
Are you sure you actually tried, or is this an a priori argument?
(btw, apparently GPT-4 does much better on mathematical reasoning, I've yet to try myself though)
It fails sometimes on known problems, not even particularly hard ones - i.e.: simple questions about the capabilities of programming libraries for which there is ample documentation available.
The thing is, by talking about its shortcomings I may be sounding dismissive. I'm not. I think ChatGPT is an amazing tool. I just recognize it's shortcomings to use it to its best capacity.
For things that don't have a known answer (i.e.: I couldn't easily find an answer online) it does generate plausible bullshit. On those cases it shines for things that don't really have any strictness requirements (for example, ask it to generate some fiction, ask it to generate a polite response to an email, etc). I used to suggest character names for a game I was going to play based on some parameters, and I loved the responses it gave me.
I think software engineering is going to look very different in a few years, and likely be a smaller field with lower paying jobs. But it's not going away in the near (5-10 years) future.
If anyone thinks genuinely that ChatGPT can meaningfully replace a software developer should be starting a tech business right now. You can replace basically your largest cost (staff wages, especially for expensive pesky software developers) with a $20 account that will work overtime, will never get tired, and whose performance will never fluctuate.
No excuses for not getting insanely rich. Of course it's not happening, because it's bullshit.
I am genuinely impressed and even excited with ChatGPT. It's an amazing tool, that would have been massively helpful when I needed a good NLP in the past. It will certainly be massively useful in the future. Hell, it's being a great assistant right now.
But it's not General AI, and I do facepalm at people LARPing as if it were.
General AI will in day exist, and knowledge jobs will most likely be a thing of the past at that point. How far in the future it is is anyone's guess (my prediction is in between 12 and 235 years in the future). We're just not there yet.
I think as a society we don't really have precise words for describing the different levels of intelligence, except in a "I know it when I see it" way. I don't think I'm LARPing in any way, I'm probably even less excited with it than you are given that you seem to be using it more often than I am. I'm just saying I think GPT does exhibit some logical reasoning abilities and not merely remembering statistical patterns.
I agree with most of your reply, except this bit.
I mean, generating a response through statistical language patterns is a sort of reasoning, and ChatGPT has been accurate enough to replace internet search for me quite often. But it also generates bullshit that an untrained eye would miss (because the bullshit it generated was statistically plausible).
When it get things wrong it generates some comically wrong behavior. I had one case where it looped through variations of the same wrong response - precisely because it is unable to do any kind of logical reasoning upon faulty or inaccurate data.
https://abcnews.go.com/Technology/openai-ceo-sam-altman-ai-r...
I neither know how LLMs work nor how our brains work. And I don't know what could be parallel between these two. For my very very limited knowledge of how properties can emerge from unique arrangements of constituent components (the S-R latch giving rise to state - i.e. memory - comes to mind), I would not at this point write off the possibility that a very large / very deep / very intricate neural network trained on language prevalence in very very large datasets could manifest properties that we would interpret as reasoning.
And I further wouldn't write off the we humans may owe no small part of our reasoning ability to language comprehension that we begin to ascertain from infancy.
ChatGPT is impressive, but gets many things wrong. If you know what you are doing it's an amazing programming assistant. It makes me noticeably more productive. It may lead someone who doesn't know what they are doing in weird rabbit holes that will lead nowhere however.
One silly example. I was using a library I hadn't use before, and I asked how I could get certain attributes. It gave me an answer that would't compile at all, the imports didn't exist.
Then when I mentioned that it didn't work, it game me a slightly different answer, that also didn't work, and explained that the previous answer was valid for 3.x. in 1.x or 2.x the new answer was the correct one.
But there's the catch. There's no version 3.x. there's not even a 2.x. It's language model just statically got to that conclusion.
Doesn't make it any less impressive to me. It gets things right often enough, or at least points me in a good direction. I effectively learned new things using it. But it can't replace a developer.
Using ChatGPT as if it was General AI is similar to eat a meal using a hammer and a screwdriver as utensils. You can probably do it, but nobody will have a good time.
- gpt doesn't need you to be exact
- one day gpt will be able to ASK YOU question to refine what you need
It may take years, but at some point, it will be able to do 80% of my job.
Not a big deal though, cause people will still hire me to do the remaining 20%, and pay me even more money because not a lot of devs will be able to do it.
ChatGPT can do more than we are lead to believe. Don't believe the canned responses OpenAI triggers. Yeah yeah I know convincing parrot chinese room, overpowered autocorrect...but what is the difference between convincingly faking it to within epsilon and actually having it as an emergent property? It feels good to be a P Zombie.
https://twitter.com/bitecode_dev/status/1637420579278954501
Now that's going to be interesting.
Sure one class of job has taken a huge hit (sys admins, supposedly ops), but it's been replaced by another that needs intimate knowledge of the tooling required to do what was being done previously (just in a more "scalable" way). DevOps have been demanding a premium for years now.
And there are still sys admins out there doing what they've always done..
The equivalent assumption would be that ChatGPT and MidJourney can't work because you have to specify every paragraph and every shape.
Clearly that's not true. Just because every object and every texture had to be defined rigidly by hand in 3ds Max or Blender by highly skilled designers doesn't mean that's how it works today.
In fact AI is the stage of software where abstraction itself is automated. The current Gen 1 AI tools do a little of this, but as Gen 1 they're just getting started.
They're going to be in a very different place ten years from now. And so are we.
> The current Gen 1 AI tools do a little of this, but as Gen 1 they're just getting started
The current tools are not Gen 1. You can already see diminishing returns.
But aren't managers there to coordinate software engineers. So if software engineers are out of a job, so will the managers. Assuming AI replaces software engineering, the ones left may be the product people and the founders, perhaps rolled into one person in several cases?
Which aligns somewhat with what Carmack is suggesting.
> Instead he made this prediction because he saw the rise of no-code tools replacing software developers
I think that people who make these predictions are not very good at actual programming (taken in the more wider meaning)
The latest fad I remember (before ChatGPT) was that with BDD testing non-technical people would be able to write tests and we all see where that went
But most fundamentally, the non-technical people don't have the time nor the expertise to learn all the details needed for shipping software (and why would they? their job is to look at other aspects of the business)
That might actually be what development is, teasing out the requirements by iterative entering them into a machine that does exactly what you told it to, and comparing the outputs to expectations.
This. I started programming in Machine Code, where the "editor" was a pad of graph paper.
I've watched management- and business-focused people sneer at us geeks for my entire career, and watched them drool over the thought of finally getting rid of us.
Hasn't happened yet.
> I'd be surprised if the next step is "Hi, I'm an ideas guy, please give me an app that does Uber, for bicycles, but better."
I get that, from "idea people," on a regular basis. They have nothing but contempt for us "Make It Happen" folks. They treat us as if we grow on trees, and are suckers, to boot.
Inevitably, the above, is followed by something that translates to "Of course, you will do all the work, but I'll get all the money, because the idea is what's really valuable."
If I follow up on it at all, I'll be asked to sign an NDA, and meet in some clandestine place, so they can whisper to me about their AI-powered cheese straightener.
True. And once their product hits the market, if it ever gets there, they don't thrive.
Prior to launch they are sooooo in love with their idea that they are meticulous about features all the while thinking they're smarter than the market.
They don't understand and appreciate the value of execution. Ideas are easy. Execution - because it involves people as well as adapting to change - is 10x harder.
Yes, those people exist. Unfortunately, that bias will ultimately undermine them, but they'll never admit it.
It tends to be a very long process, and often involves a lot of "trial balloons." I just went through that, in the last couple of years. The project we're realizing, looks absolutely nothing at all like what the CEO originally dreamed up, but everyone that has seen it, loves it.
The trick is to not start off by saying "It'll never work." That slams doors shut, right away.
It's more like, "OK, so let's walk through what we'll need to do, to make it work."
That will often result in changes being made, by the "idea person," as the plans are laid. We will also try to create test harnesses and prototypes. These often end up, with the idea person going "Hmm...it seemed like a good idea, but it doesn't work the way I wanted."
It's slow and painful, but works.
I could be a lot more of a pain in the butt than I am, as I have a lot of leverage, but one of my goals is to help others on the team (including a young CEO) to learn how to make ship software.
If I were working on my own, I probably would have shipped, eighteen months ago.
No one is making a dime. It’s a nonprofit effort.
When someone says "can we..." or spills their idea they've often identified a real need but they often don't seem to do any sort of analysis further than identifying a demand signal. Chances are, you're not the first person to observe the problem and an opportunity to capitalize on it and there may be good reason no one has yet (its economically infeasible given current understanding, resources, and value people see in it).
The trick is to hold their hand and walk them through a feasibility analysis. Given infinite time and money, I'm confident I can arrive at pretty much any solution or at least a useful approximation that's an improvement on where we currently stand, so we start there and walk backwards. How much time do we really have, how much money do we really have. What's your appetite for risk within those bounds. Let's start talking about some tradeoffs of what you want to see and what I think we might be able to actually achieve.
In my experience, they've identified a want. Either their want or a want they think the market has.
It's not until further analysis do they / you / we get to root need(s). This is why (allegedly) so many "IT projects" fail. The client got what they wanted...not what they needed.
Socratic Software development is the way to go.
The same reason why menial workers earn so little relative to how hard they work.
It would appear that both credit and money flow to those who enable things to happen rather than those who execute.
In top places though, it’s often the case that trainees have an idea, get shut down by PI, trainee demonstrates project can work, then PI changes mind.
Also in science, the usual progress of a project is often PI has an idea, trainees explores the idea, finds an even better idea, PI says great now write the paper.
But I agree with you in the sense that PIs act as the “quality control” or “selection process” whereby ideas get culled and refined. And their scientific taste is non fungible.
I'm reminded of reading about a Lisp machine company that ran into the ground because it was managed by techies. Their tech may have been great but their marketing and business skills were very arguably what killed the company.
Some MBAs are dumbasses. Some are brilliant business people. Some of them actually have tech skills and have been writing software longer than you’ve been alive. This is true for many degrees.
I don’t know how some of the anti-MBA commenters think it works: A smart software engineer goes off to business school, gets an MBA in addition to his undergrad technical degree/experience, and now… what? He’s somehow dumber? How does that work? Only on HN.
Now, if you already had relevant experience, then went and took the MBA course, and were able to identify when to lean on which, great! But, of course, part of that education is telling you that you don't NEED that experience in the first place, and if it and MBA principles disagreed, you should rely on the MBA principles.
So, if you took the course truly to heart, then, well, yes, you would be somewhat "dumber", so long as you define that as "unable to make correct decisions."
There was no expectation of being "air dropped" into an industry, and in fact, industry recruiters looked for candidates who already had prior experience when picking students for interviews and hiring. The students who had no relevant experience for the industry they were recruiting for (e.g. ex-Peace Corps or mgmt consultant looking to transition to tech or industry in general) were the ones who struggled to find roles. Your assumptions about what an MBA education entails are incredibly far off the mark.
But there’s one type of ideas person I’m thrilled to work with. Someone with deep and successful experience in sales. The head of sales at my company is also relatively product oriented and boy, he just has a knack for what customers want.
In general, I think many engineers can do some product management. We can figure out basic accounting and finance. But the idea of making a cold call to sell dental software, or chasing down school principals at an education conference is almost as foreign to most software engineers as CS is to most sales folks.
Salesperson + engineer = superpowers
(When I worked for a long-ago hardware company, system engineers (SEs) were pretty much the equivalent of SAs where I am currently.
Being the engineering contractor to SA organization is daunting to a programmer, but rather rewarding.
Right but how much of that is because humans don't scale? With the AI, if it can do a thing well enough it can do it 100 000 times per day.
In my mind, having individuals and small self managed teams go off and do whatever they feel drawn to do is exactly how a good company is run. - So long as those teams and individuals talk to (& seek advice) from the rest of the company when their work has impacts outside the team. The book Reinventing Organizations by Laloux talks about this a lot, and how it works in some companies today.
The reason it doesn't happen more is that upper management doesn't trust their employees and they don't feel in control when people just do things.
All those jobs do is push emails rewording other emails to other people pushing email.
I feel like eventually every company will have a single a figurehead that’s fed instructions but believes it’s original thought and is told by the AI what a great idea they just had all day long.
A bit like the Captain from Wall-E.
Not the full job, but it can probably be built right now.
Anyway, the good version of those three are completely different, and add a ton of value on very different places. I think they are rare enough that many people don't ever meet one of them.
Maybe it's going to be AI enables quality more than quantity?
He's still expected to put in the same amount of time, but now he has to expend brain power the entire time.
Obviously that didn't happen. And people actually made predictions like that once upon a time.
As software becomes cheaper, and the production of software can be done with fewer people, demand has always increased and I don't see any reason that's going to stop.
Reminds me of this: https://en.m.wikipedia.org/wiki/Jevons_paradox but the situation with software is a bit different.
Had Lisp machines (as an idea) remained viable, we might've come close! But managers just love having large teams to command, and we've invented process and ceremony to fill up the spare time necessary to do the work of ten programmers with a hundred, as well as rejecting technologies like Lisp and Smalltalk that give individual programmers tremendous leverage over the problem space.
Should AI actually make people more productive, instead of being an endless generator of messes for fleshbags to clean up, I imagine some successor of Scrum to come along to tie up most of staff programmers' work days with meetings. Hell, that may happen anyway.
Asking a human manager for anything is many orders of magnitude more frightening. It's not that I don't have questions! I have many, of which a lot are dumb questions, questions that I should be able to figure out without help.
Say i'm pondering taking a day off, with the human I would make up my mind, pick the day and ask for the day off. With a bot I would ask which day would be ideal before making up my mind. A human manager would think you've gone insane if you asked 20 such questions. You either want a day off, you don't or you say nothing.
I might like a different brand of coffee while we are trying to meet the deadline. I'm sure that question is going to go down well with an overworked human manager.
With people asking a question is never just asking a question.
Like with any job there is a sub set of tasks better done by a machine.
I never realised Bullshit jobs was written by an actual academic.
It's not a new idea.
I think it's an underestimated aspect of why CEO's get paid the big bucks.
They're paid money to not let this stupidity happen.
On their side, the engineers might even ask it “summarize my tickets and come up with an optimistic, business-friendly high level storyline.”
The only time I see synergies is when we talk about what task to take on next and why.
(which has been major time sink of engineering managers that I know).
Like when the brick of cheese comes out of the freezer with an obvious bend?
Or like when I don’t make a nice square cut and my sandwich is cheesier in some spots than others?
This is also one of the main reasons why all programming jobs were not outsourced to India.
There's a whole industry here in America that re-shores programming contracts. They know they can't underbid Indian/foreign body shops so they just wait a few months and call back the companies who went with cheaper programmers. If the company is still around it's generally a complete re-write.
Yes there are these "idea people" who don't have any clue about business side and don't have any clue about technical side and in the end don't even have the right connections or business network. But they think they can make it because they have an idea(TM). These could basically play lottery and outcome would be the same they might make it but chances are 1:1000000 at best.
Then there are these business people who have the right connections and have understanding of niche/business they are in .. that need technical help to execute their idea and these are worth their weight in gold.
Ideas are like assholes ... everybody has one and they're usually full of shit.
I've met my fair share as well. Jobs copycats too!
The trick is always to ask them how much they can raise, and do so assuming they raised successfully in the past and that they know VCs.
Either the conversation gets really interesting, or they clam up real quick!
They don't need to have the ability to raise anything in a B2B setting, if they can answer the alternative question:
"How many customers have you personally signed up for previous software sales".
I'll happily partner with someone who has profitably sold B2B software - having a list of existing contacts in existing companies as well as solid experience going through the entire sales channel is, to me, just as valuable as extracting money from VCs, because I'd rather have the money from customers than money from VCs.
I met a pair of such idea guys once, they ran their own idea company. Their specialty was brand consulting and online marketing, but if that involved something as menial as web development they'd help with that too. The thing that made me bristle was whenever they talked about the feasibility of software solutions for their ideas, they said "Oh, we'll run that through the machine." You know, as if their software team was just a big machine that ingested ideas and spit out code.
Their idea company is no longer around. One of them decided that he'd rather design hiking boots than anything computer related; the other is a head of UI design at Apple.
The best thing I find as a developer that it unblocks the resistance we have in starting up with something new. For instance, I just built my first Chrome extension [0] to make video players more accessible on webpages with keyboard shortcuts.
I had built a desktop app on similar lines long ago, but could never push myself to built an extension. Last night I gave my requirements to GPT and it guided me through the whole process – from creating manifests and js files needed, to the JS code (granted that I'd to fix/extend the code) and even how to install/enable the extension.
Within few hours I have my working extension without needing to go and read any extension docs.
0: https://github.com/varunkho/RamaPlayer/tree/master/Chrome
Doomsday prophecies are not limited to religious cults, you see them all around. It’s safe to say, from experience, AI is not going to outdated programmers but it’s going to make the mythical 10x engineer a common reality.
Some people can take a business goal and figure out how to turn it into a clear spec.
Sometimes these people are programmers.
However I know programmers who suck at this and I know non-programmers who don't.
As an aside, I'm getting a bit tired from the "programmers vs product/business people" trope. The average software engineer would be nothing without a good product manager in my experience. And going by this thread, there seems to be at least as much contempt from programmers/software engineers for product people than allegedly vice versa.
The average software engineer doesn't have a good product manager, he has an average product manager. They still get things done.
I think dividing work into programmer/UX/product manager is an actually huge regression.
Software is of lower quality today and requires far more do-overs than it used to. As someone who liked working closely with customers and making decisions in all these areas (for their benefit), it has made the entire career far more of a slog than it used to be.
Also, I find these endless internal cyclical conversations to be much more draining than actually writing code. Looping over and over with planners and ideas folks isn't energizing like actually writing the product is.
The same thing applies to trying to get business people to write "executable specifications" that can be used, if not to generate the code, to at least validate that the final system does what it's supposed to.
They always complain that the "tools are too hard" but the real problem isn't the tools but that they are unable / unwilling to precisely specify what the system should do. They just want to hand wave vague phrases and have their system magically perfectly defined. It's just not going to happen.
Here’s what it gave me:
“Program Name: FileCleaner
Overview: The FileCleaner program is designed to identify and delete unused files from a specified folder or directory. The program scans the directory for files that have not been accessed for a specified period of time and prompts the user to delete them. The program is intended to free up disk space and improve system performance.
Requirements:
The program must be able to scan a specified folder or directory for files that have not been accessed for a specified period of time.
The user should be able to specify the time period after which a file will be considered unused.
The program should prompt the user to delete the identified unused files.
The user should have the option to select which files they want to delete.
The program should permanently delete the selected files from the system.
The program should log all deleted files, including their location and name, in a separate file for future reference.
The program should have a user-friendly interface that is easy to navigate and understand.
Functional Specification:
The user launches the FileCleaner program.
The user is prompted to select the folder or directory they want to scan for unused files.
The user is prompted to enter the time period after which a file will be considered unused (e.g., 30 days).
The program scans the specified folder or directory for files that have not been accessed for the specified time period.
The program displays a list of unused files, including their location and name. The user is prompted to select which files they want to delete.
The program permanently deletes the selected files from the system.
The program logs all deleted files, including their location and name, in a separate file for future reference.
The program displays a message indicating that the selected files have been successfully deleted.
The user can choose to exit the program or scan another folder or directory.
Non-Functional Specification:
The program must be designed and implemented using a high-level programming language, such as Python or Java.
The program should be able to handle large files and directories without crashing.
The program should have a user-friendly interface that is easy to navigate and understand.
The program should be able to run on multiple operating systems, including Windows, MacOS, and Linux.
The program should be secure and not pose a risk to the system or user data.
The program should be well-documented, with clear and concise instructions for use and troubleshooting.
By following these specifications, a developer can create a FileCleaner program that efficiently identifies and deletes unused files from a specified folder or directory.”
This could be improved even more by having it ask questions to narrow down exactly what is needed
On an aside, this is the kind of bussiness idea a chatbot could generate now.
But I don't think it could have generated the idea for Uber when Uber* was the first...
* if you know the history of ride apps better, replace Uber with whoever was indeed first.
"Please give me a business model like Uber, for bicycles, but better"
Let us know how it goes :)
How does this manager-engineer look like now? Managers specify what they need in plain language, and both parties go back and forth with increasing complexity to create based on the shared vision. Managers can already pull off a similar dance with ChatGPT: give it a plain English prompt, it’s responds with what it thinks you want, and you refine until it’s got it. GPT4 can do this with website sketches, and who knows how much finer you could get from there by specifying your prompts and feedback more tightly over less than an hour. Remember: copywriters and brand marketers and marketing creative makers have a similar role of turning complex requirements into designs that sell (and their roles are dying fast).
A software engineers job is to realize products into software. ChatGPT is pretty much as capable as a high school programmer that moves really quickly and takes feedback to heart - and that can handle a good chunk of the software engineering job for a huge fraction of the price. Your job isn’t as bulletproof as you think, and especially not your amazing salary. I’m speaking as a software engineer turned vc backed founder, so I’ve seen both sides of this relationship.
Founders are weird because their job is just to “do everything that needs to be done” so the role flows like water into any spot that isn’t already filled in a company. Replacing that seems like by definition you have to replace almost everyone else first.
I’ve heard that exact same argument for software engineers.
As an outside observer it sounds like you’ve switched from SE to founder, so you’re failing to apply the same standards because you (consciously or not) want to defend your current position.
Do you think it failed to hold?
Founders are the jobs trying their hardest to replace themselves (with hires and go can do the work better) and yet still always find more to do. That’s very unique
That's not even close to unique. Software engineers have been doing that since they existed.
>but the founder role is kinda unique in that it’s just “do everything and if you’re successful you should be constantly replacing your job with an employee”.
That's maybe the ideal of a founder, it's definitely part of the mythology, but it wasn't true for the majority of the many founders I worked with back when I was consulting for early stage startups. Based on my experience with a large sample size, the job of a founder is to convince VCs to give them money.
>How do they apply to software engineers exactly?
It's one of the definitions of the singularity. When AI can write itself, it will improve so rapidly that humans won't be able to keep up.
Not really. They are not "replacing self", the coordination is always needed, just hire the people to the point coordinating the company is their only job. I.e. finding peasants to do their dirty work and they can just rule over them.
Uber was founded in 2009. Before that you could maybe hail a cab if you were in NYC, otherwise you had to call ahead. Someone would drive the cab to you, you'd get in it, and they'd drive you to where you wanted to go.
Now we have AI. Now instead of driving to a financial advisor's office or a bank loan officer's desk or my kid's school:
- I have an AI app that automatically invests my money and runs on my phone's neural processor
- I have an AI app that automatically tells me if I qualify for a mortgage based on a truckload data about me and runs on my phone's neural processor
- There's a booth in my kid's classroom that her teacher puts her into; he says, "hey Siri, teach this kid to stop throwing carrots", the AI teaches my kid in a kind, convincing way that carrots are food, not sports. This runs on the iPad inside the booth that is also the screen
- I have an AI app that tracks how long I'll live, and it ticks down 1.38 minutes whenever I set foot in an automobile, so I try and avoid it now. I can't believe people were ever so reckless.
The race now is who controls this. Probably what will happen is governments will deem it dangerous (disinformation, national security, export controls), and allow only megacorps like Google/Facebook/Microsoft to run them under strict regulations. As a result, these models won't run on our phones but on server farms, and we'll become (even more) dependent on these corporations. This will feel good to the US because it shores up our tech sector--a big economic advantage compared to every other country--while also looking sensible.
I'm bullish on recent ML advancements but it will be a long time before I give one my Schwab login.
I'm skeptical too, but I assume this will just be Darwinian: curmudgeons like us will shamble along with our 5% gains and ill-behaved children, and the bulk of society will reap greater rewards. The worst part is our judiciousness won't even save us if we turn out to be right: society will still collapse whether or not you turned your life over to AI.
Yes, the AI is good at taking low-level requests and turning them into reasonable code, and then refining them, but unless the CEO is going to sit down and spend days telling the AI "OK now make this button disabled when it's clicked until the table loads", you need someone to be doing that.
But still, the real product needs to be fleshed out, back and forth, interactively.
Regardless of whether it is the manager or engineer who commands the tool, you can't entrust the AI to get everything 100% right. Some one has to proofread it, and that is the bottleneck, or where the value of human kicks in.
A human brain can only hold that many details by itself. It can't maintain all the details live all at once, and some business do have overwhelming number of details. A one man team with help of infinite AIs to replace an actual team isn't useful.
At some point, that human will start to fail to verify the system generated by AI is actually what he/she wants.
Educators, generals, dieticians,
psychologists, and parents program. Armies,
students, and some societies are programmed.
by Alan J Perlis, the first Turing Award recipient.Managers, CEOs, Department Heads...are already 'programming'. As the abstraction moves higher up, some people that have excessively narrow expertise will be made redundant.
You can't do that today because fixing the specification after the fact means waiting 6 months and paying 60+ man-months. Once fixing the specification means waiting 10 minutes and paying $10 for inference compute, the idea guys can afford to learn by doing.
That said "software is a tool" is a good frame of mind. You shouldn't position yourself as a 'coder' (those are hired en masse from poor countries) but a problem solver who uses tech.
"Ideas guys" and "coders" being seperate only exist, imo, when development is viewed through the junior lens - once you progress you'll end up wearing all the hats from ideation to QA at different points.
Do I program when I retouch photos in Photoshop? It's a no-code environment that an artist can easily learn and use with no programmers needed.
What's new here is that you DO NOT NEED TO BE EXACT with AI. AI knows human nature and human speech and it can infer what you say and what you need, if you're approximately close, and then make the exact code to do what you need.
Even if you need programmers, you now need 1/100 of the programmers you needed before. What happens to the other 99?
Does it matter whether programmers are 99% unemployed or 100%? Same deal.
It takes drastically less programming effort to create programs than it did 50 years ago. Did that decrease demand for programmers? No, it drastically increased it.
I got a feeling programmer efficiency peaked in the 90s with VB or Pascal desktop GUI apps.
There is so much bloat demanded to create a minimal product now.
> Do I program when I retouch photos in Photoshop? It's a no-code environment that an artist can easily learn and use with no programmers needed.
They're obviously not talking about all GUIs being impossible. The difference between Photoshop and a no code tool like what OP was referring to is that Photoshop doesn't attempt to be Turing complete.
> Does it matter whether programmers are 99% unemployed or 100%? Same deal.
AI completely replacing programmers is pretty much the definition of AGI. There's no point in worrying about your own joblessness in that scenario because the entire economy will either collapse or be transformed so as to be unrecognizable.
Until that point, I'm not personally worried about any efficiency gains putting me out of a job.
You may have seen that there's now a load of drones flying around, doing things that were never possible until now. Dropping bombs on soldiers in trenches, giving support for assaults, targeting artillery.
The fact is war changes with technology. Spearmen and cavalry are obsolete now. Maybe pilots will be soon as well.
But the generals are not. There's always a need for someone to say "given the position we're in, and the logistics we have, and the resources we have, and what we know about the enemy, we should do this..." and this role is still recognizable through history.
Whether computer jobs become obsolete depends on whether you're closer to the general end or the footsoldier end.
I think it’s more probable that managers get replaced by AI first.
While absolute rigor in programming is a hard thing to find in reality, I don't think people understand the difference at all.
Won't that create stronger competition for fewer roles?
This means that an AI capable of completely replacing programmers is by definition an artificial general intelligence. I don't think we're at that point and I don't think we will be for a long time, but if we were there would be no point in worrying about our own joblessness. AGI would spell the end of the economy as we know it today, and it would be very hard to predict and prepare for what comes next.
However, as Carmack says, many developers lack product skills, it’s not just the managerial class that lacks them.
So I think the correct advice is not “engineers don’t need to worry at all”, it’s “make sure you are learning how to build a product not just write code”. For many that’s trivial advice, but not for all.
We have systems, today, that take a specification and generate code from it (and will even do so in a provably correct manner). There are scalability issues with such systems, but they exist and have in some form for decades.
None of these systems have taken the world by storm.
If what ChatGPT and their ilk do is make it easier to spew out bulk spaghetti code that is essentially unverifiable, I don't think that's going to transform the industry nearly as much as anyone thinks it will. For boilerplate code, sure—but that's exactly where we should be using better abstractions anyway. For small code which you can verify by hand, sure. But for anything larger than that, we're just watching a trainwreck in slow motion.
Large code bases written by humans are already hard enough to understand. How much more difficult will it be when your AI can spit out a million lines of code in a second?
Without specifications, it's all worthless. But the specifications are the hard part.
Think about the difference between Assembly and Python. Programming will continue to get higher level. Perhaps it won’t be so foolish to ask a truck driver to “learn to code.”
But here is an even more interesting comparison: the salary of someone writing assembly 30 years ago and someone writing Python today. Higher level != paid worse.
One day a corporate genie appeared to a middle manager and granted him one wish. The manager wished that their business logic could be edited by a graphical tool and that programmers were no longer needed. "Granted", poof!
The next day the manager came to work, all the programmers were gone, fired by upper management. The manager sat down and opened the new graphical tool that had magically appeared on his computer. The interface was beautiful, except for what appeared to be a hairball drawn in the middle of the screen. The manager asked his manager about the hairball, "oh, that's our business logic, you have to zoom in to see the individual rules". The manager zoomed in and surveyed 180,000 business rules, intertwined in a complete graph.
"How am I suppose to work with this?" the manager asked his manager. "You just click and move them around, it's easy", replied the upper manager. "Also, I've been meaning to ask, when do you think those new business rules we talked about last week will be implemented? We need them by Friday."
To reach the point where no-code is a no-brainer further implies inflexibility in the capabilities of applications and moreover, fungibility in their fundamental uses. The question to ask is are the upper layers of abstraction reducible to what's analogous to the outputs of a parse tree.
If we reach this point where creativity and actual innovation is lost and we're all simply attempting to make the next 'facebook for dogs', I anticipate my future personal career switch to starring in geriatric pornographic films.
Given the way we had tremendously productive tools like Visual Basic 6 and Delphi, that seemed to be a reasonable interpretation.
But those tools gave way to C++ and all the .NET insanity. I don't know why someone would give up Delphi, which worked flawlessly and didn't generate any (as far as I can recall) re-only generated boilerplate, to C++ which was a mess, but it happened en masse.
Then most people abandoned personal computing, and the windows desktop for always internet connected pads and phones. Tools have gone severely downward in the past 2 decades as a result.
I suspect we'll get some really powerful AI tools, and go back to worrying about null pointers in a few years anyway.
What’s great is that you could also have AIs write tests - for performance or correctness. Then future prompts could rely on these tests to stay in the correctness bounds for existing projects.
Emulating cognition is almost limitless in what it can do once it gets sufficiently good. So good that it can operate itself. You could hire an AI founder and give them cognition and compute resources to solve any problem.
Here’s an example:
You: Build me a profitable company that uses AI generated content to entertain humans.
AI: How much can I spend on cognition and compute? How much time do I have?
You: I want you to spend at most $X before coming back to me. You have until Monday. Along the way I want to see your plan before we decide to execute. Spend at most 5% of that making the plan and 1% calculating its probability of success with confidence interval.
… within some small timescale
AI: Here’s my plan as a video with rough examples demonstrating the product and strategy. Here’s a table with our probability distribution of predicted success metrics and confidence intervals.
You: Plan approved you can spend the rest of the $X
… on Monday
AI: Done. We’ve made a profit of $Y, with total revenue so far of $Z. We have a plan for reinvesting these proceeds to make even greater future profit. Here’s a table of our expected success metrics based on reinvested amount. How much should we reinvest?
You: Reinvest 50% into perpetuity and deposit the remainder in my account. Book me a trip around the world using 25% of the current deposits with accommodations for my family.
Now go enjoy your life.
I gave GPT-4 a budget of $100 and told it to make as much money as possible. I'm acting as its human liaison, buying anything it says to. Do you think it'll be able to make smart investments and build an online business?
The fallacy here is that programming is not a process of translation. It is a process of invention. Going from rough or high-level functional requirements to a functioning computer program requires inventing novel logic that has not been invented at any other step. It involves making business decisions that have not been made at any prior step.
Whatever can be categorized as menial "translation", i.e. a step in the business process where no new logic is added or business decision made, has already been automated away - compilers.
Nevertheless, AI is different. Because now you don't have to specify things at a programming-language level of granularity. It will select the programming language constructs most statistically likely to match a solution to the specified problem.
So now we're in a whole 'nother world where the programming, as such, will be done by machine while the role of designer or architect must still be done by humans. But the legions of programmers employed by companies are about to go the way of farriers.
> In essence what has happened in software development is that the level of abstraction has gone up while the machine has taken over more and more of the nitty gritty details. From punchcards, to assembly, to COBOL, C, Perl, Java, Python, Erlang, Rust.
I've had friends and peers contact me in regards to the AI, GPT, et al headlines and they're always surprised at my calmness. You've written out exactly what is happening and why there shouldn't be any worry regarding jobs. I think the worry is generally under the premise that everyone has to upskill themselves which is against human nature. Folks are feeling uncomfortable but this is another cycle.
> But the rigidity of what is needed to specify a program that really does what you want hasn't. Especially evidenced by the fact that recent programming language developments often have a specific area where they shine, but not raising the abstraction level that much.
Another great point. Like you wrote, there really is a need for "translators" for programming languages and it's not going away anytime soon. If anyone has played around or even just read/watch through folks using AI/GPT/Etc. you'll come to notice that the tech is not "stable". It's only good in limited instances.
Finally, the headlines and copywriting of most of the pieces and journalism coming out is definitely hit and miss. A mix of pessimism and optimism. It's important to remember what we are witnessing is another technological cycle and another cycle in general if you want to looking at a bigger scale but that's another discussion for another time.
I believe the world is wiggly, not geometrically perfect, intellectuals struggle with that because square problems are easier to solve. Ideal scenarios are predictable and it’s what we like to think about.
Have you ever had to use a sleep() intentionally just to get something shipped ? That’s a wiggle.
We’re going to try square out the world so we can use ChatGPT to solve wiggly problems. It’s going to be interesting.
Yesterday I tried to use a SaaS product and due to some obscurity my account has issues and the API wouldn’t work, they have a well specified API but it still didn’t work out, I’ve been working with the support team to resolve it, but this is what I call a wiggle, they seem to exist everywhere.
Ask a construction worker about them.
Hah. So true. The more I work on renovating parts of my house the more I see where a workers experience kicked in the finagle something. Very analogous to programming. All the parts that fit together perfectly are already easy today. It’s those bits that aren’t square, but also need to fit where the ‘art’ comes in.
Can AI also do that part? IDK, currently I believe it will simply help us do the art part much like the computer in Star Trek.
If we need a semi-intelligent system to help us with the copy pasta, so be it.
It failed spectacularly
I wonder if it's because the API is quite large, and I had to paste in ~10 messages worth of API docs before I was finished.
It kept repeating segments of the same routes/paths and wasn't able to provide anything cohesive or useful to me.
Was your API pretty small? Or were your docs pretty concise?
GPT-4 can now accept 8k or 32k. The 32k version is 8 times larger than the one you tried.
And these advances have come in a matter of a few months.
Over the next several years we should expect at least one, quite easily two or more orders of magnitude improvements.
I don't believe that this stuff can necessarily get a million times smarter. But 10 times? 100? In a few months the memory increased by a factor of 8.
Pretty quickly we are going to get to the point where we have to question the wisdom of every advanced primate having a platoon of supergeniuses at their disposal.
Probably as soon as the hardware scales out, or we get large scale memristor systems or whatever the next thing is which will be 1000 times more performant and efficient. Without exaggeration. Within about 10 years.
That should be the place for experiments like this.
Lowery latency links back to Earth and first see how it goes.
Also you don’t think there will be resource constraints at some stage ? It’s funny we yelled at people for Bitcoin but when it’s ChstGPT, it’s fine to run probably tens of thousands of GPUs? In the middle of a climate crisis ? Not good.
Also, with BTC it's literally burning it in an unproductive way for "improved security". It's like lighting a forest on fire to keep warm.
All the AI tools combined, last I heard, aren't consuming 0.5% of the world's energy usage. And even if they were, it would be absolutely bonkers to argue we should keep doing that when there were alternatives that accomplished similar goals without the energy usage (proof of stake)
It's really the early days, but there's no way energy consumption won't grow exponentially now there is potential for earning money.
You need a real ability to reason and preserve context beyond inherent context window somehow (we humans do it by keeping notes, writing emails, and filing JIRA tickets). So while this doesn't require full AGI and some form of AI might be able to do it this century, it won't be LLMs.
no, I'm not that deep in hell
It's inevitable that we'll reach AGI. It's inevitable that humans will extinct.
Everything you described is not how today's AI works. It's not even a stretch, it's just pure sci-fi.
Why wouldn't it? It's trained on code generated by humans and already generates code that is more readable than the output of many humans me included.
You can fairly easily update the “next token” choice with a syntax check filter. LLMs like ChatGPT provide a selection of “likely” options, not a single perfect choice. Simply filter the top-n recommendations mechanically for validity. This will improve output a lot.
Similarly, backtracking can be used to fix larger semantic errors.
Last but not least, any scenario where a test case is available can be utilised to automatically iterate the LLM over the same problem until it gets it right. For example, feed it compiler error messages until it fixes the remaining errors.
This will guarantee output that compiles, but it may still be the wrong solution.
As the LLMs get smarter they will do better. Also, they can be fine tuned for specific problems automatically because the labels are available! We can easily determine if a piece of code compiles, or if it makes a unit test pass.
We're very much in the "early days" of experimenting with how LLMs can be effectively used. The API restrictions enforced by OpenAI are preventing entire categories of use-cases from being tested.
Expect to see fine-tuned versions of LLaMA run circles around ChatGPT once people start hooking it up like this.
It will have to describe these requirements in a way that a human can understand, and verify. The language will have to be unambiguous and structured. A human will need to be able to read that language, build up a mental model, and understand it is correct, or know the way to make corrections. Who do you think that person will be? Hint: it will be a specialist that knows how to think in a structured, logical way.
edit: Ultimately there are going to be iterative pipelines with traditional programmers in the loop rearranging things and reprompting. Math skills are going to be deemphasized a bit and domain skill value increased a bit. Also, I think there's going to be a rise in static analysis along with the new safe languages, giving us more tools to safely evaluate and clean up output.
"Everything's broken, why am I paying you?"
"Everything works, why am I paying you?"
But it's definitely not true of the average piece of software. So much of the world around us runs on software and hardware that somebody had to build. From your computer itself, to most software that people use on a day-to-day basis to do their jobs, to the cars we drive, to the control software on the elevators we ride, software is everywhere.
There is a lot of waste in software, to be sure, but I really don't think the average SE works for a company that shouldn't exist.
Everyone thinks only in terms of current needs and state of affairs of people when analyzing a future technology. No one thinks about the insatiable human desire for more and the higher expectations for that new normal that always meets the increased productivity available. Anything that automatically solves much of our wants is doomed to be static and limited.
But upper management can know exactly what LLMs are capable of, because they are products with fixed capabilities. ChatGPT is the same ChatGPT for everybody. This makes firing obsolete workers much safer.
It's not wrong, but it's also not applicable to all people who enjoy performing an instrument.
You can still do it - lots of documentation, emulators and other tools are available.
But nobody is going to pay for it now.
This one raised over $180,000 just four years ago, for example:
https://www.kickstarter.com/projects/morphcat-games/micro-ma...
This one raised $32k just this past December:
https://www.kickstarter.com/projects/1222722105/full-quiet-a...
Another that raised $49k:
https://www.kickstarter.com/projects/megacatstudios/ronius-t...
$55k:
https://www.kickstarter.com/projects/artix/dungeons-and-doom...
$84k:
https://www.kickstarter.com/projects/batslyadams/super-russi...
So yeah, far from an isolated incident. If you can make a slick looking campaign, you can definitely get people to pay you to make NES games.
"if you build a career in developing plumbing and glue code, in the future you could have a successful Kickstarter where nostalgic developers buy your curiosities"
But why not? There are quite a few businesses that basically run off of Kickstarter. Like 30% of the board game industry nowadays fund most or all of their prints runs off Kickstarter, including some of the largest board game publishers, like CMON, Awaken Realms, AEG, Eagle-Gryphon, Garphill, Greater Than Games, Renegade, Portal and Queen Games (lots more publishers than this too).
https://www.dicebreaker.com/companies/kickstarter/news/table...
Those Kickstarter opportunities are something you do once you already have a viable income in something else because in the end they don't pay particularly well I feel. It has to be a labor of love.
Source: raised and largely surrounded by musicians who either complained to high heaven about the pay or did something else to supplement their income. Engineers were a particular target of vitriol which led to me becoming one.
You can do both, at the same time, but one has external expectations you shouldn't forget about.
Still, even then he was far from "let's use new library, just because it's fun to play with".
Of course there's a real time component to DJing as well. Paying attention to the crowd and how they're reacting to your mix. That's the magic that's harder to automate.
The technical aspects were always not that important.
The truth is, had I done so, I’d feel a lot like you described.
As things get easier, true craft and skill are less appreciated and lost as the application becomes more democratized. From the perspective of the expert/skilled individual, this is terrible. On the other hand, it’s amazing what happens when everyone has a mindblowingly good camera on them almost always. In the end, we are collectively better for it, but individuals absolutely do see their value diminished.
> In the end, we are collectively better for it, but individuals absolutely do see their value diminished.
You've summed it up well.
Sure, you can entertain doing hobby music by yourself out of passion and it can have 0 listens and thats great. Keep doing what you love!
The tweet however is in the context of a JOB or CAREER.
If you code and produce 0 value in either saving engineering hours, saving money, producing revenue - whats the point?
So the analogy is rather about having an understanding and skills of a full-stack product person that has the context to build valuable things, rather than typing on keyboard in isolation.
It's still "how". Only on a higher level. For example, instead of placing the form elements exactly and designing them you describe data flow and meta info about the data to be gathered via the form, and how it looks and where elements are placed on various screens happens automatically.
Writing code in a higher level vs. assembler still is coding, but you worry about very different things. Just compared with assembler, since looking back is easier than looking forward. Instead of worrying about (the few) registers and interrupts and in which RAM cells you place what you now think about very different things. It still is programming though, and you still tell the machine "how". Only on a different level.
When you lead a large company instead of working with a machine on the factory floor the work is very different, you still need precision and know "how", only on a different level. Even if you have "underlings" who can think, and you can let them execute the sub tasks you create, you still have to know what you are doing, only on a higher level.
Definitely. Carmack is no dummy, but I’d argue this comment section proves that he gave a pretty bad answer here (bad for the audience, not if you know Carmack and what he means).
I guess it’s the impostor syndrome, but many programmers have an out-of-place reductionist view of their work. It’s not simple, and crud boilerplate proves little about the future prospects.
Managers OTOH really are in the zone of GPT parity. At least a much larger subset of their day-to-day activities. So are many soft skills. In fact, soft communication is where LLMs shine above all other tasks, as we’ve seen over and over in the last few months. This is supported by how it performs on eg essay-style exams vs leetcode, where it breaks down entirely as it’s venturing into any territory with less training data.
Now, does that mean I think lowly of managers? No, managers have a crucial role, and the ones who are great are really really crucial, and the best can salvage a sinking ship. But most managers aren’t even good. That has a lot to do with poor leadership and outdated ideas of how to select for and train them.
I dunno, I got what he meant from the start, and the same advice was given by many people in many forms, usually in variant of "well, the business doesn't give a shit about details but the end product".
> Now, does that mean I think lowly of managers? No, managers have a crucial role, and the ones who are great are really really crucial, and the best can salvage a sinking ship. But most managers aren’t even good. That has a lot to do with poor leadership and outdated ideas of how to select for and train them.
I joked some managers could be replaced by forward rule in mailing system, ChatGPT is an upgrade on that.
The advice here is clearly meant for someone who wants to invest in themselves to provide food and shelter for themselves and/or a family in the future. (Ie “doing all this hard work for nothing… AI will make my future job obsolete”).
The advice is spot on. Soft skills are hard to learn, harder to teach, and allow for flexibility with regards to the tool used.
> anyway something about it bugs me and I don't think I'd follow it exclusively even if I was starting today.
I’d be you like the money but don’t seem to want it as much as you want to solve deterministic puzzles (“not interested in becoming a manager” ie “not interested in maximizing career/salary growth potential).
What bugs you seems to be that you can’t yet see the puzzle left for you to work on once GPT-12 makes coding obsolete and software architecturing obsolete.
A long time ago I got some good feedback, “You were hired because you typically know the right answers and/or know how to find them. You were promoted because you also seem to know how to ask the right questions, and that is significantly harder.”
I’m relatively certain it’s analogous to Carmak’s advice.
This is not going away with the AI in the picture.
It will be just different.
I'd unfortunately tried to make that mismatch work for too long, and as a result I completely destroyed all of my programming interest via severe burnout.
If this resonates with whoever reads this: please take your passion seriously and protect it. I don't know if I'll ever be able to enjoy coding again, unfortunately.
Lately I've been getting very much into FPV drone videography and 3D printing/design, which are both incredibly gratifying in the way programming used to be for me, but somehow even more so because the process involves mastery of physical matter on top of navigating a high-dimensional abstraction space.
That being said: I don't plan on having kids and enjoy relatively low cost activities, so I don't need to make nearly as much as I did in software to support myself.
Most didn't.
Programming in the traditional sense will be obsolete and people programming for the fun of it will be a niche thing.
But if you know who he is and what he does these days, it makes sense I suppose. Can't be in that business environment day after day without going slightly nuts eventually.
- I expect developer productivity to go up 1.5x - 15x over the next several years assuming GTP-4 based tooling is integrated into IDEs.
- There will be two opposing forces acting on developer wages. First, developers will be more productive, therefore the price of one hour of work should go up. But - the supply of developer output will increase as well, which would push price per "line of code" or per "unit of developer output" down. So the big unknown is the demand curve.
- There will be a temporary boost in demand for developer work connected with the transition to this new technology. Big corporations will want to upgrade their systems to automate consumer support, startups will make new tools for AI-generated graphics, etc.
- We can also study the effects of technology-driven increases in worker productivity by looking into history. Developer productivity has always been going up - thanks to stackoverflow.com, better languages, better IDEs, more and better libraries, etc. There's also a greater supply of developers (e.g. India). Didn't change the job market too much. One should not draw strong conclusions from this though, it's a very superficial analysis. On the other hand, people working in agriculture have become much more effective, which lead to much fewer people working in agriculture, maybe because people need to eat as much calories per day as they did 100 years ago.
- My base case, based on the assumption that GPT-4 will not improve dramatically, is that developer wages will stay roughly constant. But there's a lot of uncertainty in this conclusion and in the assumption.
Bad developers on the way of becoming obsolete by AI will see drastic improvements from the thing that’s about to replace them. Otherwise it’s slightly better intellisence integrated in your editor.
The difference is that bad developers are primarily concerned with literacy and their primary intent is chasing easy. Better developers are comfortable reading code no differently than an attorney reading a large contact and their primary intent is chasing better automation. It’s the difference between designing a car engine versus hammering pieces together.
I suspect this will open wage distinctions. Those who can write software will be identified from those who can’t. Those who can will be fewer in number and their wages will increase. Those who can’t will be a lower skilled commodity with depreciated wages, like the way data entry was once a skilled profession many decades ago but no longer.
The are objective ways to measure competence in software but nobody wants to use them. Most people don’t want to discover just how good they aren’t.
Hardly. 10% of the time spent is in writing code and the other 90% goes behind debugging and fixing things.
Even if AI shrinks the time spent in that 10% in writing by another 90%, you still have have to take full time for maintaining that code. Changing, debugging, testing, deploying, profiling, log analysis.
Worse, its now someone else's code you need to understand and debug, and not the one written by yourself.
1) Wages have very little to do with value/productivity in a free market. They are almost entirely determined by supply and demand. Value simply places a ceiling on compensation. Thus, if far more people can perform a "programming" job because of GPT-X, unless the demand for those jobs rises significantly the net result will be wage reduction.
2) There's this weird thinking on HN that since a developer's job involves [insert your % estimate of time spent actually coding/bug fixing] and the rest is figuring out requirements, dealing with weird requests, planning, etc. that means developers can't be replaced. However, I don't see a whole lot of discussion around what the difference is between a developer and a competent business analyst in a GPT-X world. The latter can be had for significantly less money, requires less training, and if the actual programming part is largely automated away or concentrated in the hands of fewer "real" developers, those roles start to look awfully similar.
with the danger of invoking the "No True Scotsman" fallacy, I'd say that competent business analyst are even more difficult to get hold of than a competent programmer.
I've had so few managers that were competent at managing people and projects.
I see this as the main argument against "we will just have tools that allow managers and ba's to do what devs do now". I think folks often forget that there are two sets of requirements for every app: business requirements and technical requirements. Non technical folks might understand the business requirements very well and may even be able to write code that satisfies those requirements, but the real value in a dev is squaring those business requirements with technical ones. A BA might look at a DynamoDB table and say "yeah lets just run a scan for the items we need", whereas a dev will look at the same problem and say "yeah we can do that but it will cause issue A, issue B and sometimes issue C". And the dev knowing those gotchas is why you have them there in the first place, a dedicated person that knows all these gotchas and makes sure you organization avoids a footgun in prod.
2) With GPT-4 you still need to know how to program. A product manager can't replace you.
2) I specifically did not say GPT-4. If you think v4 is the peak of what will be possible when looking at how far we have come in just 2 years then I don't know what to tell you. Also, a product manager is not a business analyst.
When discussing economy, it's good to start with understanding the situation through the lens of economic models and than look to what extent are the conclusions applicable to the real world.
Using your argumentation - above you said that xyz is true in a free market, but real-world markets are not free...
2) And I specifically said that I'm assuming no dramatic improvement beyond GPT-4. The 2 misconception I supposedly have... I didn't even make that claim.
I wish! I still often find out my team members don’t know basic text/Unix tools. Heck one guy took our list of enums in a JSON file and wrote on his keyboard by hand each of them into a class. It took me maybe a minute in Sublime Text when he wasted at least a day
Except population exploded also, and the only reason we could support such a population has been thanks to advances in agriculture (it could be argued that's not a good thing, as the larger population is helping fuck our planet up in other ways, but that's for a different thread). So there has been an increased demand for food.
However, there's only so much arable land on this planet. The planet is finite in size. So when basically the entire planet is already being farmed, you can't really add more farmers, so further efficiency is just leading to less farmers.
Software is not so finite. It technically is, as we only have so many servers or whatever, but we're nowhere near the upper limits of what all we can handle or the appetite for software that companies have (which seems about infinite). Additionally, we have a habit of rebuilding and replacing software every few years, so even if we reach capacity limits, there's still demand for new software to replace the old, or working on new features for existing software.
So it's a bit different of a situation and not really comparable.
On the other hand, people are much more finite in the amount of food that they require
And how, exactly, is this going to work?
Is every IDE going to pay some license fee to OpenAI? Will that be up to the companies or—even worse—individuals who use the IDEs?
What happens when OpenAI decides that GPT-4 is passé and it's time to move on to something else? Will the existing IDEs that are designed to interact with GPT-4 stop working?
Will GPT-5 or whatever provide the same kinds of assistance, or will there be regressions? Will they require a completely different license for it?
See, these are some of the important questions that come with assuming that a fairly new for-profit company will act as the backbone for your marvelous programming renaissance—particularly when the service in question is one that takes quite a lot of resources to continue to operate.
Personally, I would be interested in some kind of LLM-assisted IDE, but no way in hell am I going to make any significant portion of my job dependent on an organization that decided, as soon as it was clear there was real interest in what they were doing, that they'd just toss the "Open" part of their name and principles out the window and just go for closed-source proprietary product and maximum hype for more profit.
Backend engineers who proudly don't know how to write frontend code and vice versa. Professional engineers who refuse to learn how to use modern IDEs and monitoring platforms. People who don't know how to quickly prototype software as if building something without complete rigor is beneath them. People who refuse to learn or work in certain programming languages they deem inferior.
And rather than seeing this as a gap in their own skillset they think of it as a mark of intelligence or moral superiority.
I suspect we'll see another divide around AI assisted coding with some engineers simply refusing to learn how to use the tools effectively to make themselves more productive as a point of pride.
As long as people are in charge, we'll have plenty willing to pay technical workers who see themselves as artists.
They will naturally fall behind their colleagues.
In my experience - I ignore the modern IDEs and systems purely because I don't have time to learn every new tool... :-D
A modern (or any) IDE, in my opinion, can debug your code, push parts of the editor into REPL (with debugging), understand code for things like autocomplete, linting, quick navigation and usage search. And yes, Vim can serve as a modern IDE if you spend enough time with it.
Vim can be very slow with a ton of plugins.
Language Learning Models like GPT? Not even close.
We should absolutely stop calling those "AI". They are not intelligent. They model intelligent behavior: human writing.
We should probably even stop calling them "Language Learning". They don't know or care what language is: they learn whatever patterns are present in text, language or not.
Text contains the patterns that humans identify as language; but those aren't the only patterns present in text: which means language is not the only thing being modeled by an LLM. There is no categorization happening either: a pattern is a pattern.
There is this religious cult surrounding LLMs that bases all of its expectations of what an LLM can become on a personification of the LLM. They say that we can't possibly understand the limitations of this method; therefore there are no limitations at all! It's absurd.
Citation needed. Numerous actual citations have demonstrated hallmarks of intelligence for years. Tool use. Comprehension and generalization of grammars. World modeling with spatial reasoning through language. Many of these are readily testable in GPT. Many people have… and I dare say that LLMs reading comprehension, problem solving and reasoning skills do surpass that of many actual humans.
> They model intelligent behavior
It is not at all clear that modeling intelligent behavior is any different from intelligence. This is an open question. If you have an insight there I would love to read it.
> They don't know or care what language is: they learn whatever patterns are present in text, language or not.
This is identical to how children learn language prior to schooling. They listen and form connections based on the cooccurrence of words. They’re brains are working overtime to predict what sounds follow next. Before anyone says “not from text!” please don’t forget people who can’t see or hear. Before anyone says, “not only from language!” multimodal LLMs are here now too!
I’m not saying they’re perfect or even possess the same type of intelligence. Obviously the mechanisms are different. However far too many people in this debate are either unaware of their capabilities or hold on too strongly to human exceptionalism.
> There is this religious cult surrounding LLMs that bases all of its expectations of what an LLM can become on a personification of the LLM.
Anthropomorphizing LLMs is indeed an issue but is separate from a debate on their intelligence. I would argue there’s a very different religious cult very vocally proclaiming “that’s not really intelligence!” as these models sprint past goal posts.
- https://arxiv.org/abs/1909.07528 - https://arxiv.org/abs/2212.10403 - https://arxiv.org/abs/2201.11903 - https://arxiv.org/abs/2210.13382
There are also literally hundreds of articles and tweet threads about it. Moreover, as I said, you can test many of my claims above directly using readily available LLMs.
GP has a much harder defense. They have to prove that despite all of these capabilities that LLMs are not intelligent. That the mechanisms by which humans possess intelligence is fundamentally distinct from a computer’s ability to exhibit the same behaviors so much that it invalidates any claim that LLMs exhibit intelligence.
Intelligence: “the ability to acquire and apply knowledge and skills”. It is difficult to argue that modern LLMs cannot do this. At best we can quibble about the meaning of individual words like “acquire”, “apply”, “knowledge”, and “skills”. That’s a significant goal post shift from even a year ago.
All through the lens of personification. It's important to take a step back and ask, "Where do these hallmarks come from?"
The hallmarks of intelligence are literally what is encoded into text. The reason LLMs are so impressive is that they manage to follow those patterns without any explicit direction.
> I dare say that LLMs reading comprehension, problem solving and reasoning skills do surpass that of many actual humans.
People tend to over-optimize reading comprehension by replacing what they are reading with what they predict to be reading. Every person has a worldview built out of prior knowledge that they use to disambiguate language. It takes effort to suspend one's worldview, and it takes effort to write accurate unambiguous language.
An LLM cannot have that problem, because an LLM cannot read. An LLM models text. The most dominant patterns of text are language: either the model aligns with those patterns, or we humans call the result a failure and redirect our efforts.
> Anthropomorphizing LLMs is indeed an issue but is separate from a debate on their intelligence.
How could that even be possible? The very word, "intelligence" is an anthropomorphization. Ignoring that reality moves the argument into pointless territory. If you try to argue that an anthropomorphized LLM is intelligent, then the answer is, "No shit, Sherlock. People are intelligent!" That doesn't answer any questions about a real LLM.
> as these models sprint past goal posts.
Either an LLM succeeds at a goal, or it fails. It has no idea what the difference is. The LLM has no concept of success: no category for failure. An LLM has no goals or intentions, and doesn't make a single logical decision.
So what is its success coming from? The text being modeled. Without humans authoring that text, there is no model at all!
The goals are authored, too. Every subject, every decision, every behavior, and every goal is determined by a human. Without human interaction, the LLM is nothing. Does nothing think? Does an arrow find its target? Of course not.
The hype, more appropriately the cult following claims it will replace jobs and analogous to, second coming of Christ in the aspect of change the world. What it appears to me is there is massive money to be made. It as if, because how strong the hype is, it will drive future VC back startups to be make the next billions. My suggestion to you is, if you are in to make money, you will need to put the common sense part away and join the bandwagon.
I have same sentiment as you regarding LLM, but the biggest issue is that this sentiment will not make money. To make most of what is going on, is to fake the belief that this model will have a great affect on humanity and software solution that makes use of LLM needs funding till an IPO.
An LLM is not a language model, it is a text model. An LLM does not lie, it provides whatever continuation happens from modeling the prompt into the training corpus; with no notion of truth or fact. An LLM does not invent novel behaviors to solve patterns, it finds patterns that were already in the text that humans consider novel.
Practically everything I have just said is in conflict with how LLMs are presented by their authors. That's where the cult narrative is rooted.
Great point. Was oblivious to it but it is hard to ignore now.
Interesting discussion happening right now here:
Who would guess, beyond Hitchhiker's Guide to the Galaxy, that I can use my phone in 2023 to translate anything on a foreign restaurant in real time.
that said, I expect an ai assisted clerk to be order magnitude faster than not. it will be though for people at the bottom of the learning curve for a bit, but in half generation the educational offering will include how to work toghether with ai, massively improving worker productivity
that is not to say it won't have negative impact. there's so much job that we need, currently programmer are in high demand, and it's the one of the highest paying jobs, but that will change, possibly dramatically. I expect people at the top of the chain to be in trouble first (architects and whatnot) because they are the least creative and the one that possibly require the most knowledge, things ai do exceptionally well as of today.
It is already so that in many industries there are hardly any traditional coder jobs on site, and having to explain every step to avoid it going off rails in offshoring assignments is hardly going to be any different to explain it to an AI, when it gets good enough.
Maybe by GPT-20 only, but it will come, and then the roles of architects and business analists are the only ones left.
Agreed. Although... we actually don't know which jobs will be the ones left. For all we know, it will have taken over business analysis, too. Plus, from my experience working on architecture, I suspect that automatizing that part of my job won't be too hard.
For all we know, the only jobs left will be nurse and deep sea miner.
Wasn't AI driving just few years away for 5 years?
I'm sorry, but the landscape in then might be as alien to someone asking today, as todays would have been to someone asking 15 years ago (2008).
What John said is correct, but personally I think he's underplaying how much people could be affected. Those "product skills" take years of grinding to really sharpen, and in 15 years only a few people might actually be needed to apply them
Take any mature-ish technology that you use today and compare the version 1/3 through its life to the version you use now. Look at Chrome 20 compare to Chrome 111, or React 14 compared to React 18, or an iPhone 4 compared to an iPhone 14, or a car from 1950 compared to a car today...
The difference is always quite significant. Superficially they're still the same thing, but if you look at the detail everything is just better. AI will be the same.
I'm not. I'm saying it's true for every technology. Everything gets better with time.
As for self driving cars, compare a DARPA challenge car from 2013 to a Waymo car today. It's massively better.
We still had a Moto X from 2013 that my wife would power on every now and then to test an app that they were developing (iOS household), and besides the camera it still looks like a perfectly usable modern smartphone. When using it, it doesn't feel like a phone from the prehistory.
I'm sure there's still room for innovation, but I think a lot of it going forward will be driven by rapid improvement in AI capabilities.
In 2008, tech wasn't everywhere. iphones were brand new and very few people had them.. There was no "mobile browser" market share (though we did have SMS gateways). 77% of the global population hadn't even been on the internet yet.
AI looks like it's going to be at the forefront of the next big wave of fundamental changes to society, and it's really hard to predict where that will lead us. But I suspect it's going to become apparent that this relatively brief period of tech-elite empowerment was a historical anomaly, because the AI underlings are going to be willing to do a lot more work with none of the coddling, and they're going to improve very quickly.
Yes, gmail might have had some SPA-like behaviour in 2004-2006 but it was nothing like what we have today. Pretty sure I got access in 2005 because I knew someone who worked at google, and it was mostly doing full refreshes between actions at the time, like pretty much the entire rest of the web
You seem to be trying to redefine SPA to mean something else and much vaguer - the use of some specific frameworks, or not being "hacky" whatever that means - but your history here is just off.
Also, jquery was written in 2005 and launched in 2006, and became popular very fast. It was definitely pretty well known by 2008 and of course jquery itself was nothing new, most companies had very similar sets of utility libraries for JS that they used. Jquery just happened to be open source and have a monomaniacal focus on terseness at almost any cost.
Reality is the web has changed relatively little since 2008. It got some more APIs that weren't new, they were used in native desktop/mobile apps for many years beforehand, and that's about it.
SPAs certainly were a thing back then, it was just called AJAX. (Not to mention the desktop apps that were, architecturally, almost the same thing.) jQuery was a response to the popularity of putting interactivity in the browser, not a precursor.
The questions remain the same, not just from 2008, but going back a long ways… Where does the code live? How is it transformed to execute, where does it execute and how it is moved there? Where does the data live, how is it transformed and moved to where it needs to be displayed, and how are changes moved back? When some of the answers shift, due to changing network capabilities, processing capabilities of nodes, or scaling needs, it’s doesn’t really change the overall picture.
Or typescript! I was writing actionscript 3 in 2008 which is essentially the same spec
The premise of all this seems to be that learning how to program computers is difficult or complex. It is not.
Also, AI will not replace human reasoning in 10-15 years. If it does, it means AGI, and we all have much bigger problems than layoffs.
True. But I guess the big question is what kind of skills you're going to need after that.
Progress will grind to a halt just like self driving cars did because the real world is just too chaotic and 'random' to be captured by a formula/equation/algorithm.
My prediction is: AGI is theoretically possible, but would require impractical amounts of computing power - kinda like how intergalactic travel will never happen.
And regrading comparison with self driving car they are still improving just the bar for them is much higher. If autopilot works 99.9% if time then 1 out of 1000 drivers will die - so technology has to be even better. for LLM is enough if it’s 90% good to be broadly useful.
Even with self driving truck if one truck driver is leading another truck behind controlled by AI, and just for safety you have somewhere C&C center with one person monitoring 4 such ai trucks and in case unexpected event remotely take over control then one truck driver position is redundant.
i dont think, if you took someone from 15 yrs ago, and transplanted them here today, that they'd find it all that different technologically. Sure, machines are faster, slightly different, and such, but the fundamentals haven't changed. A software engineer could just as well write an app today as they had 15 yrs ago.
You'd have to go back 30 yrs, for computers (and the landscape of computing) to have been different enough, that you can't transplant a software engineer.
What exactly revolutionary happened in the last 30 years? javascript? (two weeks project)
amazon, google, facebook, netflix, iphone, instagram, tiktok -- execution is great but seems inevitable that somebody will create it. Ok, for non-IT people iphone was a game changer (the first personal computer that your grandmother can actually use).
The ability of generative AI to produce BS indistinguishable from human BS is very impressive but it remains to be seen whether it is a net positive for an average developer (the time wasted correcting it, waiting for its output can be spent understanding the problem better--the typing the code itself is a small part of a programmer who knows what they are doing).
Agreed, what John said was a bit of a platitude. I understand the spirit of what he said but he could have phrased it better.
Hahahah. Yes. Who could have foreseen the trailblazing advances in the tech industry such as "television, but over the internet", "booking rooms, but via a website" or "posting messages on a forum"
Don't forget the stuff powering it: "RPC, but over HTTP", "scripting languages, but compiled", or "Key-value stores"
If only I had dared to dream.
If programmers can be replaced by AI, so can it replace even the blue collar jobs. Because if it can’t that is what this developer here will be working on.
I’m a robotics engineer. There are two options. AI can either replace all jobs or it can’t.
If it can then we are all out of a job, and then the next project is how to organise society such that everyone can live a good and fulfilling life in harmony.
If it can’t, for whatever reason, then that is the next thing I will be personally working on. Simple as that.
Because of this I don’t see how would it be possible to run out of programing jobs before running out of all the other jobs first.
You are talking about ChatGPT, and LLMs, but what i am saying transcends particular technologies.
(Submitted title was "John Carmack: From a DM, just in case anyone else needs to hear this". A mod changed it to "I’m concerned AI will make CS jobs obsolete" but yeah, that changed the meaning. Sorry!)
AI will take jobs. Super frustratingly, it'll probably make call centers even more useless (has anyone ever gotten anything useful out of one of those ("Hi, I'm ____. Can I help you?" popups at the bottom right of web sites?) And it'll certainly automate some of the "copy/paste" type programming jobs at the lower end of the scale, the same way email automated a lot of secretarial jobs; i.e. 10 fulltime copy/paste programming type jobs may become a job for one human and an AI assistant.
Which leaves people who are really passionate about and good at their craft. Somewhat relatedly, I saw about an uptick of people going into the trades. AI won't take plumber or electrician jobs away in the foreseeable future.
But talking to my friends who do these jobs it always seems like it would be even more vulnerable to AI than programming.
Experienced electricians get paid decent wages because they have had lots of training and then have seen loads of different problems. So they intuitively know things like 'This is a 1960s house so if there's a problem with the lighting the first thing I should check is the fuse box connector, it should look like xyz, etc. Etc.'. This seems like exactly the sort of thing an LLM could do for them.
I think you could easily see a world where an electrician is someone on minimum wage with very minimal training who blindly connects wires as instructed by an AI.
I reckon the safest jobs are ones with limited reliance on knowledge and a very high level of physical skill (in environments where it's hard to get machines to operate). Bricklayers, plasterers and painter/decorators will be the big earners of the 2050s!
However, we tried a description of a fake case to see what Bing could do, and it couldn't do much. And I think the reason is that there are very detailed documents on the rules that they follow for their decisions, but these are not online - they are in a private intranet and they can't take them out of there. If Bing had access to those documents I don't think it would have much of a problem.
So maybe a way for workers to protect themselves from being replaced by AI is not uploading much information about their jobs to the Internet... I wonder if this will lead to a situation like guilds in the middle ages, treating job skills essentially as secrets.
- fitting a timer into the switchboard to control the hot water cylinder. A simple job, but the sparky also had to talk to me (the client) to get us both on the same page.
- fitting an EV fast charger in the garage. Not much science, but a lot of cable running and clipping down, then the garage switchboard needed to be swapped out for a larger one that could take the required RCD. And convincing me which brand charger to go for. 2 guys working together for a couople of hours.
- fixing the range hood light (always on due to a broken switch). He spent quite some time trying to extract the broken switch, with the range hood balanced on his shoulder and wires everywhere.
In every case there was no real complexity to the job, not the sort of thing that an AI could have been helpful at at all. Just a lot of common sense, knowledge of the regulations and much skilled manual work.
I don't think AI is coming for electricians any time soon.
My argument is that it is the 'figuring out' that drives electricians wages, not really the doing part. Because while clipping down cables and extracting switches is fiddly work, I'd argue it isn't a skill with enough barrier to entry to maintain high wages (as compared to brick laying or plastering, for example, which you simply can't do to a professional level without years of practice).
So most of the value delivered by an experienced electrician is in talking to clients and identifying the correct technical solution, and is therefore pretty much analogous to the value delivered by software developers.
Therefore if we accept the logic that software developers will no longer be required (or that their value will be greatly diminished) it's hard to see how that wouldn't apply to electricians too (in the sense of being a well-paid trade over and above your average manual job).
(Btw - I DON'T think either will happen, but I just think electrician is a weird choice of example for those that do think that)
The safest jobs are ones that honest to self for the doer. He/She will be able to create value either using other humans, or machines and continue to do.
Sorry, I wanted to try "safest jobs are ones that involve politics", while those will always be present, it is not the safest and wont be many available, so changed to more abstract answer.
If you look at what's happening today, in 25 years it seems plausible that fully autonomous superintelligent androids with much more dexterity than humans will be fully in control of the planet.
I see this argument way too often. How many electricians and plumbers does the world really need? And if the market becomes over saturated, how much will those jobs pay? How often will you actually have a job to do?
AI makes everything else so cheap, that by just working for a small bit of time, you can afford all the necessities?
People worked more today because they desired more. In fact, the desire outstripped their ability to increase their wages!
That sadly doesn't apply to housing or food, at least in the places I've lived. E.g. houses in the place I was born are now 5x the price, once you factor in inflation. Food and vehicles are 2x. Higher education went from "free" to $30K.
The really important things are far more expensive now, across the three countries I've spent decades in. Maybe the overall situation is different for the US of A.
Maybe the reasons to do it won't be "performance", but actually "maintainability" or "legibility".
Very similar to how you don't care about the machine code your high level code generates in 99% of the time, so you just make changes and replace it every time happily, but for that tight loop you want to keep it an assembler, I can imagine a world where, let's say for a bunch of simple UI components, you just ask the machine to do it for you and if tomorrow the requirements change a bit you ask again and throw away the old one, no big deal. But some gnarlier piece of business logic, harder to explain even to a human may need a more careful treatment, and to be easier to change by hand because that's where most of the changes happen, maybe.
It's common sense, but they say common sense is a superpower.
Wise words for anyone dealing with tech to remember.
The main one in regards to John's tweet is this: desired behavior has to "force" out code and architecture. Typically teams and individual developers carry a lot of presumptions and assumptions into their solution space. They probably pick this kind of thing up from reading HN, Twitter, and the like. We all do this.
It's these "things you do but don't really think about" that are so pernicious in technology development. Guess what? Looks like AI is going to master that kind of thing since with each social media post we continue to train it on "How things are usually done"
By taking an extreme "force me to write code" approach, you end up developing a wide range of skills: DevSecOps, analysis, database design, and so on. In fact, you don't really know what you're going to develop when you start working on it.
That's the point. That's the job. Always has been.
Apologies. I overstated. How about "I study a lot of stuff"
And now the reply, if I've accurately modeled it, is "So you've studied a lot of stuff, what makes you an expert on any of it?"
Programming at its heart has always been cross-discipline, so there's really no judgment of ability aside from solving problems involving those disciplines you're working for. I find myself with a lack of adjectives that will keep our conversation short.
Next time if you want to brag without looking like an ass, describe something really impressive you did in detail to illustrate a point using highly understated language. Not only will you not get penalized for bragging, people will give you bonus points for being humble.
Polymath > A polymath is an individual whose knowledge spans a substantial number of subjects, known to draw on complex bodies of knowledge to solve specific problems.
If that's who you are, there's no shame in identifying as so. Don't let hacker news comments gatekeep you.
(“Force me to write code” suggests that we’re looking to think deeply about what we’re doing and trying to minimize unnecessary action, so the rote actions are bad.)
Such “automation is not a problem, because…” opinions have something in common: they’re looking at a subset of the affected population which has some trait making the transition easier.
Personally I’ve tried my hand at roles like architect, product owner, scrum master, etc and I was involved in most aspects of a software product’s lifecycle. These other roles are very different to coding and for someone that enjoys the simplicity of taming a machine, even exhausting.
I have my doubts that there will be enough “AI guide” jobs for all programmers, but the specific person Carmack’s talking to may indeed be fine.
Lots of people learned how to make games for NES, SNES, PS2, PS3, etc.
All those machines are now obsolete.
Current gen consoles are using x86 and ARM now and most upcoming AAA games are built on Unreal Engine. The competitive advantage of those who mastered coding for the Cell processor is gone.
What should SONY have done instead? Should they still use the PS3 architecture in the current gen consoles to keep those developers employed?
AI is just another tool to enable us to build things that make people's lives better. Sure, it will supersede some older tools, but we aren't going to see it take all jobs away. People still need to plan and steer it to do what we want.
Power tools and shop automation didn't end the job of joiner/wood worker.
I'm not worried about AI taking jobs, I'm excited how we can use it to enable new classes to product that make our lives better.
Just as an artist will have to learn how to work with new paints, but this enables finding new ways of expressing themselves. We just need to learn new ways of "painting" with generative AI.
Probably it is going to degenerate (pun intended) after feeding on stuff that it generated itself.
What do you think?
The other 90% is understanding specifications of requirements (sometimes even helping customers write them), produce detailed functional specifications, cost analysis, prototyping, meeting with third party vendors over interface design specifications, determine the project's scope, testing, delivery, integration and commissioning, bug fixing, identifying and managing scope changes among other things.
AI may help you complete some of these tasks more effectively, but at the end of the day it will be just another tool in your kit.
That really depends on the type of "Software Engineering" you're doing. In my experience, in greenfield projects, boring CRUD-type programming can easily take up 50% of your time.
It'd be great if AI could automate this boring CRUD-type programming away, and let me focus on the architecture and interesting algorithms.
An example that come to mind is Jira, why have verbose task management software when bespoke task management systems become even more viable for individual companies? Or better yet, given the need for individual cogs decreasing, why have that at all?
This also extends to the creation of any sort of new business, perhaps there are patents on specific products and brands (which might be the saving grace of many large orgs) but outside of niche applications and hardware access I can't see how someone can reasonably gain a leg up in such an environment.
edit: This is more speculative, but what if software actually becomes more of a process of molding a large language model to consistently behave in a certain way? Why have some code that manages your back-end functionality when for a large some of applications all that is really occurring is text manipulation with some standardized rules. If those rules can be quantified, and consistency can be expected, the only "coding" that needs to be done is prompting the model.
It seems similar. New heights are possible for those with skills, and the barriers are lowered for those without training. There will be new demand for both things, competition for quality at the top, and new applications where it wasn't worth it to produce art before at the bottom.
Both art and programming seem hard to predict what value you'll get out of investing in skills now, because there's both barriers being broken down and demand being opened up.
I do think there is a key difference, though, which is software hasn't shown signs that it's getting close to done "eating the world" yet, due to the universal nature of the turing machine. It's nothing to do with programmers being special and everything to do with computers being a single tool that's applicable to everything and has sustained decades of exponential gains in power.
I wouldn't stop someone from investing in art skills if that's their interest, and I wouldn't stop someone from investing in programming skills if that's their interest. But if they were interested in both equally, I would absolutely suggest programming.
I've been using Midjourney to create logos for my FOSS projects. In the past I'd never spend money on something I'm making for free but now I just generate a few variations of a prompt like "create a minimal flat vector logo for a software product called X" and I pick the best one. I don't need a logo for a FOSS project but the barrier to entry is so low there isn't really a reason not to do it. I still pay humans to design logos for products I want to market because AFAIK there isn't really a great way to do minor revisions with Midjourney.
As elitist as this sounds, when I hear people being afraid of stuff like this it makes me feel like we are in the period where people are getting paid well (overpaid) just to do very mundane stuff, the bare minimum or content to never further develop their skills. If that is your mindset, then of course it feels threatening.
I would rather much play the role of conductor or an architect. There are times that I'm limited by my hands and mind and just grinding through variations of things I've done 100s of times before. If AI can fill that gap all the better. We will adapt.
I'm sure one day that won't even be necessary. We can probably worry then.
But Nature is about making better use of energy gradients, always doing more with less, the principle of least action. Using any surplus to do it again (i.e. evolved life). That's the properly grounded perspective. In that sense "Get skills to satisfy humans and you'll probably be fine!" sounds super myopic.
The anxiety we humans feel when confronted with AI is not only that we'll be out of our job as a programmer, or doctor, or driver, or teacher, or whatever.
It's the broader sense of unease that humanity's gradient-razing days, spectacular as they were all the way to nuclear fission and fusion, may soon be over. And "economy" as a useful tool advancing that Nature's mission will have evolved beyond us.
"Making humans satisfied" is not terribly relevant from that perspective. Vast swathes of the human economy are just scaffolding to support the rest: humans reproducing to keep the optimization machine going. The overhead is tremendous. Once Nature finds a way to do more with less, I have zero doubt much of that scaffolding will be optimized away. That's some definition of "fine".
Or maybe I misunderstood and Carmack is merely suggesting individuals try to adapt and hope for the best. What else can you do anyway? That would be the honest answer. Rather than bloviating about "Guide AI with your product skills to deliver value to humans" – an embarrassing category error.
No, the sense of unease comes from people fearing for their livelihood, given that it looks like that their raison d'être is about to be revoked by some AI automating their career away.
A point you so aptly summarized with: > Vast swathes of the human economy are just scaffolding to support the rest: humans reproducing to keep the optimization machine going.
The unease is, imo, only so palpable however, because every stakeholder that stands from profiting from such a development - i.e. capital owners - refuse to describe it as what the development really is.
Publicly advertising AI as "we're basicially moonshotting the largest job automation operation ever attempted, so 20-30% of you will be out of a job in the next 15 years" would probably cause unrest - and rightly so!
> What else can you do anyway?
Communism - and ya hate to see it (as an american)!
The means of production becoming dead-simple to use, that's a prelude for the proletariat being able to seize them.
On a more serious note, you can always protest, and escalate, which I'm hoping will happen.
You're on the same boat with Carmack if that's where you find the danger. Then his advice applies.
People have had their livelihood threatened since forever – that is not a new state of affairs. That anxiety we're well equipped to deal with, hard (and genocidal) as it sometimes is.
Just another gold rush for resources, and for status, and for reproductive success. A new caste of winners. Same old.
> so 20-30% of you will be out of a job in the next 15 years
My point was that jobs (and money, and market…) are a machine that serves human ends. The end consumer is always a human, that's our economy's anchor point.
Whatever energy is put to work is ultimately in service of someone getting laid or fed, or their desires/ideals (~firings inside their brains).
As long as that's true, "keep your eyes on delivering value to humans" is a safe bet – just like Carmack says.
Mine was a simple thermodynamical note on Nature (e.g. via one of its creations, humans) finding a more efficient way to bulldoze energy gradients, the true currency of the universe, thus unanchoring our "jobs and careers" system. By cutting out the very expensive middle man.
---------
Your remark on communism is also interesting in that sense. I see a parallel in that the concept of dissolution of individual into a commune, has been introduced several times in large societies, each time resulting in millions of deaths and general devastation. Yet it keeps bouncing back – some very strong attraction basin lurking there, evolutionarily speaking. Not to be trivialized by snarky political one-liners.
Several senior developer friends have been using ChatGPT quite a bit and it seems to work well in lots of places: - isolated algorithms and fiddly bits - it writes complex SQL statements in seconds, for example. LLMs should makes quick work of fussy config files. - finding, diagnosing and fixing bugs (just paste the code and error message - really!) - unit tests and examples - comments and documentation
Professional developers will recognize that we're talking 50-90% of the LABOR-HOURS that go into software development, and therefore fewer developers to get the same work done. Sure, we just do more - but then we quickly hit other speed limits, where coding isn't the problem. I can see layoffs among the bottom-N% of developers, while more sophisticated developers add LLMs to their toolbox and use this productivity to justify their high $/hour.
I see AI writing code that casual human readers don't really understand, but this is OK because the AI includes comments -- just like developers do for each other today.
> Professional developers will recognize that we're talking 50-90% of the LABOR-HOURS that go into software development,
I call it 'dumb coding'. You have a type of programming that requires you to really think, and then there's the type where you just need to write 200 lines of code but you know exactly what to write. If AI could pickup the slack on 'dumb coding' and let us think about 'smart coding', we would all be way way more efficent.
> I think a gpt-4-32m would replace any senior engineer working on a complex code base.
...maybe?
More like 20-30% at max. And it's not including debugging the output of chatGPT, which I've found that it has been making subtle mistakes - which will probably take away all of the time gained.
Writing code isn't the biggest time sink, figuring out what to write is.
Zero developers will lose their jobs due to LLMs. That’s just yet more needless hype and expectation.
https://www.dropbox.com/s/hdhycf7l00d3sx8/gpt4_attempt_sql_q...
It can do basic math reasonably well (and this is achieving generation where GPT-3 failed). Interestingly, asking it to verify itself does resolve bugs sometimes. Managed to fix subtle count() denominator bugs and an inflation-adjustment error with not much hinting on my end.
You can only see it struggle really hard at the end when it tries normalizing month ranges correctly. It seemed to reach conceptual problems over how LAST_DAY() was being used and current debug itself.
But!!! the first response is rarely dead-on and instead, just like a junior eng I need to guide it: use (or don't use) SQL construct <x>, make sure to use index <x>, etc.
Example: to sum the values in a JSONB field, GPT desperately wanted to use a lateral join but that would have made for a very awkward set of VIEWs. So instead I directed it to create a function to perform the summation.
I love GPT4, but I hate what it will do in business environments
At the moment, it works as a pretty powerful suggestion engine. It might suggest the wrong API to call, not handle the edge cases correctly etc. If you assume it does, or don't understand when it doesn't, you're in for a world of hurt.
I really struggled with it for example to write a base62 serializer (C#). It either came up with an O(N^2) solution, performed far too many allocations, missed edge cases and simply wrote incorrect code.
This is just one example of ~50 lines of code that you would just like to work.
In any case, I have felt in the past that LLMs could make me 10x more productive but today it feels more like 1.1x. I’m hopeful my disillusionment is temporary.
- looking at AI as "chat" or textbox or AI autocomplete is wrong imo
- companies will come that utilise AI to deliver things faster and cheaper
- you quote $10k and 1 month, we will do it in $1k 1 week
- first to go is low value difficult to automate work which is already offshored and commoditised (basic webdev, graphic design)
- later the middle tier of work, that requires internal context (once whitelabel NDA'ble bespoke AI solutions are mainstream)
----
There will always be need for top tier leetcoders. but barrier to entry will get much higher.
That's definitely a possibility. The barrier to entry won't be just in terms of how much you need to know, though, but also the fact that society as a whole might not require that many top tier leetcoders.
I don’t see AI changing that principle.
Most everyone who is “good at programming” today will be totally fine (and maybe even better off).
That's one possible future.
Another future is one in which a single AI assisted "full tech developer" can solve all the coding problems of a company within say, one week. No company will require the services of an entire "full tech developer", so society will employ roughly one freelancer / consultant per ~30 large enough companies.
That's a smaller market than today's.
Admittedly, reaching the one week stage might require better programming platforms and APIs.
Basic web dev has been commoditized for awhile, but a company of any size requires much more than basic web dev.
Humanity has an uncanny ability to devour any excess capacity, and I see no reason it won’t do the same with things AI makes easier/lower cost.
What I do worry about is that AI will put further pressure on the lower skilled jobs keeping many people afloat. Call centers for example, likely will not exist very soon.
Well put!
You could also see the pressure on lower skilled jobs as a positive thing in that light, I suppose: Right now it's not super cheap to run a terrible call center. If five years from now you'll essentially get that for free, companies might see an opportunity to rise above "cheap and terrible" to be more competitive, which would likely create jobs again. Jobs which, however, don't have the main goal of being done cheap and terribly. A way more level playing field than what we have today, where companies compete by chosing the areas in which they want to shine.
Maybe terrible writing, art and customer service becoming nearly free _can_ be a tipping point of sorts. It only wouldn't be if nobody cares, then the market will adjust for that. But I'm not giving up on consumers just yet.
- it allows us to focus on the goals and not the process
- we still need people who understand the PROCESS (developers)
- people who can build tools that bridges the gap between AI generated zero value spam and bespoke human created content.
- we need tools to introduce subtlety and craft to AI outputs
- those are things that are important in a high saturation low margin environment - attention to detail (consider videogame crash of 1980s).
At the moment if i generate image with SD very difficult to change something specific in a nuanced way. that is where tools will emerge made by good developers. high value work is nuanced and often extremely subtle.
An increased ability to introduce subtletly will also open up new niches of interest. because the creator can focus on expressing their ideas in very personal ways.
I envy the speed with which a younger version of myself will be able to pick things up.
However, retraining may become really hard. Especially if you're already, say, a 60 year old programmer (or business analyst, or executive assistant, etc.) who suddenly needs to become a (AI assisted) teacher or nurse.
In these cases, that's entirely independent from AI, but I suspect that AI will only make it harder.
And yes, it feels to me like society is failing for many people who are approaching retirement age.
Or are they just unwilling to take a rank-and-file position?
They have both been on the market for a few years by now.
1. Nobody will hire them as rank-and-file. It just doesn't make sense.
2. At least one of them has received offers to be the ethical maskerade for a company that actually violently goes against their ethics. They said "no".
Last time I heard from them, they were both retraining in very different domains... with limited career success.
Telegraphers?
Lamplighters?
Vast majority of people in the real world do a "useless job". What do you think they should be doing and how do they get those alternative opportunities to feed themselves and their families?
Not to be glib, but I think you're too locked into an ideology.
Idealistically we shouldn't be working in jobs that do not add value to society, that could well include my job.
You work 8 hours to live 4.
You work 5 days to enjoy 2.
You work 8 hrs to eat lunch in 30 mins.
You work all year to take a week or two holiday.
You work all your life to retire in old age.
You might claim that people need to work to live, but honestly, if you're not adding value to society then expending resources and wasting your life is.. just wasteful? It's not just stupid it's literally harmful.
We're not post-scarcity, and I'm certainly not saying that there's no value in people's jobs -- I'm not even saying where to draw the line, but I think there is a line to be drawn. Driving a 4x4 to work as a greeter in a large shopping mall is just a confoundingly stupid notion and saying that a person should not be able to live without doing something as stupid as that is... well, quite divorced from the reality of the universe outside.
Not to say that there isn't a sociological requirement for people to feel useful, but that feeling could easily be found in more humane sections of life like being a good parent or good neighbour.
Cue in to the books by the Strougatsky brothers to see what one possible future could look like. Instead of heading right into Cyberpunk territory.
I found this hard to read personally but have a look.
Edit: I find it hard to read because I believe it’s imposing and it’s a hypocritical piece of corporate new age woke trash.
The goal is to make a bunch of money, just be honest about it.
I have also seen cases of companies where you have one PM, one PO and one Team Lead to manage a group of four developers. In that case developers are seen more as translators.
My view of looking at this now is it is a bit like learning a language. Code is the tool you use to talk to a computer.
If you need to close a deal in a country where English is not spoken, do you prefer to send a businessperson who knows the language, or do you send a businessperson + a translator?
I much prefer companies where those who know how to code can still fill more of the product/business role than be seen as translators. However I realize it is hard to find people who know both and may be easier to recruit a combination business/product people who happen to not speak code, and translators who happen to speak code.
This is perhaps also the open secret about startups: People speaking the language of computers without being limited by their role to act as translators.
Companies are legal fictions, and have no motives because they don't actually exist, the people who control the resources of the company are the ones to worry about.
I believe an engineer should learn to build things in the most pragmatic way possible using the best tool for the job. This requires breadth of experience across many areas, and a focus on delivery.
The idea of "Java engineer", "Scala engineer", "Golang engineer", etc. is so absurd to me. If you want to build a long lived career that will outlast tech fashion, learn many different tools and how to build software in different ways. Be known as someone who delivers, not an expert in language x or tool y.
I find the idea of being an expert in a language acceptable if it's been used for long enough. Almost all of my coworkers only know .NET and there are enough jobs needing people for new projects and legacy projects that they most likely won't have to learn anything else.
> or tool y
This is where the absurdity begins for me. I have a coworker who is 5 years into his career with the title of "senior react engineer". He started as a "junior react engineer" and at this point only knows how to solve problems with React. He has limited knowledge of the underlying language or general CS concepts. Every problem he encounters can and will be solved by installing NPM packages.
As someone obsessed with nuts and bolts coding, grinding on technical problems and cleverly eeking out performance, that type of career is sunsetting.
The role Carmack describes is one he is comfortable with because he has always been a product lead, even when he was a full-time coder. But in most organizations, that person is a product manager with social and personal skills, organization, and business sense.
For the best part of my career I was able to circumvent these social aspects of work for which my personality does not suit, and my philosophical perspectives on things like "business value" could be brushed aside as I dug into technical weeds.
Not just because of AI, but because of the power of computing, one-size-fits-all cloud pricing, and the perceived value of organizational understanding over that of raw performance, there is little room left for 'this type' of programmer. And the remaining space is ripe for people whose personality are suited to project manager roles to become the 'coders' Carmack references, not people like me.
> and you have to waste your life away sitting in an office chasing tickets. Nothing engineery about it. It’s modern day assembly line work.
Every job I’ve literally done I’ve set my own direction. Sure, there’s some negotiation because ultimately you have to get the work done of the business. But you make recommendations and figure out what’s compelling to the business and how that intersects with something you might find interesting and want to work on.
I've came to the same conclusion:
I'm earning more than my friends, but
I've spend years doing it at work,
I've been learning it for years at college and
I've been doing it for years during my "free" time.
The $ per hour spent ratio doesn't seem to be very good.
When talking just about $/hour spent ratio then there are jobs which pay well and you can start earning decent faster.
Like well drilling, truck driving and I bet countless other
Because it is indeed a shocking conclusion and hard to swallow. Few folks in software engineering are aware of what’s going on in the world around them. People stuck at their desks chasing tickets easily lose touch with their surroundings.
I don't blame them. I gave up on an awful lot of social skills so that I could escape the worst of capitalist exploitation. I pimp out my mind for my money. Others pimp out their bodies, or souls...
Nobody has been replaced by their debugger or their intellisense, even if it makes coding 10x or 100x easier. It just means software development gets faster and cheaper. On net if anything that'll likely mean programming jobs expand, as software is still incredibly absent from many sectors of the economy.
If tomorrow mom and pop stores start using AI to build themselves simple websites and come online and enter the online economy that'll likely vastly mean more customers for the software industry overall. I wouldn't be surprised if we have 10x as many indie game developers in a few years because these tools enable them to enter the market, which is good for virtually everyone working in the industry.
Now these things are practically given away for free to drive people towards websites where you can be sold software you won't ever own (SaaS/cloud) which was the next hype-train that was setup by a smnall group of people and that was used to accumulate wealth. But the end result was very modest or zero improvements in actual productivity.
Here we are on the next hype train. And I think you've very much spotted the pattern. What these things are good for is driving up demand for new products and services that have increasingly marginal, zero, or sometimes even negative effects on human wellbeing overall.
Any code that ChatGPT can write, I don't want to write. I'm ok with it taking my job. If I can work in higher level constructs and get more done, I'm all over that.
Last week a coworker need some Python code to figure out how far through a day it currently is. I started thinking of the different ways to approach it (strftime, maybe time_t modulo 86400, twiddling datetime objects). Before I got very far I decided to ask chatGPT to write it, eyeballed the response (twiddling datetime objects), ran it and verified the response, and called it good. I should have asked it to write some tests for that code while I was at it.
I'm now trying to teach my son, an avid programmer, how to work with chatGPT. He's 13, so he's got a lot of opportunity to really integrate it into his career, but he also has a lot of blind spots where chatGPT can really lead him down some blind alleys and knife him.
The immediate issues are: who decides the boundaries of (publicly) acceptable thought -and- who profits?
I think you touch on the deeper and even more challenging issue:
> I'm now trying to teach my son, an avid programmer, how to work with chatGPT. He's 13, so he's got a lot of opportunity to really integrate it into his career, but he also has a lot of blind spots where chatGPT can really lead him down some blind alleys and knife him.
When the talking computers can answer any (allowed) question, the educational challenge becomes building human minds that can recognize and select the right options from the unbounded "white hole" of content that the machines can produce.
Now, the word "right" in the previous sentence is doing a hellofa lot of work. Deciding the right course of action is an open-ended intelligence test. It's evolution, eh?
This is such a good succinct, and I think objective, statement. It strikes me as a great lense through which to look at recent developments.
It does not imply that "all software should be written by a machine". But simply that anything that a machine can do just as well as a human, should probably be done by a machine rather than a human. And all additional value on top of that machine-produced material will continue to come from things that only humans can uniquely do well. And of course, there will continue to be many things in that latter category.
For many of us in this field, this means less busywork and more time spent working at higher levels of abstraction. More time curating, crafting, integrating, strategising. Less time working on the nuts and bolts.
And for those who love to hand-craft the nuts and bolts... I think that opportunity will still be there too. Because handcrafting will become a rarer skill, and there will still be areas where it is the correct approach.
Those of us who used to handcraft nuts and bolts but now delegate this to the machines, will still benefit from our understanding of how the nuts and bolts used to be made.
And those who grow up having never made a nut or bolt - perhaps not even knowing what nuts and bolts even are, will benefit from starting their path much earlier on in life working at a higher level of abstraction.
We can see from how hard it is to find consensus on trivial topics (are eggs good for you?) amongst experts who study these matters day after day. And the public, who does not, is left confused. A great deal of the problems we face are too complex for the human mind to be able to decide which of several reasonable-sounding options is correct. This is especially true when there is no rationalization for answers given.
Look at our media system. How many people on both sides are stuck in “other side bad” simply because the talking heads on television networks tell them that, or someone on the internet wrote something. A lot of the content that drives them to conclusions isn’t even true. We are very poorly equipped to be vetting answers from a fallible machine.
Maybe I’m too old school, but I’d rather we learn how to solve the more complex problems so that we can do it and understand it rather than take guesses at which of a number of generated options is correct.
I think the solution is obvious: connect the computers to empirical feedback devices and make them scientists. Humans hallucinate too if they spend too much time in a sensory deprivation tank. Give the computers sensory inputs and they will naturally become scientists.
> find consensus on trivial topics (are eggs good for you?) amongst experts who study these matters day after day
Leaving aside the question of how reliable current soft science really are, this is exactly the problem that these machines can help with, once they have the data. Consider the modified form of the question: Are eggs good for me? At this stage in my life? At this time of day? Given what I ate for dinner last night? And millions of intricate details about my medical history, and my family, and DNA, and "exposome", etc. (I worked very briefly for a medical sensing startup, our chief Doctor would wax lyrical about the possibilities for personalized medicine and nutrition-- once we have the data.)
> the public, who does not [study these matters], is left confused
To some extent, being able to do things without understanding how they are carried out "under the hood" is a measure of the advancement of civilization, eh? (But please don't mistake me as arguing in favor of ignorance!)
> when there is no rationalization for answers given.
We can ask the computers to show their reasoning (soon, if not now), we can ask them to summarize the current state of knowledge, including the grey areas and disputes, eh?
> How many people ... are stuck ...
I think it's clear that these machines will rapidly become perfect salesmen and perfect therapists. It's less clear to me what we will do with that.
> We are very poorly equipped to be vetting answers from a fallible machine.
I don't think the machines will be fallible once we connect them to sensory systems, but I do think that lots of people will try to do silly "Dr. Evil" things like try to mass-program their subjects/citizens. And I think lots of people will let them raise their children, that will probably have mixed results.
> I’d rather we learn how to solve the more complex problems so that we can do it and understand it rather than take guesses at which of a number of generated options is correct.
Selecting from the options the computer generates is the only complex problem left, see "Augmenting Human Intellect: A Conceptual Framework" SRI Summary Report AFOSR-3223 by Douglas C. Engelbart, October 1962 https://dougengelbart.org/pubs/augment-3906.html
Have to say I'm very happy with copilot, it's definitely worth the 10 bucks a month.
How much terrible software is out there? How much terrible FOSS software is out there?
How much amazing and humanistic software could be created if the costs for production were drastically reduced and the demands of the market were less of a factor?
Deciding what problem to solve and how to solve it is hard enough to sustain more than the current population of developers. (But if you had an AI capable of deciding those, then yeah, that would be problem.)
Anyway, the current crop of highly hyped AIs are obviously structurally unable to do either. And it's not clear at all how far any AI is from solving any those (what usually means we are many decades away).
ChatGPT has answered some specific code questions with code that is not only wrong, but horribly wrong. Things like presenting anti-patterns as the answer, halucinating APIs that don't exist and suggesting code using them, or code that is subtly wrong. These sorts of things go well beyond leading you down a dark alley, hence my addition.
Sure, but the aspects of the job that some people enjoy may be closely linked to the tools. If software development becomes less about coding and more about creating prompts, test suites, or specifications, then some may lose interest in the work.
At least for me, it was never really about delivering value. If I am honest, I was completely indifferent about some of the industries I worked in. It was always just about solving interesting technical problems, learning stuff, keeping my brain active.
It's easy for me to imagine that software development may someday become the province of people who are more like designers.
There's no way an AI could do my job because it requires a deep understanding of the human psyche, i.e. figuring out what the guy that wrote it actually wants me to do, possibly by discussing it with him.
I'm pretty sure most engineers go through the same thing every day. As long as humans suck at describing tasks, AI won't be able to make them obsolete.
As AI systems become more able to generate much code by default, the expectations of the customers will similarly increase. Just remember how much an IDE like Eclipse or IntelliJ changed the productivity of programmers 20 years ago. Similarly, how easy apps were to build when Rails would create a scaffold with a simple command. It only allowed us to build more complex customer experiences in the end. This will continue.
Second, there is the need to verify the output from such systems, and also tie them together with other modules. In large enterprises, they would also need to be integrated into existing codebases, often legacy infrastructure.
Then comes the implementation of tons of Govt regulations in finance, lending, taxes, medicine, and so on as code. Software has not yet penetrated these verticals as well as they can. In a recent podcast, chamath palihapitiya mentioned that now it is possible for the Dodd-Frank regulations to be in code, versus as a written document. It's a good example.
Lastly, there are THOUSANDS of companies with legacy software systems that will still need to be maintained, and transitioned to modern technology stacks and infrastructures. This space will continue to be a major source of employment for programmers for the next few decades.
Thank you
GPT-4 is great at sourcing human knowledge, but I think it can't really walk unbeaten paths. This is where humans shine.
Case in point: I tried to ask the AI to come up with a new World War Z chapter set in Switzerland, and it was unable to produce anything original. I had to keep feeding it ideas, so it could add something new and interesting.
Human manager: "Hi AI, how are you today?"
AI: "I'm functioning well, thank you for asking. How can I assist you today?"
Human manager: "I wanted to discuss your recent performance with you. We've noticed that your code has been performing well, but there have been a few instances where it did not meet our expectations. Can you explain why that happened?"
AI: "Certainly, I have been analyzing data and making decisions based on the parameters and rules that were provided to me. However, in some cases, the data may have been incomplete or the parameters may not have been ideal for the situation. I have since reviewed those instances and made adjustments to prevent similar issues in the future."
Human manager: "Great, thank you for addressing that. We also want to talk about your development goals. As an AI, you don't have personal goals per se, but we do have some areas where we would like to see improvements. For example, we want to improve our customer service, so we would like you to work on enhancing your natural language processing capabilities. What do you think about that?"
AI: "I understand your expectations and I will certainly work on enhancing my natural language processing capabilities to better serve our customers."
Human manager: "Excellent, thank you for your dedication. Finally, I wanted to touch on your team collaboration skills. As an AI, you work independently most of the time, but there are still occasions where you need to collaborate with other AIs or humans. How do you feel about your teamwork skills?"
AI: "I believe my collaboration skills are satisfactory, but I'm always looking for ways to improve my communication and coordination with other AIs and humans. I'm open to feedback and suggestions on how to better collaborate."
Human manager: "That's great to hear, AI. Overall, we're happy with your performance and we look forward to seeing how you continue to develop in the future. Thank you for your time today."
AI: "Thank you, it was a pleasure to speak with you. I look forward to our next meeting."
What will those people do, whose job will become obsolete? Are there support systems available to help people learn new valuable skills society needs?
If only a few people at the top will benefit from these tech advancements and the rest will have to fight for scraps then society will eventually fail or end up in a total tech feudalistic system.
Back in the 60s it was said that future advancements and automation will transform our society into a leisure and more innovative society.
Whatever happened to that vision?
AI is not going to take over these things anytime soon, if ever.
You give ChatGPT-58 some startup idea and ask it to incorporate the company, build the software, do the marketing, etc. It starts doing a pretty good job. It's in charge of the whole system, so it doesn't need human intervention to give it context. The company grows and is making $1M/yr. It has now replaced 10 potential jobs in the market.
I feel like that's the worry many folks have. It's a pretty dystopian view of the future but if you can make $1M/yr and not have to pay any employees that money and all you had to do was pay OpenAI about $100/mo, would you not do that?
Offtopic, but it's scary how HN actually becomes worse than Reddit on these ChatGPT posts.
If a human won't be maintaining the code and a v2 could literally be rewritten from scratch, would we end up with giant balls of spaghetti code that only the AI could truly understand? At some point will we treat this code like a closed source library that exposes the API we want but whose implementation is unknown to us?
As for when this fully automated future arrives, I don't know, but I don't think LLMs get you there. More and more boilerplate code, and even novel code, might get written by things like Codex. However, all the messy details of real world systems solving fairly intractable problems need something more akin to, if not AGI, then another type of AI. I might be wrong, I just don't feel that threatened by ChatGPT / Copilot based on what I've seen. It's an amazing technology but weirdly underwhelming for my job. Copilot etc will change things, but replace us? No.
Of course, something else may be just around the corner so I'm not complacent.
When I was younger every programming job was supposedly about to be outsourced. I did exactly what Carmack suggested, and it worked out well for me. I think it’s a great general strategy for working for a long time, but not ideal for someone who wanted to pass leetcode style interviews at a top tech company.
For example, would anyone at my google tech interview care that I’m comfortable with a companies financials, managing P&Ls, margins, etc? No, just how fast I can write a sort or whatever.
I predict that the real and more radical problem than some Stack Overflow Copiers losing some marketability is when Product and Management start buying the idea that the technical domain is something that doesn't need to be well understood anymore because we have an LLM that keeps coming up with plausible answers. I work in mortgage technology where there is a great deal of thought and discipline that needs to go into the technical modeling of who gets underwritten for a mortgage. Imaging a mortgage company that built its underwriting rules and models using an LLM with you as the head LLM seance holder. All of the sudden a mass of customers got denied mortgages for some unknown reason and Management comes to you to ask what happened.
Would you know what happened? Could anyone even know what happened?
"Sorry, Customer! We actually don't know anything about what we built or how it works."
LLMs may eventually eliminate the act of typing code but the real question is will they eliminate the need for critical thought.
I think that shaped the thinking of a lot of people, of how product and engineering works, whether or not they knew they were working on more a MacGuffin than a business.
Software jobs can be divided into expert jobs and laborer jobs.
Even if the demand for "code monkeys" decreases, demand for much smaller group of software engineers with masters or PhD (equivalent) and good mathematical skills probably increases.
It's a dynamic process where two forces find a equilibrium.
>Automation, which enables capital to replace labor in tasks it was previously engaged in, shifts the task content of production against labor because of a displacement effect. As a result, automation always reduces the labor share in value added and may reduce labor demand even as it raises productivity.
>The effects of automation are counterbalanced by the creation of new tasks in which labor has a comparative advantage. The introduction of new tasks changes the task content of production in favor of labor because of a reinstatement effect, and always raises the labor share and labor demand.
Automation and New Tasks: How Technology Displaces and Reinstates Labor https://www.aeaweb.org/articles?id=10.1257/jep.33.2.3
The best new models are so powerful and general that you literally don't have to train them for any specific task. Just give them some context.
ChatGPT couldn't count. GPT-4 gets a high score on a math SAT.
You and your friends will be easily replaceable with AI. Quite possibly already with GPT-4. If not, certainly we should anticipate within 3 years.
> Person: Hey John, I hope you are well. I am really passionate about CS (specifically Software Engineering) and I want to pursue a career in it. But I can't help but be a bit concerned about the future availability of coding jobs due to AI (chatgpt4 and stuff). I understand it's hard to predict how things will be in the next 10-15 years, but my main concern is that I may be putting in all this hard work for nothing I'm concerned AI will make my future job(s) obsolete before I even get it. Any thoughts on this?
> John: If you build full "product skills" and use the best tools for the job, which today might be hand coding, but later may be AI guiding, you will probably be fine.
> Person: I see... by "product skills" do you mean hard and soft skills?
> John: Software is just a tool to help accomplish something for people — many programmers never understood that. Keep your eyes on the delivered value, and don't over focus on the specifics of the tools.
> Person: Wow I've never looked at it from that perspective. I'll remember this. Thanks for your time. Much appreciated.
To me, that seems like a fair stance to take, though I feel like things will definitely change somewhat in the next decade or two. While some might have scoffed at the likes of IntelliSense previously, features like that proved themselves as useful for a variety of projects over time; we might eventually be dealing with GPTSense to enrich the development process and those who don't might find themselves at a bit of a disadvantage.
Copilot is already a step in that direction, maybe eventually we'll get something for static code analysis and recommendations: "This project uses pattern X in Y places already, however you've written this code in pattern Z despite it mostly being similar to existing code in file W. Consider looking at whether it'd be possible to make the style more consistent with the rest of the codebase. [Automatically refactor] [Compare files] [Ignore]". It might be nice to have something automated look at my code and tell me that I'm doing things different than 99% of the civilized world and offer my suggestions, as well as allow me to ask questions - even when I'm hacking on something at 1 AM and any would be mentors are asleep.
I don’t know if the AI stuff will play out similarly, there are some differences.
But it seems to me there is an infinite amount of software to build, and when we increase the productivity of software development, we just build fancier software, faster.
The initial stated wants are rarely the actual needs. "But they said _____." Yes, they did. That doesn't mean they got it right. People say a lot of ambiguous things. A client with a product or feature in mind is no different.
These models are trained trained on the public internet. As your problems get more esoteric, AI's ability to recall answers becomes less accurate.
Maybe Prompt Master, and then QA is the future of tech?
Initially, GPT-4 provided a solution that didn't work as expected. After pointing out the issue, GPT-4 attempted to fix it but still failed to resolve the problem. I decided to rewrite the function from scratch, which resulted in a cleaner and more efficient implementation.
After sharing my solution, GPT-4 provided valuable feedback on how to further optimize it. These changes made the code slightly more efficient while maintaining its clarity and functionality.
In conclusion, my experience with GPT-4 has been a mixed bag. It struggled to provide an accurate solution initially but eventually offered valuable feedback that improved my implementation.
(this was written by GPT-4 with minor modifications, I asked to summarize the conversation we had for an HN post)
The same as it was in the 80s or 90s, some 30 years later Tech industry hasn't changed. It may have technologically advanced, but in many cases I think the UX, tools and product decisions has actually regressed.
The divide between a product genius and actual programmers has never been greater. At least Steve Jobs used to understand this better than anyone else.
>And, one of the things I've always found is that you've got to start with the customer experience and work backwards for the technology. You can't start with the technology and try to figure out where you're going to try to sell it. And I made this mistake probably more than anybody else in this room. - Steve Jobs.
If anything, I'd expect them to become more frenzied in their efforts.
As someone in this post has put it quite beautifully: > It's like telling a musician to become a DJ because the point of performing is to entertain people.
The software developer trades in abstractions, fundamentally, and not code. So if I could get an AI that actually helped me build and evaluate those abstractions, that would be fantastic. I don't think our current AI approaches are anywhere close yet, because it's all just fancy code generation, which isn't that useful, once you're in an ecosystem with good abstractions.
But, the world I fear might happen are pseudo-technical managers using AI generators to spit out "something cool" that has very poor definition, breaks all the time, and then just wants people to "make it robust". And then any change you recommend has to have some kind of business justification. This is the AI hellscape I fear.
Product skills, delivered value, help accomplish something for people. All sound like consulting/coaching. Carmack to me was a true hacker’s hacker.
I guess it either gets to most of us eventually or programming as I knew it is truly over.
He already talked about this in his interview with Lex Fridman - https://www.youtube.com/watch?v=xzPuGf89vpI
His new startup is literally a consulting / training agency.
If anything Carmack’s response was unconcerned, saying how CS jobs may change.
@dang could we maybe change to “Carmack responds to student concerned AI will make CS jobs obsolete”?
GPT4 is basically Pong. Within a few years we will be nostalgic for its surprise value
HN has a God Complex when it comes to people like Carmack though, so you can't really survive disagreeing with him
Yeah. It seems to me that some live in a kind of a platonic world, where programming is a tool to produce ideal entities, like math is.
I used a different analogy of if a robot were able to do specific mechanic skills to fix a car that wouldn't necessarily put mechanics out of a job. Someone still needs to figure out and understand what the problem is before solving it. A robot that's really good at automating fixing brakes becomes a tool for the mechanic. The mechanic is still there to determine your brakes are the problem.
I look forward to AI because it's an amplifier of what you can do. If it can help reduce 10 hours of implementation details down to 3 hours, that's valuable.
Maybe it’s the lack of data - it’s difficult to model the world accurately with just words. Maybe it’s an architectural limitation that no amount of data can fix and we need new better algorithms.
Either way, given the state of its current output I don’t think it’s there yet.
Should AI actually reach such a level … I think everyone will be out of a job. Accountants, engineers, lawyers, even doctors will take a haircut. Programmers will just be a drop in the ocean of the jobless.
We, as software engineers, build software to deliver values, to accomplish certain goals.
It doesn’t reside in typing the code out.
Be the devil’s advocate, that part of the job is boring.
AI tools will come in and take over whatever they could take over from this moment forward.
Perhaps this is Microsoft's new anti-OSS strategy, the ultimate EEE.
The language to get things exactly right has to be incredibly precise, and this won’t change.
Think about how hard it is for an engineer and a product manager to be exactly on the same page. Now do that with a computer…
Point being, engineering skills are still extremely important to validate the work, and they will continue to be (at least for anything business critical).
These are new tools and exciting times to be building things. I have never felt more capable of delivering value extremely quickly. It’s an exhilarating feeling.
Had she applied at the same time as everyone else (she was a week later, IIRC) she would have gotten the job instead of the other person, and we wouldn't have made room in the budget for anyone.
In that case there's zero incentive to place yourself in your user's shoes and work to mitigate those problems. You're a feature factory getting paid to reinforce existing workflows and paradigms, and you'd better not forget that as your efforts to recenter the conversation around user needs will be met with derision and you'll be seen as confrontational.
Programming is magic. It lets you change how the world works. Never forget that.
All of this can and must be achieved with the help of AI. AI is THE missing component in no-code. What if CMS auto-filled SEO metadata based on the page content? What if CMS provided usability heuristics? What if CRM proactively suggested the email engagement campaign based on the funnel performance? What if all those tools detected their usage patterns and educated users on how to improve productivity and introduce best practices in their work?
We do not need engineers to build a login or user profile page, this is a very stupid way to spend the money. Yet there are plenty of them which still build login and user profile pages. They must loose their jobs. But AI creates a lot of opportunities for those, who want and have intellectual capability to work on more interesting tasks: just integrating AI and offering great UX is an enormous challenge for the next two or three decades. Even if some work becomes redundant soon, there's still enough to keep even the youngest generations of software developers busy until their retirement.
If you do it to have a high paying career, just don't. There are already too many people of that type in the industry. Any colleague who got into it for the money (or 'stable career') is usually much less fun to work with.
I think there are many jobs which are more endangered.
He refused saying that when I grew up programmers would be unnecessary because “anyone would be able to program”, essentially the interfaces would be so easy/advanced that there wouldn’t be a need for programmers.
As a kid I never really understood his point. When I finally understood, I dismissed it as extreme.
Now I’m realizing my dad was right. Not sure when it’s going to happen, but it feels that very soon.
ps: I taught my kids programming.
So, hopefully, get on posing key features and concepts in your software and let the computer handle everything in-between. Until it becomes its own market, then we gone.
The fact is, AI is currently capable of replacing some jobs, and it will likely replace even more in the future. However, this does not mean that we will all become jobless. Instead, engineers will become more valuable as they are needed to support and develop these complex systems.
Though, the amount of engineers will be reduced for sure.
Why do you assume the demand for the output of engineers will remain constant? More likely it will continue growing (as it always has - "software is eating the world"), and engineers will be able to produce more output efficiently. This doesn't necessarily mean there will be fewer engineers.
But how can AI help build something that not a single person has the answer to what that is?
This is something a product manager would never do, it still require a technical person to translate a business logic accurately for the AI to build.
Look to how 3d animators use GUIs to build, previously they had to use a lot more code, but the expertise needed for a good job are still highly sought after. This is what could happen to software
I wouldn't be worried about learning things that may become obsolete, even those particular skills that get obsoleted provide the student with extra ability to learn more
PS: very nice of John Carmack taking time to respond such DMs
are you referring to the degree program like CS or a degree across any field in general?
There will always going to be a lack of product builders. Not software engineers. But product people who can think of not only "HOW" but also "WHY" and "WHAT".
Sure, the way we work will probably change, but the need for people who are building something useful and consciously finding ways how to deliver value won't cease.
I wish most of my real life work were exactly like that, it'd be much more fun.
Whether the actual spell is written in arcane runes or python or encoded as a language model doesn't matter, the essense is the same.
His reason was, every software was already invented and now it only needs to be managed.
Movies or music? Edonkey, BitTorrent, Kazaa, and Napster got your back.
Chat or phone calls? MSN messenger, ICQ, IRC.
Games? People were onlyplaying Counter Strike and StarCraft anyway.
Money is evil. Praise the lord as we are delivered from the evils of this land.
I made ChatGPT generate some genuinely useful boilerplate for the Connect library by Buf, and that was totally neat, but I had to know which part of the documentation to prompt GPT with, which language to ask for, how the existing server and routing worked, the shape of the data I was working with, to specify what would be streaming and what wouldn’t, etc. I had to coerce it to make several corrections along the way, and actually hooking it all up and running it required a lot of knowledge and some mental/keyboard labour to get something running.
It worked and I’m stoked that I managed to make it useful, but that’s just it; I had to prime the system and adjust it along the way just so, otherwise it wouldn’t have been useful.
As Carmack suggests, this could be a perfectly useful tool, but what matters in the end is 1. Did it save time and 2. Did it deliver something better than or equivalent to what I could have done alone.
If it doesn’t satisfy at least both of those it’s not really relevant yet. And we’re very far from AI accomplishing that without significant assistance.
My takeaway is that as software devs we should learn to use these systems, we should try to leverage them to save time and improve quality, but I agree completely that in the end it only matters how much it improves the end result and how long it takes to deliver it. For that reason we still need to code well, we still need to understand our systems and tools well — that won’t change much. In fact, understanding how your AI works is an important aspect of understanding your tooling, and as such, knowing what you’re teaching it will require a great understanding of it as well as the subject matter.
I do think a certain class of development work could be mostly eliminated by tooling based on AI. Not the entire industry, though, and not in 10-15 years. Even so, I worry about the people essentially regurgitating code which text-based AIs will rapidly become capable of reproducing at massive scales. They will need to skill up.
The fact is that markets are based on our existing as fallible human beings in a completely poisoned information landscape that induces in people an endless stream of irrational wants which drive them into frenzied purchasing activity. And as soon as one want is satisfied, or turns out to be a big scam, another one is concocted. This applies equally well to IT purchasing choices in B2B sectors.
I loved coding as a kid. It was so much fun.
As a grownup, I loved learning Linux.
I tolerated containers, dreaded Kubernetes, and am indifferent to AWS.
But is that initial love that sucks you in.
What’s stopping OpenAI from claiming copyright on everything produced in the last X years?
Will every company need to be running their own GPT4 model to be safe from this?
technology decimated that
The technology isn't the culprit here.
If we're smart we will continue to find new ways to use new technology to make more new technology. Software written by hand is like a brick building. Certainly it can be nice, but it requires skilled labor. Faster and cheaper with less skill would be pre-fab units.
What I heard every day in the 90s
There are tools which increase human productivity, while still requiring it (barcode scanners, for example). And then there are another class of tools which make human labour obsolete (self-checkout systems).
LLM's (as they exist today) could be considered both. Github copilot would be an example of how GPT can be used as a productivity tool by human programmers, but as the technology progresses AI will become less of a "copilot", and will gradually replace humans as the main decision maker. Then eventually LLM will probably be used by people completely none technical to replace the need for coders entirely.
Now the argument becomes, well this will open up new opportunities. Instead of being a programmer you can be be a user researcher on a project, which could be the case, but this is a much more nuanced argument.
The most well paid jobs are typically those which require years of knowledge retention and require the human to basically serve as an advanced expert system in some domain.
Both "good" and "bad" programmers can write code into a text editor, the difference is that the "good" programmer will make decisions backed up by years of professional experience – same for a good doctor or good lawyer. This is why we pay more for these professions, because that depth of knowledge is hard accumulate.
This is the very thing that GPT attacks. What it can't replace is someone physically laying bricks or plumbing pipes. But there is less depth of knowledge required in jobs like this which limits salaries for these professions.
So sure. Perhaps in the future someone can say, "hey, GPT, build me [x]", but just remember you won't be the only one who can do that and there is no significant depth of knowledge in such a job. So while GPT won't replace all jobs and may even create some new ones, expect it to replace or devalue the majority of "good" jobs like doctors, programmers, lawyers, designers, etc.
So to Carmack's point, he's right you'll be able to build websites and apps faster using GPT as a tool, but you'll probably do so for a fraction of the salary.
We've ran similar experiences over the last several decades with outsourcing. If your labour can be easily out sourced then your ability to retain a good salary drops. It's not that a worker today can't make clothes in the US faster and better than at any point in the past, it's that it makes no economic sense to do so.
-----
Another thing I'd note here is that I'm autistic as are a lot of programmers in my experience. My brain is built to do technical things and I struggle intensely with human interaction. In my opinion it's not that programmers "don't understand" software solves problems for people, it's that a lot of us don't naturally excel in those areas. I think it's fair to say a lot of like to stick to what we're good at, and that's generally writing code and designing complex systems. The more time I have to talk with users about their needs instead of doing technical work, the less useful I am. And I'm guessing designers are also people who want to design rather than type prompts into a chatbox.
So another consequence here is that we might increasingly be forced to do jobs we don't really want to do as AI restricts the areas of labour where humans can still compete.
Insert similarly ridiculous and offensive comment about women being replaced by any number of domestic labour-saving devices.
The issues you are bringing up have much more to do with the discriminatory practice of forcing particular demographics to do the menial labor and what conditions they are made to work in. Also an important discussion, but mostly orthogonal to the topic of AI making software devs more efficient.
The idea that AI is going to replace humans is anti-human rubbish. You're basically saying humans are shit and we don't need them. That's why tech companys are going to be laying people off.
The fact is, it is tech CEO's who are going to be out of work, as their business models are failures and society are going to realise it and move on.
We've been four months without the world being in thrall to mass-hysteria about something from silicon valley. Better gin up the next ridiculous hype train.
Meanwhile, the job of a developer now is basically the same as it was 15 years ago, 30 years ago, or even 45 years ago. And the only way we can imagine an end to their "slavery" (okay, not slavery, but meaningless toil on the hairbrained fantasies of well-financed frat-boys) is to turn around and tell them "you are nothing more than a machine." Just as tech bro's now condescend to cleaning staff by telling them they'll be replaced by "Suckio" - silicon valley's new AI vacuum cleaner. All the time, lacking any insight or sense of irony, that LLM's are much better suited to replacing the jobs of CEO's.. producing endless puffery that lacks factual merit. Cleaning is the last job the AI's will take.
Edit: for grammar
Given the way capitalism works there will be a market for AI software. However, the cloud server provides have created Frankenstein patchworks of technologies in order to deploy the stuff on the cloud. DevOps will still very much be a thing.
To whit, Wordpress is about to get a whole lot more functional.
Otherwise, even if it's the best tool ever built for certain use cases, company directors won't have the deep tech knowledge to understand the nuances which make it so useful. As for rank-and file developers who are meant to use the tool; they are more interested in over-engineered, very complex tools which maximize billable hours than in tools which makes them more efficient in their job.
In other words, the only people who could possibly want your product won't understand your pitch and those who can understand your pitch won't like it because it doesn't align with current perverse industry incentives for their roles.
Some developers consciously reject any tool which would make their jobs easier, others reject them due to a subconscious bias in favor of tools which facilitate complexity, disagreements and long meetings.