11 ms·
I really think the current paradigm of literally typing if else logic all day into programs, and then getting paid huge money to do so will go away. Programming
by greatpostman 3y ago
I really think the current paradigm of literally typing if else logic all day into programs, and then getting paid huge money to do so will go away. Programming is going to be much higher level and accessible, though still complex. It will take five years or so.
Edit:
My prediction is essentially that:
You give it a set of requirements for an api, with edge conditions written in plain English. Test cases are provided. And the vanilla api is generated. We aren’t that far from this. It’s going to happen. Programmers may go in and tweak the generated code. When the requirements change, you pass in the old code as context.
Complex software will require human coding. But most programmers are in denial about how complex the code they’re writing actually is.
Requimemts gathering is notoriously tricky, but you won’t need engineers for it. Welcome to the age of the PM
- nextworddev 3y agoThe bi-furcation of programmer careers will intensify. Think of it like hedge fund traders vs stay-at-home retail traders. The closer you are to the core AI stack, the more you will get paid - kind of like hedgefund traders. If you are just copy pasting ChatGPT mostly, then you will get disintermediated at some point.
- greatpostman 3y agoI disagree with this as well. The number of people legitimately working on LLMs right now is probably only in the hundreds. One or a few huge models will do all the programming automation. But yes, high paying developer jobs will exist. The rest will not pay as well, and with much worse job security. This field is going to change very fast
- cj 3y ago> This field is going to change very fast It will be slowed by bureaucracy. Example: To be SOC 2 compliant, you need to have change management controls in place. How do humans manage change management if an AI is doing everything for the humans? Would humans still be doing code reviews? (AI might be so great where code reviews are obsolete, but compliance / regulations may still require humans in the loop) There's also a -huge- subset of software that is extremely mission critical or heavily regulated by compliance where all current compliance frameworks assume there's a human in the loop. Ripping the human out of the loop would require re-writing the regulations / standards (which I guess AI could help with) but I think the change will come slower than you're predicting. Change won't be slower because of any technological barrier necessarily (this is debatable), but because it will absolutely take a very long time for humans to fully trust AI and its output. The era we're in currently feels like where Tesla was a few years ago. Really cool concepts and proof that self-driving "works", but there are so many edge cases which limit its complete roll-out and makes the original promise of "everything will be self driving in 5 years" seemingly achievable, but 5 years later it hasn't been achieved, and remains simply an assistive technology with many limitations.
- nextworddev 3y agoYes - but here's the catch. Orgs that are agile and unbothered by middle managers will thrive by adopting change, while the slow ones will lose competitive edge. Eventually even the slow ones will have to adopt change.
- greatpostman 3y agoThere’s is way too much money to be made in this for beauracracy to get in the way.
- frozenport 3y agoWow you were doing that? And I’m sitting around here architecting code, rewriting graphs, and gathering input from stakeholders.
- danwee 3y agoThat's what they thought 50 years ago. Programming is not anymore "mov eax,1" and "int 0x80". Programming nowadays is much more highly accessible than it was 50 years ago... but still only a few (programmers) do it. AI is not going to change that (i.e., nor my manager nor my mother are suddendly going to "program" anything using high-level constructs)
- boredemployee 3y agoYou may be right, you may be wrong. Only time will tell (and I think it will tell really really soon).
- rustyminnow 3y agoI find that this comment adds absolutely nothing to the conversation. It could be posted under every comment that says <regex>"AI is (not)? going to revolutionize (the world|everything|this industry|my job)"</regex> Anybody making a prediction about the future might be right or might be wrong, and we won't know until it happens. This is just a snarky way of saying "nah dude you're wrong"
- andai 3y agoNo, they also said they think we'll find out "really really soon", which seems highly likely.
- boredemployee 3y agothank you for knowing how to interpret texts
- rustyminnow 3y agoThey may be right, they may be wrong. Only time will tell :)
- boredemployee 3y agoWow you're so smart my guy
- zelag 3y agoWho is typing if else logic all day into programs? Not even as a junior did I do this.
- greatpostman 3y agoProgramming is essentially if else logic
- sorokod 3y agoIs that what they call "full stack" programming?
- weatherlite 3y ago"full stack" programming is actually incredibly hard since you can no longer push new items once the stack is full. If this happens you better go the route of "stackoverflow" programming.
- adammarples 3y agoThinking logically isn't going out of fashion any time soon. Excel lets you fit increasingly higher order polynomials to a time series graph but you still need someone to tell them that's not a good forecast
- brigadier132 3y agoHere's a different 10-year prediction. AI will become good enough to be useful for programmers but not good enough to run on its own and will remain an assistant. Given that there is a shortage of programmers, more software will be written than ever. More software will beget more software engineers. Because the output of software engineers will rise, each individual software engineer will become more valuable to their business and salaries will rise.
- deleted 3y ago[deleted]
- tudorw 3y agoHaving played a bit with coding with AI I like this view, it's powerful, but context will always be an issue, turning real world problems into working code is a skill in it's own right, that will not change, superpowered yes, for me it's all the 'dull' parts of typing stuff out that I look forward to missing, from an early study on impact in the workplace, using a 2 year study of a call centre, the result was large improvement for less skilled staff as knowledge of best practice from those really excelling at customer service was rapidly propagated to juniors, seniors saw a much smaller increase in performance metrics. Now there is no excuse for me not to get AI to write my comments, a bunch of tests and some API's and database interconnects, etc. I've always taken a modular iterative approach, create a working basic model with a good foundation then extend it keeping it working as I build up to the final deliverable. Tempting just to go and sit in a cave for a couple of months and come back when the tools are a little more refined :)
- LamaOfRuin 3y agoJesus, this just triggered another nightmare scenario I should have thought of earlier. People are going to have it write and/or comment a function whose purpose is non-trivial and not straight-forward. It will be not or imperfectly checked that the comment actually says what it should and the functionality matches. There will be no indication of what was written by AI, so the only option is to guess that both were written competently/with the same purpose, but when they don't actually match there's no way to know which is wrong except to check all other code that interacts with it and figure out what has been working right/expecting what was originally intended in ways that subtly break/have been working right depending on the incorrect implementation that existed. This is absolutely something that already happens with fully human developers, but it seems likely to be much more frequent and not caught as soon with AI assistance. This also seems like a failure mode that could go pathologically wrong on a regular basis for TDD types.
- beoberha 3y agoWhat do you mean by “higher level”? AI code generation tools are extremely useful to people who know how to code, but how is it useful if you can’t understand the code it spits out. They are far from bug free and prompting it to handle complex business logic is tricky. If the higher level paradigm is simply English, then I don’t see it. If something else, I’m curious what you foresee.
- greatpostman 3y agoYou give it a set of requirements for an api, with edge conditions written in plain English. Test cases are provided. And the vanilla api is generated. We aren’t that far from this. It’s going to happen. Complex software will require human coding. But most programmers are in denial about how complex the code they’re writing actually is
- mr_toad 3y agoCurrent AI isn’t smart enough to point out the errors in the requirements. And current humans aren’t smart enough to generate error free requirements.
- nemothekid 3y ago>You give it a set of requirements for an api, with edge conditions written in plain English. Test cases are provided. And the vanilla api is generated. Sometimes I wonder where some of the posters here work or if I'm working in a dystopia. >You give it a set of requirements for an api with edge conditions written in plain English This part is the job! If my job was 100% writing logic, it would be infinitely easier. Defining the requirements, evaluating the tradeoffs, discovering the edge conditions is where the bulk of my time goes. The only time someone did this for me was when I was a junior developer. Maybe I'm overestimating things, but I find it hard to believe that most engineers pulling huge salaries are just shuffling around fields on JSON API. Do you really need AI to expose a CRUD interface to Postgres? Edit: This idea that LLMs will replace engineers (or lawyers, or any traditionally "skilled" field) is hype. It's the same mistake that the customer makes when he's shocked that he gets a bill for $10,000 for replacing a screw in his car engine. You are conflating the actual physical labour requirements of the job (sitting down and coding) with the actual knowledge value that is being used when you do the job. For example, take a look at Redis. Redis is a great codebase, especially for those that want to learn C. It's simple - there are exceedingly few mind-bending, hardcore, engineering algorithms in Redis. Antirez is an amazing software engineer, but Redis is not the fastest database, nor is it most durable. But what you see is the meticulous application of understanding engineering tradeoffs; there are things Redis does incredibly well and things that it doesn't that is made easier by the overall architecture of the code. How would you even begin to prompt this to an LLM? Again the code isn't complex, but the engineering is, and the act of turning those ideas and communicating them either to an LLM or to a C compiler, is engineering. No one comes home from a long day and says "Honey, I'm tired I spent all day typing JSON schemas and function signatures".
- fdgsdfogijq 3y agoSomeone non-technical can do the requirements gathering.
- SkyPuncher 3y agoIn my experience, it's a complete myth that requirement gathering can be done in a box. "Requirement gathering" is almost always influenced by technical capabilities. All but the simplest projects, require back and forth with guestimates about the direction and approach.
- zitterbewegung 3y agoSince people are bad at describing what they want there will be some kind of person that deals with the business and makes the computer work. Already we have prompt engineering. And also we could have said the same thing for people who write in assembly language, and each higher level language and also programs that are designed to be low code . I see that this is a new type of spreadsheet but scaling these up or using these programs aren’t going to make coders / software engineers / data scientists go away in fact historically we have seen the opposite.
- StefanWestfal 3y agoA possibility, and I think the way we work will evolve as well. But coming from a more "numerical" background, I can imagine a different route. Twenty years or longer ago, people who wanted to process a larger amount of data needed to understand low-level details, compilers, C/C++/Fortran, mathematical details, and so on. Today, we have JAX, scikit-learn, and many more tools. But these tools did not make the old 'numerical' people jobless; instead, their jobs evolved. Today, we have more data scientists than ever. You can create your own app faster than years ago, including hosting, persistent storage, load balancing, ... And again, we have more web developers than ever. The same goes for jobs like DevOps and other jobs that I probably don't even know. The level of abstraction got higher as you better now what the algorithm is doing but you do not need to implement it again. The point is the field will evolve, and right now, it may be the biggest jump ever, but that does not mean jobs will go away. We might end up in a situation like self-driving, where we are really close but still missing the last bit and need human intervention. I hope LLMs will solve the tasks that have been solved many times before, like bootstrapping a CRUD app, and we can focus on the edge cases and niche problems.
- analog31 3y agoWho will write in plain English? Granted I'm not in software development, but work in an adjacent area. Communicating requirements is already a hard, unsolved problem. In an adjacent discussion about ChatGPT, we will look forward to when nobody learns to write in plain English any more.
- lvl102 3y agoPeople who get paid well in this business get paid for the big picture stuff. Architecture. Writing good code was never that valuable. My two cents.
- weatherlite 3y ago> Complex software will require human coding. But most programmers are in denial about how complex the code they’re writing actually is. I think it's just a matter of time till all software becomes complex, e.g a codebase worked on by a few dozens people for 10 years will have a non trivial level of complexity. Not disagreeing or anything, the machines might be able to do this well, we'll see. It will have to improve by a lot, like almost no hallucinations. But there could be many shades in between. Instead of completely replacing developers in 5 years which I personally find unlikely, it can replace 50% of them.
- dpistole 3y ago"paid huge money to literally write if/else" "most programmers are in denial about how complex the code they’re writing actually is" I can taste the salt
- abeppu 3y agoI think this is a sad vision of the future not because a lot of programmers will be forced to do something else, but because it seems like this represents a fundamental failure for formal methods. We're hurtling towards a world where we automatically generate low-quality, buggy code, produced by stochastic parrots who mimic code written in possibly a different era by humans tackling different problems. Forget about being employed producing software in a world where these are the norms, I don't think I'd want to be a software _user_. I'd love for programming to be higher level and accessible, but I wish the process were: - write a _specification_ that describes functionality, invariants, etc - generate signatures compatible with that specification - interactively seek implementation-relevant information from the designer, e.g. - "I see Users can have an unbounded collection of Bars, which can each reference an unbounded number of Wugs. How many Bars do you suppose a typical User would have? How many Wugs per Bar and how many Bars will reference each Wug? How large is a Wug typically?" - "Which of these DB queries do you expect to be run most/least frequently?" - "This API method allows for pagination. How often do you expect a user to page beyond k?" - generate tests - generate code aligning with signatures, _and which cause tests to pass_ (i.e. program synthesis from examples) - static analysis / abstract interpretation / model checking to confirm that some invariants are respected - explicitly reporting which invariants or properties were not able to be confirmed automatically which a human may need to confirm via an ad-hoc analysis Software is one of the domains where we can actually do a lot of sophisticated automated reasoning, but the current trend of ML code generation as text completion ignores basically all of that, and this seems like a giant waste.
- Mizoguchi 3y agoI've been using ChatGPT to generate scripts I sometimes need(ed) to write for testing and troubleshooting purposes. For example parsing files, pulling data from a table and dumping it in a CSV, monitor performance counters or network activity, backing up and copying files etc. I don't consider this part of my job, but it's stuff I need to do often and I'm glad it can now be delegated to a bot. It also means new hires and co-ops have more interesting things to do. Today for the first time I used code from ChatGPT in a working solution. Nothing too advanced, a small routine to interpolate a vector. It took me literary a minute to write the prompt and another maybe 5-10 to adapt it and test it. I see myself using ChatGPT more and more for this type of things, automation scripts and very specific, simple routines in production code. However this is not 5% of the stuff I do, for the other 95% there's simply no AI advanced enough to do it and there won't be any for several years or decades or maybe ever. Now those working purely in CRUD applications from functional specs given my others, better to start switching to something that demands design skills and process know-how.