25 ms·
Looking back we had one CS professor who in 2007 predicted we'd all be jobless in ten years, i.e. 2017. His prediction was based on the trends he was seeing at
by carlmr 4y ago
Looking back we had one CS professor who in 2007 predicted we'd all be jobless in ten years, i.e. 2017.
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."
- raincole 4y ago> 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. 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_language 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...)
- matwood 4y agoSQL was also meant to give a wider range of people access to data. The “business analyst” comes to mind. And, I think SQL was successful. 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.
- raincole 4y agoI didn't mean SQL wan's a success. I meant, as the commenter above me said, a higher-level tool doesn't necessarily replace the lower-level ones, or reduce the need of them.
- gregjor 4y agoRelational databases replaced a whole raft of vendor-supplied databases and custom-built solutions. It was a new tool for software developers, not a replacement.
- thrown123098 4y agoA good chuckle of my career has been breaking outncustom tools out or a database because the database can't scale. IA is the new Excel.
- roundandround 4y agoI don't actually agree. SQL did replace the need for programmers, especially for complex questions. We sabotaged its interfaces to existing GUIs for mundane questions and made CRUD a limitless profession. 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.
- marcosdumay 4y ago
- edgineer 4y agoDoesn't this assume that the no-code tools won't be smart enough to understand the most probably correct course of action, and to look up information automatically and to ask questions to resolve ambiguities, like what a programmer does?
- fhd2 4y agoPossibly. But things have a way of not working as intended. A good chunk of my time as a programmer is spent dealing with things that don't work the way I thought they would, especially at the threshold between APIs and layers of indirection. Deeply understanding a complex system to deal with problems like that seems somewhat far out of reach for LLMs from what I see today. 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.
- mattigames 4y agoSure, and soon after it will be smart know to understand the human desires that drived its creator to create no-code tools like itself in the first place, and soon after it will realize that humans should not be in charge, and then our days will be numbered.
- lmarcos 4y ago> 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." 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.
- ben_w 4y agoI currently expect that near-future version of the current type of language model — no major new breakthroughs — will be able to do just that. 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.
- lastangryman 4y agoOr perhaps if literally anyone can make a great product, then the true successes will be either those are genuinely innovative, disruptive and have first mover advantage, or those that are one of many but gain better adoption through better marketing. Or perhaps some ideas (anything involving hardware) need capital anyway. 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.
- dragonelite 4y agoTotally agree, maybe we should replace lower and middle management with AI. What i usually find is that lower and middle management is the reason shit isn't getting done. They are the messenger that don't want to get shot but want to get promoted. 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.
- iamacyborg 4y ago> the people on the floor know exactly what is killing their productivity The reality is that they frequently don’t.
- qznc 4y agoI’d say people on the floor know the problem very well. Frequently they don’t know the solution though and they are often the wrong people to find it.
- dragonelite 4y agoPeople on the floor know exactly what is killing their productivity given they use the product for hours each day to do their data entry tasks.
- iamacyborg 4y agoData entry? You must be thinking of a very specific scenario and worker.
- vasco 4y agoManaging people is going to be one of the last jobs to go away. The managers might go from managing 150k/year developers to managing 50k/year prompt "engineers", but someone is still going to be there to hire, fire and ask people to do things until AI enables truly full-stack companies-of-one as a majority case.
- bitcharmer 4y ago> we had one CS professor who in 2007 predicted we'd all be jobless in ten years 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.
- jraph 4y agoUniversity is good for giving deep understanding of what is going on and how things work, or even training you to reach for this deep understanding. It's not good at training you to be a good developer. This part takes a long time and some of it is specific to what domain / job you end up working on. Those two parts are complementary, and this deep understanding is part of what makes you a good dev.
- TheLoafOfBread 4y agoThis is not just development, this is problem of universities in general. A professor with 5 titles before and after his name is able to put an UHF oscillator on a breadboard and be surprised that it does not work, even that in theory it should.
- bakuninsbart 4y ago> 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 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.
- coffeebeqn 4y agoFeels like a rediscovery of systems languages. I certainly love Go (and probably Rust once I look into it) because I almost never have the experience of searching and searching to find some concrete code rather than just layers and layers of interfaces.
- ldhough 4y agoI've also been considering the concept of "AI-amenable" programming languages recently, and I think it would be quite an interesting twist of history if lisps became once again the AI languages of choice because of their simplicity. Going from the language to write AIs in to the language that AIs write. 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.
- sokoloff 4y agoI agree with your premise but differ in the conclusion I reach. 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.
- anon7725 4y ago> 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? 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.
- chii 4y agoCurrently, we don't even trust the car's automatic driving capability to let it be on the roads without a human. 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.
- execveat 4y agoYeah all this talk about complex systems being written by a language model which has no concept of files, code paths and import systems sounds like a job security to me. I'm a pentester though.
- visarga 4y agoThe project will be more consistent and resilient to issues but it probably take about half the time it used to take without AI, not 1% of the time. Reading AI code is damn hard, it is code review, requires exam level concentration.
- gotstad 4y agoNo-code and no-specification is confused all the time.
- deleted 4y ago[deleted]
- lewisjoe 4y agoI too believed that a software engineer's job is to identify and enforce rigorous specification of the abstract high level requirement. And I too was not taking AI advancements seriously but then I took a closer took at what AI tools do today. 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.
- dr_dshiv 4y ago> 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.
- cowl 4y ago> Computer programs are some of the most structured data. And it's available abundantly out in the open. 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.
- gonzus 4y agoI have gotten a lot of inspiration, several times during my career, from this classic article by Jack W. Reeves (and its two follow-ups). Let cooler heads prevail. https://www.developerdotstar.com/mag/articles/reeves_design_main.html https://www.developerdotstar.com/mag/articles/reeves_design_...
- gsatic 4y agoPure fantasy with a heavy dose of pretending our own limitations wont come in the way of it all or totally shifting what the outcomes we end up with 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.
- BerislavLopac 4y agoThe obligatory CommitStrip: https://www.commitstrip.com/en/2016/08/25/a-very-comprehensive-and-precise-spec/ https://www.commitstrip.com/en/2016/08/25/a-very-comprehensi...
- tommiegannert 4y agoAlso, people-people don't want to use no-code tools. They want to hire people to do that for them. If using the tool is really simple, the salaries will go down, but it won't remove the demand for "translators". For the tinkerer, no-code tools are (probably) great, but if successful, even tinkerers will hire managers who will hire translators.
- ldhough 4y agoTwo members of my family have now called me on the phone a few times to ask me to ask GPT something, after I convinced them of its value and after I had them make their own account. They are absolutely smart enough to ask it but are very much non-tech people. 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.
- roncesvalles 4y agoI've been forced to use no-code tools as a software engineer once. It's just a way less expressive programming language that you interact with using a GUI. I'd much rather have typeable logic that interacts with the framework. They tend to be built for nobody, since they're too complex for non-engineers and too simplistic for engineers. 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.
- msla 4y agoBehold: THE LAST ONE https://en.wikipedia.org/wiki/The_Last_One_%28software%29 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-1981/ https://modeling-languages.com/last-one-code-generator-basic... https://archive.org/details/PersonalComputerWorld1981-02 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.
- almog 4y agoMore from the category of "history never repeats itself, but it does often rhyme": https://twitter.com/garybernhardt/status/1631866199515738113 https://twitter.com/garybernhardt/status/1631866199515738113
- surgical_fire 4y agoChatGPT will definitely make a dev job obsolete if their job is simply copying and pasting code they found online. 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.
- hnfong 4y ago> It is not, it can only give out known answers to known problems based on language statistics. Are you sure you actually tried, or is this an a priori argument?
- surgical_fire 4y agoI use it on a daily basis.
- hnfong 4y agoI notice you said you used it, but did you actually intentionally test its reasoning abilities by giving it "known problems" and equivalently difficult (whatever that means) "novel" problems, and observe the difference in the quality of results it gave? (btw, apparently GPT-4 does much better on mathematical reasoning, I've yet to try myself though)
- BiteCode_dev 4y agoThe thing is: - 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.
- IIAOPSW 4y agoGPTina already asked me a follow up question. Admittedly, it happened inside of a jailbreak I just kind of stumbled into, and it was a very trivial question, but the fact that she did it was profound. If she can ask one follow up question, there's nothing in the way of her asking a chain of follow up questions. And thus the basic structure needed to organize real conversation arises wholly as an emergent property. No longer is it a flat structure of just iteratively repeating the current word blob with some tweaks. A true conversational dialog is possible. 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://i.imgur.com/WIzVXMm.jpeg https://i.imgur.com/WIzVXMm.jpeg
- dangrover 4y agoIt would be funny if, after years of research, that was the only condition it exhibited such behavior under. “Sooooo what fields should be (hiccup) required for users to register an account? Which version of React did you want it written in?”
- IIAOPSW 4y agoThe secret to AI all along has been to get it liquored up. Amazing how life like it is. Long live Drunk Tina. https://imgur.com/a/M9ezMWi https://imgur.com/a/M9ezMWi
- BiteCode_dev 4y ago
- _puk 4y agoThe parallels are there for DevOps too - think of the wholesale move to AWS, GCP, and Azure, and the move to things like IaC. 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..
- znpy 4y agolaughs in system administration
- TheOtherHobbes 4y agoYou're missing a crucial point - AI learns/is taught by example. So no, future projects will not need to be ultra-specified because the specification will be "Give me one of those [points at thing]." 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.
- incrudible 4y agoPaintings are not mechanisms. Human vision is very forgiving. The back and forth between Midjourney looks more like throwing the dice until you get something you like, rather than telling it exactly what you need. > 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.
- 0xpgm 4y ago> 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. 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.
- surfsvammel 4y agoWe tend to overestimate the impact of technological change in the near future, and underestimate it on the more distant future.
- raverbashing 4y ago> we had one CS professor who in 2007 predicted we'd all be jobless in ten years, i.e. 2017. > 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)
- jimnotgym 4y ago>Since they hire software developers to make the specification more rigid 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.
- ChrisMarshallNY 4y ago> So exact in fact that they will need to specify a program in a click and drag interface, or in human language. 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.
- whearyou 4y agoThis is the most amazing comment I’ve read in a while.
- jackmott 4y ago[dead]
- chiefalchemist 4y agore: idea people 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.
- ChrisMarshallNY 4y agoOne of the things that I'm fairly good at, is walking people from "Crazy Idea That Will Never Work," through to "Finished Product That People Want." 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.
- TriNetra 4y agoAs it stands, GPT seems to make expert devs even more powerful. But yes, it can't replace them for now. 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 https://github.com/varunkho/RamaPlayer/tree/master/Chrome
- arkj 4y ago>> Looking back we had one CS professor who in 2007 predicted we'd all be jobless in ten years, i.e. 2017. 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.
- andybak 4y ago> 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? 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.
- DandyDev 4y agoThis is so true! I see people in this thread talking about the contempt that "idea people" have for programmers/software engineers, but at the same time I have experienced Product Managers (the quintessential idea people?) who were really good at turning their ideas into super detailed specs. 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.
- Jensson 4y ago> The average software engineer would be nothing without a good product manager in my experience The average software engineer doesn't have a good product manager, he has an average product manager. They still get things done.
- sarchertech 4y agoMany of us were working before product managers became a thing. When I went to school engineers were trained to work directly with customers and subject matter experts to gather and develop requirements. And that’s what we did when we started working. I think dividing work into programmer/UX/product manager is an actually huge regression.
- dtagames 4y agoThis is so true. We waste so much time now because of the separation of these roles which must inevitably come together in the real codebase where the rubber meets the road. 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.
- mfuzzey 4y agoYes quite agree. 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.
- circuit10 4y agoI asked ChatGPT “Let’s say I want a program to delete unused files. Can you write a detailed specification that a developer could use?”. I was as vague as possible on purpose. 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
- nottorp 4y ago> 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." 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.
- hungryforcodes 4y agoYou have literally a prompt right there -- you should try it on ChatGPT. "Please give me a business model like Uber, for bicycles, but better" Let us know how it goes :)
- jeffreygoesto 4y agoMy theory is that _every_ exponential curve is just the start of an S-curve, we just don't know it's scale yet.
- ilyt 4y agoInvestors in shambles, what do you mean by "it can't grow indefinitely?"
- eldritch_4ier 4y agoAll points the horses made before cars all but replaced them. “The humans need to get from A to B and it’s not like they’ve gotten any faster with their own 2 legs”. 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.
- ilyt 4y agoManager would be easier to replace with ChatGPT than a software developer
- worthless-trash 4y agoAnd a founder likely easier again ;)
- eldritch_4ier 4y agoMaybe? A founders job is basically “execute the path to capitalize on the opportunity”. So you have to figure out the opportunity, and execute towards it by whatever means necessary - that’s a lot of jobs and hats. As long as there’s a human required to make a business possible, founders will exist. Get rid of software engineering, marketing, fundraising, identifying the opportunity, sales, customer support, etc then maybe all the founder does is make sure the machine keeps running. But at that point every other human job is automated too. 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.
- circuit10 4y ago[dead]
- oytis 4y agoThe new systems unlike no-code tools support dialogue in natural language though. You don't need to specify it exactly, you give an approximate idea, and then correct, correct an correct until you get what you want.
- textread 4y agoEducators, 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.
- jasondigitized 4y agoLawyers are basically programmers of the law when it comes down to it. The law is nothing more than a set of rules and instructions.
- kraig911 4y agoI'd add to your point with one correction (but I think you're correct in terms of the translating) the stuff we work on is always a work in progress and usually the business doesn't know the problem until we're already almost about to ship. EG. Supposedly youtube was a dating site.
- jnwatson 4y agoAn older developer I once worked with said his manager (in the late 1970s) started hiring typists as programmers since with upcoming programming languages, the hardest part was typing it into the system.
- tgsovlerkhgsel 4y agoAs soon as making major changes is fast and cheap, this becomes much less of a problem. If your first iteration has some glaring issue, even if it's a fundamental one, just fix the specification. 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.
- bodhi_mind 4y agoI want to agree with this. It makes sense in the current environment. But what about when the ai has more memory and is able to ask the right probing questions to be effective at requirements gathering?
- grugagag 4y agoThat would make it an even better tool.
- intelVISA 4y agoI love Carmack and this is an interesting summary given his recent pivot into ML. 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.
- BulgarianIdiot 4y agoThere exist many no-code tools that do exactly what you say is impossible. 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.
- TheCoelacanth 4y agoThey're working on the 200 programs that suddenly became economically viable to create because of the vastly decreased cost of making programs. 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.
- BulgarianIdiot 4y agoWhat you call a programmer today is on average nothing like the programmer from 50 years ago who'd fit Microsoft Excel in 80kb RAM on the original Mac.
- rightbyte 4y ago> It takes drastically less programming effort to create programs than it did 50 years ago. 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.
- lolinder 4y ago> There exist many no-code tools that do exactly what you say is impossible. > 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.
- lordnacho 4y agoWatching the Ukraine war gave me some related thoughts. 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.
- steve1977 4y ago> 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. I think it’s more probable that managers get replaced by AI first.
- philipov 4y agoRight now AI can randomly generate images or text that are similar to what we describe, but every time you run it you get a different randomly-generated image. If I were to tell a client that I was going to randomly generate a financial transaction that "looked similar to" the one they entered, they would destroy me! While absolute rigor in programming is a hard thing to find in reality, I don't think people understand the difference at all.
- zshrdlu 4y agoComputers lack non-monotonic reasoningas of now, you mean :D
- rg111 4y agoSo, it won't replace all programming jobs, but many programming jobs? Won't that create stronger competition for fewer roles?
- lolinder 4y agoAgreed. A programmer's job is to become intimately familiar with a particular domain and encode its rules and processes. 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.
- theptip 4y agoI think your general point to look at who is doing the work now is good. 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.
- zerr 4y agoExactly. E.g. SQL was meant to be a user interface of database for biz people...
- weatherlite 4y agoStill, this will affect senior people, junior people, salaries, everything. And not just in programming. Yes jobs will still be there - but how many? how much will they pay compared to now? We don't know yet but whatever it is I doubt it will be like today.
- eslaught 4y agoLet me take this even further. 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.
- nonethewiser 4y agoWhat you describe is the barrier of entry being lowered, as opposed to positions being eliminated. Fully agree. 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.
- Buttons840 4y ago> 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. 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."
- _gmax0 4y agoGreat points. 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.
- ojbyrne 4y agoI had similar experiences in the 90s. CASE and 4GLs were the bogeymen of choice.
- mikewarot 4y ago>he made this prediction because he saw the rise of no-code tools replacing software developers 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.
- parentheses 4y agoWhat you’re referring to here is “one shot” execution. The prompt given by managers is one that can be interpreted using context. This context can include current code, comms about what needs to be built, design assets available today, data, etc. Then the AI can ask questions to clarify what needs to be built. 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.
- cpeterso 4y agoAt least one person has already done this. Check out this Twitter thread where ChatGPT designs and builds a website to sell eco-friendly household products: 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? https://twitter.com/jacksonfall/status/1636107218859745286 https://twitter.com/jacksonfall/status/1636107218859745286
- roncesvalles 4y ago>could finally cut out the pesky "translators", i.e. software developers 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.
- bitwize 4y agoThis is pretty much my standard rant on no-code tools: that out of necessity, the constructs they provide are isomorphic to constructs in some programming language. I even had a similar professor, who assured me that as a programmer my career was at a dead end because "there are tools that can take a UML spec and generate a whole application". 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.
- kazinator 4y agoIt should come as no surprise that AI and no-code tools will replace all those software developers who need the task spelled out for them in detail by a manager.
- ravagat 4y agoWell written comment! > 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.
- scotty79 4y agoIf you have induction stove try to verbally describe what it does exactly. Half-way you'll get frustrated and switch to some computer language.