23 ms·
Thoughts on the Future of Software Development
- chrisjj 3y ago> the main argument against automating these tasks was that machines can’t think creatively. Now this argument gets weaker by the day. Citation needed.
- dartos 3y agoI mean it’s definitely a weaker argument than 2 years ago. AI may very well plateau, but it might not.
- couchand 3y ago> I mean it’s definitely a weaker argument than 2 years ago. Is it? I see no evidence that machines are any closer to "thinking creatively" than they ever have been. We certainly have been developing our capacity for computation to a great extent, but it's not at all evident that statistical methods and creativity are the same thing.
- throwaway_08932 3y agoA practical definition of "creativity" is "can create interesting things." It's pretty clear that machines have become more "creative" in that sense over the last few years.
- boxed 3y agoI have yet to see ChatGPT or something similar ask a followup to clarify the question. They just give you a "solution". That's equivalent of a super bad junior dev that will cause more trouble than the amount they will solve. That being said, I think we could make such a system. It just has to have training data that is competent...
- simonw 3y agoTell them to ask you follow up questions and they will. Some systems built on top of LLMs have this built in - Perplexity searches for example usually ask a follow up before running the search. I find it a bit annoying because it feels like about half the time the follow up it asks me isn't necessary to answer my original question.
- boxed 3y ago> Tell them to ask you follow up questions and they will. That's rather missing the point. If your question makes no sense it will not ask a followup, it will spit out garbage. This is pretty bad. If you are competent enough to ask it to ask for followup then you are probably already competent enough to either not need the tool, or competent enough to ask a good question.
- Workaccount2 3y agoI have had chatGPT suggest that I give it more data/information pretty regularly. Although not technically a question, it essentially accomplishes the same thing. "If you give me this" vs. "Can you give me this?"
- theshackleford 3y ago> I have yet to see ChatGPT or something similar ask a followup to clarify the question. I don’t use it for dev, but other things and I get chatgpt asking me follow up questions multiple times a day.
- imiric 3y agoThis point is often brought up in threads about AI, and I don't think it's accurate. The thing is that statistical models only need to be fed large amounts of data for them to exhibit what humans would refer to as "creativity", or "thinking" for that matter. The process a human uses to express their creativity is also based on training and the input of other humans, with the difference that it's spread out over years instead of hours, and is a much more organic process. AI can easily fake creativity by making its output indistinguishable from its training data, and as long as it's accurate and useful, it would hold immense value to humanity. This has been improving drastically in the last few years, so arguing that they're not _really_ thinking creatively doesn't hold much water.
- pegasus 3y ago> is it? It is. And I bet most people would agree with GP. Most people (including engineers building these systems) have experienced surprise with some of the outputs of these models. Is there anything better to gauge creativity by than perceived surprise?
- JohnFen 3y ago> Is there anything better to gauge creativity by than perceived surprise? I think there has to be, since such surprise can be generated through purely random mechanisms, and I don't think anyone would call a purely random mechanism "creative".
- brabel 3y agoIf it were purely random it would generate rubbish.
- JohnFen 3y agoNot necessarily, but even in the cases where that's true, there will be the occasional result that surprises (in a good way).
- kevindamm 3y agoThis reminds me of when I would be surprised by AI bots I coded up for video games. Yeah, sometimes they beat me, and their strategies were often a mix of RNG and heuristics so I was certainly surprised by their behavior on many occasions. But would I consider them creative? No. Would they fool some people into thinking they had creativity and agency? Sure.
- dartos 3y agoI can ask my computer to write a backstory for my dnd character, give it a few details, and it makes one. Sometimes it adds an extra detail or two even! A few years ago that was almost unthinkable. The best we had was arithmetic over abstract language concepts (KING - MAN = QUEEN) We don’t have a solid definition of “creativity” so the goalpost can move around a lot, but the idea that a machine can not create new prose, for example, is just not true anymore. That’s not the same as creativity, sure, but it definitely weakens the “computers can’t be creative” argument.
- kevindamm 3y agoactually, KING - MAN is a neuter ruler. You need to add WOMAN to that vector to get QUEEN. Sometimes. If the embeddings were trained well.
- Hoasi 3y agoNot really. Large language models' output is creative only insofar as you prompt them to mix data. It allows you to create combinations that nobody has seen before. On its own, an LLM is incapable of producing anything creative. Hallucinating due to a lack of data is the closer it comes to autonomous creativity. Happy accidents are an unreliable creativity source. This type of creativity is amusing but doesn't solve any existing problem today.
- taco-hands 3y agoThere's a simple irony in it all. AI's perceived value is based upon and built from human creativity - remove it (and its evolution) and it will end in grey/brown sludge.
- ks2048 3y agoOne of the ironies of current generative AIs and LLMs - they are creative, but need human supervision to watch for simple logical errors. Just the reverse of conventional way of looking at humans vs machines.
- RALaBarge 3y agoTo me, I think the end game for any code developing automation isn't that it needs to be creative to program, but.. A: needs to have a close to complete understanding of the problem to solve and the tools they have in languages to complete this in the most efficient way and.. B: need to be able to iterate through all of the different options it can generate and run `perf` or what have you on the outcomes of each and present the top few winners AGI might not be a thing we can make, but if we can make enough semi-intelligent AIs communicating via a standardized format that are each 95% right on their respective domain we might be at a level that is good enough. Add in for critical domains some sort of polling that is done between a few admin AIs to make sure the winning results are not a hallucination.
- samsquire 3y agoLarge language models could be used to configure abstract syntax trees for desired behaviour, since much of devops and software architecture is slotting configuration together. Kubernetes, linkerd, envoy, istio, cloudformation, terraform, cdk. We're just configuring schedules and binpacking computation and data movement into a calendar. The semantic space of understanding behaviour is different to understanding syntax.
- lnxg33k1 3y agoI don’t do much on internet, i don’t have facebook nor other various socials, just HN, or read simple docs, or code. Otherwise I’m AFK. Now since October Ive visited 4 sites that were not simple reading stuff, that I had to interact or do various level of meaningful stuff, and all 4 had issues and were expecting me to call support etc. I hope in the future of software development there are more automated tests and less hiring managers
- netman21 3y agoNow combine this approach with concepts of no-code, which takes the task of writing lines of code out of the path from concept to production. An AI could easily create instructions that could be fed to bubble to create an app. Either bubble is already working on this or someone else is and bubble will miss the boat.
- osigurdson 3y agoI think the expanded pie argument is probably valid to an extent. If costs go down, demand goes up. Also, I suspect new entrants to the field will start to slow as it won't be as lucrative as it once was. This is exactly what happened after outsourcing threatened wages in the 00's - followed by insanely high compensation in the 10's.
- lonelyasacloud 3y agoThe expanded pie argument only works when there is something that cannot be done - or more cost effectively done - by the machine. The argument in the article is that that something for SW developers is increasingly going to be to feed the machine with requirements. I have no idea how this will pan out, but from where I am sitting the ability to converse and understand business users, even if they stay human ones, better than current sw devs do doesn't feel like much of a moat, especially with the machine's evolving io modalities.
- vouaobrasil 3y agoI've been using computers since I was about 12...long time ago. What I've come to the conclusion is this: the best programs and the best tools are the ones that are lovingly (and perhaps with a bit of hate too) crafted by their developers. The best software ecosystems are the ones that are developed slowly and with care. AI coding seems all wrong compared to that world. In fact, the only reason why there is a push for AI coding is because the software world of the ol' days has been co-opted by the evolutionary forces of consumerism and capitalism into a pathology, a nightmare that exists only to push us with dark patterns into using things and buying things that we don't really need. It takes the joy out of software development by placing two gods above all else that is mortal and good: efficiency and profit. AI seems antithetical to the hacker ethic, not because it's not an intriguing project, but because within it seems to be the deep nature of automating away much of the joy of life. And yes, people can still use AI to be creative in some ways such as with AI prompts for art, but even so, the overall societal effect is the eroding of the bespoke and the custom and the personal from a human endeavor whose roots were once tinkering with machines and making them work for us, and whose final result is now US working for THEM.
- IggleSniggle 3y agoOn the one hand, I agree with you. On the other hand, you could make similar arguments for the typewriter, the printing press, or the wheel.
- vouaobrasil 3y agoNope, there is a fundamental difference that people who point out this analogy ALWAYS fail to acknowledge: AI is a mechanism to replace people at work that is largely considered creative. Yes, AI may not be truly creative, but it does replace people doing jobs, and those people feel they are doing something creative. The typewriter, the printing press, the wheel, never did anything of the sort. And, you're also ignoring speed and scale: AI develops much faster and changes the world much faster than those inventions did. Your argument is akin to arguing that driving at 200km/h is safe, simply because 20km/h is safe. The wheel was much safer because it changed the world at 20km/h. AI is like 1000km/h.
- osigurdson 3y agoI honestly wouldn't mind if the type of software where you talk to business users and implement their random thoughts to automate some banal business process goes away. It generally seems low value anyway. We should still have software products however.
- kovezd 3y agoFolks see it wrong. Is not about human vs machine software development. Is about allocating the brightest humans to the most productive activities.
- paulryanrogers 3y agoKeep in mind there are many more humans that aren't as bright. If there are fewer and fewer ways for them to contribute then they'll find other ways to get what they need.
- kovezd 3y agoAnd as long as robots are where they are. There a lot of jobs in hospitality, and healthcare available. In average, life quality will improve.
- samatman 3y agoA reasonable, albeit lossy, gloss on "bright" is "someone who earns their living through intellectual labor". Clearly there are mathematicians who become potato farmers, but what we don't see is movement in the other direction: call it sufficient but not necessary. The corollary being that those people are already earning their bread doing things which an artificial intelligence can't replicate. I've seen many vast overestimates of how many of these jobs could even be replaced with a Jetsons robot, and we're nowhere close to deploying anything vaguely resembling one of those.
- smallmancontrov 3y agoMaking sure those productive minds sell ads rather than do science. Value creation!
- kovezd 3y agoYes. The distribution of information is indeed a complex problem, as graph theory shows us. Regarding science is about one standard deviation further than software development in complexity. It's not necessarily a trade off. On the contrary, software applies scientific breakthroughs.
- clktmr 3y agoAs long as there is no AGI, no software engineer needs to be worried about their job. And when there is, obviously everything in every field will change and this discussion will soon be futile.
- Toutouxc 3y agoThis has been my cope mantra so far. I don't mind if my job changes a lot (and ideally loses the part I dislike the most — writing the actual code), and if I find myself in a position where my entire skillset doesn't matter at all, then well a LOT of people are in trouble.
- Vinnl 3y agoThe worst future is where there still are plenty of jobs, but all of them consist of talking to an AI and hoping you use the right words that gets them to do what you need it to.
- weweweoo 3y agoNot really. As long as there is no universal basic income, any job with decent salary beats unemployment. The job may suck, but the money allows you to do fun stuff after work.
- tomashubelbauer 3y agoI have seen programmers express that they dislike writing code before and I wonder what the ratio of people who dislike it and people who like it, is. For me, writing code is one of the most enjoyable aspects of programming.
- hnick 3y agoIt's my favourite part, except maybe debugging. I really like getting into the guts of an issue and working out why it happens which I suppose will be around for a while yet with AI code. It's a lot less fun with transient network issues and such though.
- bsaul 3y ago", I believe there would still be an underlying formal definition of the business logic generated in the backend" Not just business logic. Technical one too, such as "proove that this critial code can never run into an infinite loop" AI could very well be the revolution needed to bring theorem proover and other formal proof based languages ( coq, idriss, etc) to the mainstream mass of developers.
- agentultra 3y agoOnly if they can understand the proofs first. However, LLMs aren't capable of writing proofs. They can only regurgitate text that looks like a proof by training on proofs already written. There's no reasoning behind what they produce. So why waste the time of a human to review it? If the provers' kernel and automation make the proof pass but it makes no sense, what use is it? People write proofs to make arguments to one another.
- adrianN 3y agoIf the proof make it past the validation it’s a valid proof and makes sense by definition.
- marcosdumay 3y agoIt means your proof proves something. Whether it's something you care about, or even something that should be true at all is out of scope.
- agentultra 3y agoThis is what I meant, thanks for clarifying. I might also add that, “they,” on the first line are software developers. Most are not trained to read proofs. Few enough can write a good test let alone understand when a test is insufficient evidence of correctness. I had to learn on my own. Even if LLMs could start dropping proofs with their PRs would they be useful to people if they couldn’t understand them or what they mean?
- iLoveOncall 3y ago> Before the advent of these models, the main argument against automating these tasks was that machines can’t think creatively. Really? For me it's always been, and hasn't changed since LLMs have been released, that it's much harder to explain in enough details what you want to an AI and get the correct result than to actually code the correct result yourself. Prompting is like a programming language but keywords have a random outcome, it's 100% inferior to simply writing the code itself. LLMs will help with tooling around writing the code, like static analysis does, but it'll never ever replace writing code.
- delegate 3y agoIt's a good overview, but I think there's one important aspect that's not discussed. We're looking at AI competing with the jobs that programmers do today, but it's likely that these new AI tools will change software itself. I mean, why have a complicated UI with design/validation/etc when you can just tell your phone you want a plane ticket to Paris tomorrow ? I'm just going to guesstimate that at least half of the apps we use today can be done without a UI or with a very different type of UI+natural language. Add AI agents that are fine tuned on all your personal data in real time (eg. photos you take, messages you send, etc) which will end up knowing you better than your mom. In a company setting, the AI will know all your JIRA tickets and Slack/Teams conversations, e-mails and so on. On the backend, instead of API endpoints, you'll have just one - where the AI asks you for data piece by piece, while the client AI provides it. No need to program this, the AIs can just figure it out by themselves. Definitely interesting times, but change is coming fast.
- geraneum 3y agoI believe this is where we’re headed. AI replacing much of the software itself. You don’t need a website to manage your rental properties, another one for ordering food, etc. However it’s not as imminent as “just fine tune it on personal data”.
- i_am_a_squirrel 3y agoUnderrated comment! I agree, it's like the LLM becomes all of the logic, all of the code. I guess that's less computationally efficient though for some simple things.. for now!
- Anuiran 3y agoThis is similar to my thoughts, “code” is for humans. AI does need a game engine or massive software, some future video game just needs to output the next frame and respond to input. Little to no code required.
- ks2048 3y agoThis indeed may be the future, and I'll probably be a grumpy old man complaining about it. What was once a form will be replaced by a system needing to connect to a server running a 1T parameter model requiring specialized hardware and using 1e6 times the power.
- empath-nirvana 3y agoI don't really think that thinking of LLMs and related technologies as "Artificial Humans" is the right way to think about how they're going to be integrated into workflows. What is going to happen is that people are going to be adopt these tools to solve particular tasks that are annoying or tedious for developers to do, in a way similar to the way tools like Ansible and Chef replaced the task of logging into ssh servers manually to install stuff, and aws replaced 'sending a guy out to the data center to setup a server' for many companies. And it's going to be done piecemeal, not all-at-once. Someone will figure out a way to get an AI to do _one_ thing faster and cheaper than a human and sell _that_. Maybe it's automatic test generation, maybe it's automatically remediating alerts, maybe it's code reviews. The scope of work of what a software developer does will be reduced until it's reduced to two categories: 1) Those tasks that it is still currently only possible for a human to do. 2) Those tasks which are easier and cheaper for a human to do. You don't even really need to think about LLMs as AIs or conscious or whether they pass the turing test or not, it's just like every other form of automation we've already developed. There are vast swathes of work that software developers and IT people did a few decades ago that almost nobody does any more because of various forms of automation. None of that has reduced the overall amount of jobs for software developers because there isn't a limited amount of software development to do. If you make software development less expensive and easier than people will apply it to more tasks, and software developers will become _more_ valuable and not _less_.
- visarga 3y ago> 1) Those tasks that it is still currently only possible for a human to do. 2) Those tasks which are easier and cheaper for a human to do. I agree, but "1" must include all tasks where a mistake could lead to liabilities for the company, which is probably most tasks. LLMs can't be held responsible for their fuckups, they can't be punished, they have no body. It's like the genie from the bottle, it will grant your three wishes, but they might turn out in a surprising way and it can't be held accountable. The same will apply for example for using LLMs in medicine. We can't afford to risk it on AI, a human must certify the diagnosis and treatment. In conclusion we can say LLMs can't handle accountability, not even in principle. That's a big issue in many jobs. The OP mentioned this as well: > even when AI coders can be rented out like EC2 instances, it will be beneficial to have an inhouse team of Software Developers to oversee their work Oversight is basically manual-mode AI alignment. We won't automate that, the more advanced an AI, the more effort we need to put in overseeing its work.
- FrustratedMonky 3y agoFor people worried about jobs. The last diagram showing the big increase in overall market size is the big 'leap in faith' about the future.
- dvh 3y agoYesterday I asked copilot to help me: https://www.eevblog.com/forum/dodgy-technology/manufacturers-hate-this-simple-trick/?action=dlattach;attach=2076962;image;PHPSESSID=75ckekonp1tou3jha64c5ob195 https://www.eevblog.com/forum/dodgy-technology/manufacturers...
- xandrius 3y agoGives us poor plebs some context please.
- Kon-Peki 3y agoThis is the future of software development: > The Administration will work with Congress and the private sector to develop legislation establishing liability for software products and services. Any such legislation should prevent manufacturers and software publishers with market power from fully disclaiming liability by contract, and establish higher standards of care for software in specific high-risk scenarios. To begin to shape standards of care for secure software development, the Administration will drive the development of an adaptable safe harbor framework to shield from liability companies that securely develop and maintain their software products and services. [1] LLMs can help! But using them without careful babysitting will expose your company to unlimited liability for any mistakes they make. Do you have humans doing proper checking on their output? Safe harbor protections for you! [1] https://www.whitehouse.gov/wp-content/uploads/2023/03/National-Cybersecurity-Strategy-2023.pdf https://www.whitehouse.gov/wp-content/uploads/2023/03/Nation...
- gtirloni 3y agoLLMs are already being stripped of their "magic" by AI safety efforts. This will only limit them further until they are nothing more than a fancy API endpoint, almost like the "old" APIs but consuming 1000x more energy. I bet these "standards of care for secure software development" will demand a very deterministic API be put in front of the LLMs to ensure only approved output passes through. At which point I question the useful of such a solution.
- threecheese 3y agoI can’t believe I hadn’t seen this earlier. Am I wrong, or could this change the software profession - accountability trickling down to the engineer which inevitably leads to insurance and licensure?
- Kon-Peki 3y agoThey aren't aiming to go that far. They want companies to be accountable, not the employees of the companies. They want the company to have a vested interest in having a good process, and not really much more than that. It would indeed totally change the profession.
- pookha 3y agoSoftware Developers (humans) are the horses, the models are the mechanical cars, and the analysts and business experts are the drivers. Software's only job is to empower the end user, and that's exactly what these models are doing. We're going to see a massive paradigm shift in how software technology is built in the next decade.
- bee_rider 3y agoMaybe. Currently, these models seem to be useful but produce incorrect code sometimes, right? So coders might need to still exist. And they do they actually work well for whole projects, or just snippets of code (I’m sure increasing project size will be an area of rapid improvement). Also the models are trained on existing code, will the models need extra data to train them? The analogy would fit if we still needed horses to drive manual cars or to help navigate. Or if cars were an interpolation of horse behavior and we studied horses to improve the operation of cars.
- zeroonetwothree 3y agoMore like the developers are the drivers, the dev environment is the horse, and the analysts and business folks are the passengers. And how they love to backseat drive…
- JohnFen 3y ago> In summary, I believe there would still be a market for Software Developers in the foreseeable future, though the nature of work will change This is precisely what I dread. When it comes to software development specifically, the parts that the AI cheerleaders are excited about AI doing are exactly the parts of the job that I find appealing. If I wanted to be a glorified systems integrator, I would have been doing that job already. The parts that the author is saying will still exist are the parts I put up with in order to do the enjoyable and satisfying work. So this essay, if it's correct, explains the way that AI threatens my career. Perhaps there is no role for me in the software development world anymore. I'm not saying that's bad in the big picture, just that it's bad for me. It increasingly appears that I've chosen the wrong profession.
- ActionHank 3y agoAlso if there are fewer humans involved in the code production there is a lot of room for producing code that "works", but is not cohesive or maintainable. Invariably there will be a point at which something is broken and someone will need to wade through the mess to find why it's broken and try to fix it.
- bluefirebrand 3y agoNah, you just throw it out and have the AI generate an all new one with different problems!
- Jensson 3y agoI really look forward to all programs now having new strange bugs every release. They already do, but I expect AI to do that more at first.
- falcor84 3y agoI don't know if AIs will ever get really good at QA in general, but I do think that AIs can get quite good quickly at regression testing.
- aggieNick02 3y agoThe "Framework: Outsourced Software Development" image confuses me. What do the green/yellow/lavender circles represent in each 6x6 grid of circles?
- ozten 3y agoThis is how I interpreted it: Green - non engineers employed by the "the company" Yellow - In house engineers, or engineers employed by the the company Lavender - Vendor engineering external to the company
- aggieNick02 3y agoAh, that makes sense, thanks. A legend or even sentence explaining that somewhere in the article would've been great.
- hcarvalhoalves 3y agoI foresee we'll soon have an "Organic Software", "Software Made By Humans" seal of approval.
- sharadov 3y agoIMO LLMs are going to be enhancers for experienced programmers. Although I worry that a lot of junior programming jobs will simply vanish. Software is facing the same headwinds that a lot of low-level office jobs faced, they were first shipped overseas and then automated away. A lot of software development which is CRUD applications is going to be disrupted. Bespoke software that requires specialized skills is not going away anytime soon.
- sorokod 3y agoThe highest level would be like delegating part of your project or the entire project to a developer. These “AI coders” would take in the requirements, write the code, fix errors and deploy the final product to production. About the "write the code" part - what code is that? Machine code, Assembly, JS? Who creates the languages, compilers, interpreters and the plethora of tools required to operate these and deploy to production?
- threecheese 3y agoThis is where I’m stuck. The ecosystem we have today has evolved over >40y in lockstep with new hardware and technology, in a feedback loop of technological development. It is pretty resilient (from an evolutionary perspective). It includes layers of abstraction that hide enough complexity for humans to use it, but an AI doesn’t need this crutch; if we delegate the code writing responsibilities to it then what happens to this ecosystem? Purely from an economic perspective it is likely that in the limit we narrow down to the most efficient way to do this, which will be a language designed for AI, and dollars to donuts it’ll be owned by Google (et al). Will Python4 (etc) whither and die on the vine, due to lack of investment/utility? Then what happens to technology?
- sorokod 3y agoIn the limit, languages will be designed by AI for AI and the same goes for hardware. This assumes that languages higher then machine code will be needed which is not obvious. Will this be acheived in a few years or a a few decades or never I can't tell.
- mobiledev78791 3y ago> I assumed were still many months away from this happening, but was proved wrong with the Devin demo - even though it can only perform simple development tasks now, there’s a chance that this will improve in future. Doesn't Devin run using GPT-4? And as such, with all generative AI technologies, its performance is subject to the common challenges faced by these systems. Mainly the transformer model, which is the foundation of GPT-4, is known for its linear scalability. This means that as more computational resources are allocated, its performance improves. However, this scalability is subject to diminishing returns, reaching a point where additional resources yield minimal improvements. This theoretical "intelligence" limit suggests that while continuous advancements are possible, they will eventually plateau. The future of software development will continue to involve human software engineers until we achieve true Artificial General Intelligence. Regardless of when or if AGI becomes a reality, your skills and expertise in your niche domain will remain valuable assets. While companies may leverage AI-powered software engineering tools to augment their workforce and in effect replace you, you as a skilled professional can do the same. If you possess a deep understanding of your core domain and a passion for building useful products, you can leverage AI software engineering tools, AI-powered design assistants, and AI-driven marketing solutions to launch new startups more efficiently and with less capital investment, especially in the realm of software-centric businesses. So, the way I see it, it is the businesses that need to be afraid, if AI becomes capable enough to start replacing their workers, as it will also make it easier for most software engineers and product managers to build competing products in their areas of specialization.
- SavageBeast 3y agoIts an easily enough conducted experiment to find out for sure, first hand here. We're all developers here right? Get out some previous project ticket (you do have those right?) and put your Manager hat on. Take a whole big step off the LLMs plate and convert your ticket input to prompts directing the AI to generate a certain subsection of code for a particular requirement. Do this for all the requirements until every use case is satisfied with some code to execute it. Now, get all that code to compile, run at all, run correctly then finally run optimally. Hell, get it to pass a basic test case. Use the LLM for all of this. Feed the bugs to the LLM and ask for a correcting fix of the condition etc. Even simpler, pull a ticket from your next sprint and assign it to a dev with the instructions to use the LLM as entirely as possible for the task. The results of this experiment will be informative and unless you're building a demonstration API endpoint that reverses binary trees or something else trivial, then you will cease to be worried about AGI taking over anyones job in the near to medium term. Try it FIRST - THEN flame me if you still feel like it (if you're not still busy fucking with prompts to build code you could have built in less time yourself)? To be clear I'm a proponent of this kind of technology and I use it daily in my dev/ops/everything work. Its faster and more accurate than reading docs to figure something out. Im never asking GPT to "do" something novel as much as Im asking it to summarize something it knows and Im setting a context for the results. I can't tell you the last time I read a Man page for some Bash thingy - Its just fine to ask GPT to build me a Bash thingy that does XYZ. Of note, Ive asked GPT4 for some very specific things lately re-configurations (I have 3 endpoints in different protocols Id like to proxy via Nginx and Id like to make these available to the outside world with Ngrok - tell me the configurations necessary to accomplish this). It took me quite a bit of mucking around to get it working and the better part of the day to be satisfied with it. Im pretty confident a suitable intern would have had difficulty with it too. AI is great and ever increasing in its abilities but we're just not there yet - we'll get ever closer as time goes on but we'll never quite get there for general purpose development-in-whole-by-AI. A line that continually approaches a given curve but does not meet it at any finite distance, thats an asymptotical relationship and I believe that describes where we are very well today.
- justincredible 3y ago[dead]
- kungfupawnda 3y agoThere will always be more novel code to write that the the AI hasn't learned.
- WesolyKubeczek 3y agoCan’t GPT—4 replace a middle manager today already? Why aren’t useless ticket pushers afraid? “Reformulate this problem statement for a programmer to implement” straight from executive’s mouth and then “given these status updates, tell me if we are there and if anyone is trying to bullshit” is a perfect thing for an LLM.
- jarsin 3y agoGone are the days of hearing our jobs were going to be outsourced to India. Now AI is going to do our jobs. I know quite a few people in my circle who never got into tech because they believed all this outsourcing crap. After 20 years I can say without a doubt I am much better off than any of them. How many now will never get into tech due to AI?
- Animats 3y agoBig question: how to represent programs when some kind of AI-type system is doing most of the work. Code is all "what" and no "why". Intention is represented, if at all, in the comments. If you use an AI to modify code, it needs intention information to do its job. Where will that information come from?
- Animats 3y agoThis suggests something. Knuth's old "literate programming", which is a formalized comment-heavy style. That might be useful for AI-generated code, to capture the "why". The purpose is to provide the info needed as part of the prompt when an LLM next works on the code again. What's needed is a way to write down what the military calls "commander's intent".[1] Commander's intent reads like "why", but its real purpose is to provide guidance as to what's important when things don't go as planned. [1] https://www.armyupress.army.mil/Portals/7/military-review/Archives/English/MilitaryReview_20131231_art011.pdf https://www.armyupress.army.mil/Portals/7/military-review/Ar...
- nopinsight 3y agoSam Altman: The nature of programming will change a lot. Maybe some people will program entirely in natural language. from min 1:29:55 — Sam Altman & Lex Fridman’s new interview, incl questions about AGI https://youtu.be/jvqFAi7vkBc?si=tZXNdVnOSk1iWX34 https://youtu.be/jvqFAi7vkBc?si=tZXNdVnOSk1iWX34 I agree but there will likely be demand for experts to help direct AI to create a better solution than otherwise and even write pseudocode and math formulas sometimes. The key is for the expert to understand the user’s needs better than AI by itself and ideally better than the user themselves. Many/most software engineers could act more like art directors rather than artists, or conductors instead of musicians.
- xyst 3y agoWhole article is a bit rushed. Seems like a knee jerk reaction based off the tech demo of “Devin AI”. I’ll admit the tech demo was impressive on the face of it. But it had all the flags showing it was a well rehearsed demo (think Steve Jobs and original iPhone debut) or even simulated images and videos. For all we know the code was written well in advance and recorded by people then tech ceo Steve Job’d the shit out of that performance. I notice the ai is still in preview and locked behind gate
- cynicalsecurity 3y agoThere is one fundamental flaw with the AI generated code: unmaintainability and unpredictability. An attempt to modify the already generated specific piece of code or the program in general will produce an unexpected result. Saving some money on programmers but then losing millions in lawsuits or losing customers and eventually the whole business due to an expected behaviour of the app or a data leak might not be a good idea after all.
- lazide 3y agoRetorts from the business side: * sounds like next quarters problem * since everyone is doing it, sounds like it will be society who has to figure out an answer, not me. (too big to fail) Not joking, I think those are the current defacto strategies being employed.
- withinboredom 3y agoReally get them going when you mention that "too big to fail" is a logical fallacy.
- lazide 3y agoFor some reason 'logical fallacy' just results in frowns and 'Needs Improvement' ratings when used on MBAs. Weird.
- withinboredom 3y agoOh, I just mention how dinosaurs were too big to fail; it really helps when the whole team starts making fun of them for saying something stupid like that.
- airstrike 3y agoPlaying devil's advocate, between compilers and tests, is it really less predictable than some junior developer writing the code? If you're pushing unreviewed, untested code to production, that's a bigger problem than the quality of the original code
- uticus 3y ago> Apart from what the AI model is capable of, we should ask think in terms of how accurate the solutions are. Initially these models were prone to hallucinations or you need to prompt them in specific ways to get what you want. Today's prompts are yesterday's intermediate languages & toolkits. Today's hallucinations are yesterday's compiler bugs.
- Nevermark 3y agoI think a lot of issues with language model coding come down to three issues. The first is the models themselves: 1. A lack of longer context, i.e. white boarding or other means of breaking down problems into components, being able to focus context in and out, etc. This is a direction models are going to go. Just like us, they are going to benefit from organizational tools. The other two are just the need for normal feedback, like we developers get: 2. They need a code, run, evaluate, improve cycle. With a hard feedback cycle today's models do much better. They quickly respond to iterative manual feedback. Which is just an inefficient form of direct feedback. 3. A lack of multiple perspectives. Groups of models competing and critiquing each other on each task should improve results for the more tricky problems. -- I personally think it is astounding that models generate somewhat reasonable, somewhat buggy code on their first pass. Just like I do! I don't know any coder that doesn't repeatedly tweak code they just wrote due to feedback. The fact that models can output first pass code so quickly without feedback today, suggests they are going to be very very good once they can test their own code, and converge on a solution informed by different attempts by different models. A group of models can also critique each others' code organization for simplicity, readability and maintainability.
- kaba0 3y agoThe time my job as a software engineer will be obsoleted by AI is the day singularity happens, and then we will have much much bigger problems. Anything less is just so far from it, that it is a laughable excuse of a code generator.
- HarHarVeryFunny 3y agoI think we need to have human-level AGI before "AI developers" are a possibility, and it'll probably take us a lot longer to get there than most people imagine. Remember, the job of a developer is not just (or even primarily) writing code. It's mostly about design and problem solving - coding is just the part after you've nailed down the requirements, figured the architecture and broken the implementation down into pieces that can be assigned (or done by yourself). Coding itself can be fun, but is a somewhat mindless task (esp. for a senior developer who can do this in their sleep) once you've got the task specified to this level where coding can actually begin. Once the various components are coded, they can be built and unit tested (may require custom scaffolding, depending on the project), debugged and fixed, and then you can integrate them (maybe now interacting with external systems, which may be a source of problems) and perform system test, and debug and fix those issues. These aren't necessarily all solo activities - usually there's communication with other team members, maybe people from external systems you're interacting with, etc. So, above process (which could be expanded quite a bit, but this gives a flavor) gets you version one of a new product. After this there will typically be bugs, and maybe performance issues, found by customers which need to be fixed (starting with figuring out which component(s) of the system are causing the issue), followed by regression tests to make sure you didn't inadvertently break anything else. Later on in the product cycle there are likely to be functional change requests and additions, which now need to be considered relative to the design you have in place. If you are smart/experienced you may have anticipated certain types of change or future enhancement when you made the original design, and the requested new features/changes will be easy to implement. At some point in the product's lifetime there will likely eventually be changes/features requested that are really outside the scope of flexibility you had designed in, and now you may have to refactor the design to accommodate these. As time goes by, it's likely that some of the libraries you used will have new versions released, or the operating system the product runs on will be updated, or your development tools (compiler, etc) will be updated, and things may break because of this, which you will have to investigate and fix. Maybe features of the libraries/etc you are using will become deprecated, and you will have to rewrite parts of the application to work around this. And, so it goes ... The point of all this is that coding is a small part, and basically the fun/easy part, of being a developer. For AI to actually replace a developer it would need to be able to do the entire job, not just the easy coding bit, and this involves a very diverse set of tasks and skills. I believe this requires human-level AGI. Without AGI the best you can hope for, is for some of the easier pieces of the process to be addressed by current LLM/AI tech - things such as coding, writing test cases, interpreting compiler error messages, maybe summarizing and answering questions about the code base, etc. All useful, but basically all just developer tools - not a replacement for the developer. So, yeah, one day we will have human-level AGI, and it should be able to do any job from developer to middle manager to CEO, but until that day arrives we'll just have smart tools to help us do the job. Personally, even as a developer, I look forward to when there is AGI capable of doing the full job, or at least the bulk of it. I have all sorts of ideas for side projects that I would like an AGI to help me with!
- hintymad 3y ago> Though coding all day sounds very appealing, most of software development time is spent on communicating with other people or other admin work instead of just writing code This sounds very...big corp, which inevitably needs many professional box drawers, expert negotiators, smooth communicators, miracle alignment workers, and etc. But guess what, if you are in a core group in a small company, you function as a grad student: you tackle hard problems, you spend time discussing insights, you derive theories, and you spend most of your time writing software, be it requirement gathering, designing, code writing, debugging, or documenting. But you definitely don't and shouldn't spend most of your time talking to other teams.
- iteratethis 3y agoIn the late 90s I was in an introduction class to programming in C. I kept making memory allocation mistakes that crashed the machine. My mentor: "Don't worry, by the time you graduate, you don't have to program, the world will soon be modeling software". We'd go from 3G languages to 4G and beyond. That never happened. Three decades have passed and we still develop at an obscenely low abstraction level. If anything, complexity has increased. At the end of the day though, the point of computing is that the machine does what we want. Expressing this via a programming language where very expensive humans write text files is not necessarily to last forever. To me the much more interesting threat is regarding purpose. As AI becomes ever more capable, an increasing amount of things become pointless. If using AI I have the power of 50 programmers at my fingertips, how could one possibly develop anything sustainable and unique? Anybody else can trivially make the same thing. What would set something apart if effort no longer is a major factor? Creativity? Easy to just replicate/steal.
- CyberDildonics 3y agoSo even though there has been small incremental progress at most in the last 30 years and your mentor's predictions were wildly wrong about how much easier anything would become, you still think "AI" will give you the power of 50 programmers?
- iteratethis 3y agoNo, quite a lot more. 50 effectively becomes and unlimited amount as capability grows. If AI can match the capability of a single programmer, it would then be trivial to scale up. Although in that case the term programmer makes little sense.
- CyberDildonics 3y agoA single programmer can create something new, which is not something any "AI" is doing now.
- acchow 3y ago> That never happened. Three decades have passed and we still develop at an obscenely low abstraction level. Have you seen how APIs are written for ChatGPT plugins? It is in plain English. There's no code. Function calls also done in plain English.
- beryilma 3y agoSoftware Engineering as a professional discipline without any specialization (and writing CRUD applications or websites don't count in my opinion) never made sense to me. Software engineers producing web applications are modern day equivalent of production line workers who were mostly replaced by automation. So, AI will likely replace such software engineers. In contrast, automation and technology did not replace "real" engineers. If anything, it made their job more productive. All this to say that a generic software engineer with no specialized skills might be replaced by other professionals (engineers, accountants, etc.) who might be able to leverage AI to create production quality software.
- windowshopping 3y agoGonna go ahead and strong disagree. Dismissing a huge portion of engineers as "production line workers" whose work takes no thought or creativity is incredibly reductive and makes me wonder if you've ever tried doing their job. Web applications are a category of software with just as much variance in their complexity as anything else. Are mobile apps and desktop apps also trivial? What's the difference? And if none of mobile apps, desktop apps, or web apps require "real engineering," then what does? Presumably games are just "repetitious production-line-like usage of a game engine." So what's real? The Linux kernel? Are the only real engineers those writing never-before-seen C code? This reads to me like a self-serving humblebrag setting yourself aside as a real engineer, not like those other engineers.
- beryilma 3y agoYou are assuming too much about what I think of myself. I am a software engineer and have been so for a long time. And I've written my fair share of UIs and apps. If all the things we do are so varied and creative, then we shouldn need to worry about AI replacing our jobs. But that is not what I am reading in this post. What software engineering jobs will AI replace then? In fact, what I wrote suggests that specialization is a way to make software engineering save itself from the AI threat by making the task of the software engineer more irreplaceable. No matter what you think about its complexities, making web sites is not it.
- phkahler 3y agoI'm quite unconvinced. If anyone can get a LLM to fix the geometry kernel bugs in solvespace I'll quit engineering today. From what I've seen, just understanding the intent of the algorithms is infinitely beyond an LLM even if explained by a human. This is not going to change any time soon. Pull Requests accepted.
- xpl 3y agoWhy just "software development"? People should really think of the endgame. Everything will change. I mean, what business, science, [popular] art, and even politics are all essentially? Just a clever optimization process against the real world. Throw ideas/hypotheses on the wall and see what sticks. Computers are very good at optimization! No reason to believe it won't all be solved in N years, with like 100x more efficient compute and a couple more cool math tricks. Give future "GPT-10" interfaces for interacting with the real world, and it could do everything — no human supervision/"prompting" needed at all. Humans would only be an unneeded bottleneck in that optimization process. There will be big companies consisting only of their founder and no one else. And I am not sure there will many such companies (so like "everyone could have one") — no, it is more likely that due to economies of scale, there will be only a few megacorps, owning all the compute. What we should worry about is how to avoid extreme wealth disparity/centralization that seems imminent in that future...
- jameshart 3y agoThis is the part where I disagree: > Business logic must always be defined in an unambiguous format No. That’s only the case because unambiguous ‘business logic’ is what we have to use when trying to explain to rigid, unthinking machines how we want our business to operate. Business processes aren’t naturally rigid. Computerization has just made us think that they have to be. What LLMs have the potential to do is to replace rigid unthinking machines with fuzzy contextually aware machines. Instead of emulating mindless bureaucrats only capable of operating on the rigid record formats of their strict filing systems, who’ll reject any form that contains a single error, as computer programs do today, future systems with a grasp on fuzzier language might be able to work with more ambiguity.
- Clubber 3y ago>Business processes aren’t naturally rigid. Computerization has just made us think that they have to be. I would argue it is more finance, accounting and management theory that made it rigid. Perhaps a little HR/legal as well. I remember the days when customer service was allowed to actually help you and it was nice.
- ChrisMarshallNY 3y agoI'm sure that there's a bunch of CEOs, drooling over the thought of firing all their engineers, and doing everything with AI. That may actually work. For a year or two. Then, the engineers that learn to leverage AI, and add their own skills, will knock those folks into the skip. Personally, I'm having a difficult time, integrating AI stuff into my work; but that's more because the stuff I do, and the platforms I use, are currently not a particularly rich AI substrate. I suspect that will rapidly change, and I'm looking forward to seeing what I can do.
- deterministic 3y agoI typically auto generate about 90% of the code needed for a typical business application without using AI. That still leaves plenty of work for me to specify what is required to be generated by the code generator and translating/negotiating with customers. Customers does not want to talk to an AI.
- pollies 3y ago[dead]
- pollies 3y ago[dead]
- pollies 3y ago[dead]
- pollies 3y ago[dead]