13 ms·
What ChatGPT and AI-Based Program Generation Mean for Future of Software
- feedbackposter 4y ago[dead]
- nixpulvis 4y agoKnowing what you want is both the fun and the hard part of most software development. That and understanding the environment you are operating on. Both of these things are not something I feel an AI has a strong advantage with given the fact that you need to provide this information. Perhaps I can try to say, "Please decide what browser features I should use to maximize profit.", and it will actually do some proper research and contract out studies and all that... but I don't see that happening yet. Even still, the point of validation remains. I can't help but draw a parallel with automated theorem provers. Sure they resolve "true", but then who validates the validators? It's a never ending cycle. At the end of the day, you must learn to love and trust your tools and then stand by the joint creations.
- auggierose 4y agoIn the case of automated theorem provers, they should generate a certificate together with "true", so their proof can be checked. And that is also the answer to checking AI: let them generate a proof that what they did was correct. Of course, that only works if you ask the AI for a theorem, but a lot of tasks can be framed that way.
- fizzbuzz69 4y agoill still leetcode just ffs.
- deleted 4y ago[deleted]
- danielvaughn 4y agoI just don’t feel threatened by AI at all. Maybe I’m not seeing the full picture, but the quality of your software necessarily depends on a constant re-evaluation of customer needs, business priorities, human values, etc. Lots of squishy stuff. Programming is not just taking product requirements and spitting out the correct algorithms.
- systematical 4y agoYou don't think AI can improve in those regards? I highly disagree, its not this decade or even the next, but I wouldn't be surprised if things begin changing sometime in the 2040s. A decade I will be nearing retirement in but still working.
- Mechanical9 4y agoThe threat isn't just from AI, unfortunately, it's from an entire class of powerful people willing to throw their money behind AI instead of behind customer needs, business priorities, and human values.
- HardlyCurious 4y agoThey are just trying to hire less programmers, because programmers are expensive. They will have even more business / system analysts than before. And they will still have to have programmers to piece stuff together and debug systems. They just think if they could have less programmers they would save money.
- systematical 4y agoSome years ago (perhaps 2015) I told a non-programmer that MOST programmers would be obsolete by the end of the century because of AI. Surprisingly he scoffed saying there is no way AI will be able to handle all those business edge cases. The stuff in the article is pretty basic and a long way from complex business logic, but we are on our way. I just hope business application developers like myself can survive until retirement, which for me is sometime around 2050. I am getting less optimistic.
- moneywoes 4y agoWhat’s a business application developer?
- nso95 4y agoSomeone who can be replaced by AI it sounds like
- systematical 4y agoMost engineers.
- gptgpp 4y agoSo... If it's so revolutionary, why can't I get it to solve level 1 advent of code problems? Like here is what it generates for the 2016 day 1 problem: def find_distance(instructions): x, y = 0, 0 direction = 0 # 0: North, 1: East, 2: South, 3: West visited = set() visited.add((0,0)) instructions = instructions.split(", ") for instruction in instructions: turn = instruction[0] distance = int(instruction[1:]) if turn == "R": direction = (direction + 1) % 4 else: direction = (direction - 1) % 4 for _ in range(distance): if direction == 0: y += 1 elif direction == 1: x += 1 elif direction == 2: y -= 1 else: x -= 1 if (x, y) in visited: return abs(x) + abs(y) visited.add((x, y)) return abs(x) + abs(y) This function returns 113 from my input for that day, which is actually the answer for part 2... For part 1 it should be 234. When I tried in Rust the solution didn't even compile, which is business as usual as far as my experience goes for trying to get ChatGPT to write anything practical (not a 'toy' example) in Rust. I gave it another chance with day 2 in python and it failed at that as well. These are VERY simple tasks, CHILDREN can solve the initial couple days of advent of code. In this article they give an example of a square root function. Maybe the authors could consider trying some more realistic tasks? So silly...
- rcme 4y ago> So... If it's so revolutionary, why can't I get it to solve level 1 advent of code problems? Because it's a nascent technology that hasn't been optimized for solving advent of code problems. It can, however, do a lot of other cool stuff.
- gptgpp 4y agoExcept it should have been trained on probably tens/hundreds of thousands of 2016 advent of code solutions posted on github and other sites, shouldn't it? It often starts hallucinating the input in the exact format advent of code gives, so I'm like 99.9% certain it has been trained on a large corpus of advent of code. Personally I use codex sometimes for debugging help so I agree it can do cool stuff. I just disagree it is "almost" right at solving problems -- it almost never generates code that even compiles for me when prompted to do anything not super trivial like advent of code brain teasers.
- 1234throway 4y agoWhat kind of basic programming does one have to do to fee threatened by chatgpt? This tool does great at regurgitating basic coding but anything a little more complex is a mix of nonsense and confidence. Do people actually write “leet code” on a daily basis?
- nousermane 4y agoSame kind of basic programming that was "threatened" by no-code/low-code solutions before that.
- tluyben2 4y agoIt was never to that extend though; chatgpt can change/augment existing code. Nocode/low code solutions cannot do that (in a meaningful way).
- loopdoend 4y agoFor all its knowledge it can't solve even the most basic problems accurately - but what do you expect from a language model?
- tluyben2 4y agoIt solves real world problems for me on a daily basis; things I hired people for before. There are things like helping with white papers, emails and blog posts. But, to your point, I can give it a little bit of context, let’s say some old Django code we have running in production and ask it to add or change something, and it does, in seconds. Yesterday I had it mostly generate an api with 23 endpoints for a client project in a language & framework I am rusty at (long time ago) for which people on upwork were bidding 1500$ minimal. Took me less than an hour with chatgpt and including docker & docker-compose. People don’t need to feel threatened; it is simply already replacing all the mundane programming and writing work we used to do; people who can only do that type of mundane work aka crud work (chatgpt can do it in any language or framework), integration, transformation, plumbing etc are already gone. A lot of our (very well paid) work is taking data, transforming it, sending to some api, get the result, transform it and move to the next step. A few months ago this was just boring human work, now it’s just copy pasting the spec and out it falls. Sure you might need some fixes (as the article says), but not much and it learns (you add new knowledge to the prompt ‘memory’). I have been working with my own custom client on top of chatgpt for months now; it has a lot of custom prompting and effort to make sure it does as well as it can. This I can throw away in a few months when improvements come from their side.
- gsatic 4y agoPretty sure the outsourcing shops will use it to inject more mountains of shit code into everything. But I guess thats not a bad things for the employment of consultants who will be called in to fix things.
- rajnathani 4y agoI feel that in the short run, all programmers will simply become more productive. But in the medium and long run, the narrow SE roles will become obsolete: Such as any SE role where there’s a “certification process”, eg: Cloud (AWS, GCP, Kubernetes), iOS, Android, even CCNA, etc. A generalist SE (side note: like how I assume HN’s readership bends towards) will be the one to benefit, as a good generalist SE can have networking understanding (CCNA), Ops/DevOps (cloud), and SE (backend, frontend, mobile) and more (at embedded programming is where the line could be drawn, but ChatGPT is good at explaining hardware concepts too!), to thrive and depend on ChatGPT or equivalent system for discernible assistance. (Minor: I even tweeted my opinion with my personal note about it too: https://twitter.com/raj_nathani/status/1615709768487948292?s=46&t=QZbHsbTguOje157iOss6_g https://twitter.com/raj_nathani/status/1615709768487948292?s...)
- skohan 4y agoI agree. I think we are getting close to where a machine can do "programming" but it will be a while before a machine can do "software engineering". I.e. maybe you will be able to use AI to solve a problem, like "write a lambda to to accept JSON in this format and put it in a database with this scema", or even potentially "optimize this function to run as fast as possible on a multi-core processor", but it seems we're quite far from something like "write an application with a GUI that looks like this which has the following functions".
- karmakaze 4y agoWhat I think will happen is changing of software development roles. They'll be split into things AI/ML can do and things humans will continue to do (using copilots). And the work that humans do will be constrained in ways to interface with the machine, as well as take the output from machines and complete integrations. We might even use programming languages that the machine handles better. So software development has humans producing/validating that then gets used by machines, and that output being used for final integration/validation. With these new formalized structures, AI [that ship has sailed] will train on it and replace more of the stack.
- jasfi 4y agoThis is part of what I'm working on for InventAI (https://inventai.xyz https://inventai.xyz). It'd be great to get into YC, but I'm a solo founder! Any potential co-founders out there?
- agentultra 4y ago> The kind of thing that you witness once in a generation. (The last two times were object-oriented programming and the World-Wide Web.) Folks, let's get real. I kind of snarked at this but then I realized it's written by Bertrand Meyer and the conclusion is spot on: I agree that should these tools proliferate it will highlight the importance of formal methods and verification. Even if ChatGPT-like systems get faster and gain deeper models of computer syntax and structure, I suspect the one problem that will be difficult to solve is elegance and abstraction. Often the abstractions we choose are based on laws and ways of thinking that help us manage complex phenomenon using laws and notation which make it easier for us to reason about them. And even if that does get solved some how, we're going to have to understand them some how. A stronger emphasis on proofs and model checking will be useful to anyone who wants to be sure that the program the FutureGPT produced isn't simply "some what right" but is actually right.
- notimrelakatos 4y ago> I suspect the one problem that will be difficult to solve is elegance and abstraction. The fact that this industry was able to sustain itself for so long and not actually get this is a miracle in itself. This is what ruined OOP when it became just managements lingo and it'll probably happen again with tools like ChatGPT, we are just going to vomit code in a faster (and cheaper) way. A few rebellious souls will soon realize that domain modelling and writing correct code is hard, they'll end in the usual places that already exist today, by working in some niche company that applies pure FP or proving theorems in Lean/Coq/Agda.
- mathteddybear 4y agoTakes some skill to spot that n(n+1)(2n+1)/6 is not quadratic, doesn't it?
- robbomacrae 4y agoMaybe I'm overly optimistic but I see these tools as empowering us all to be more productive and become directors who specify requirements rather than spend time doing the work. ChatGPT's ability to write documents for certain things that would take a while to research myself is an obvious example. For Software Engineering I look forward to stopping writing the majority of my code and instead managing this tool and helping guide it to create apps and websites faster than I can and outside the areas of my expertise.
- prewett 4y agoI feel like there was so (informal?) theorem that a full-specification of a program is at least as long as the program. Since you have to tell the AI what the specification is, the worst that could happen is programming becomes more like Knuth's "literate programming", or maybe even better, all programs become formally verified. But that will just mean chasing bugs in your specification. It could eliminate implementation bugs, but it's not going to help with figuring out what my problem actually is. It also isn't going to be able to choose among the solutions, so I'll just end up making a bunch of choices. So maybe programmers become like technical managers, but managing an AI bot instead of a person. Which is sort of how it is today, except the compiler is pretty stupid and pedantic. But even something straightforward: "write a hash function whose output evenly mixes the input" or "write a function to convert an RGB image to a dithered B&W image" is harder than it seems. How do I know the dithering algorithm chosen is good for my data? How do I know the hash function actually does what I asked and doesn't have some funnel somewhere? I'll have to write some tests, but I can't get the AI to write the tests, because how do I know the tests will be right?
- quantum_state 4y agoThis thing would make garbage-in-garbage-out a lot more wide spread … accelerating the ruin of info tech …
- bamboozled 4y agoWill be fun when something is created like ChatGPT where anyone exploit peoples software en-masse, will be a nice new industry around this. Could actually be the end of IT as we know it.
- tluyben2 4y agoSee it as augmentation and not a threat. People who went ‘into programming’ and learned the basics and then stood still will have issues, but chatgpt still needs senior or talented developers to do anything useful for now (like juniors, you need to tell it things step by step). But then it’s a great tool, saving a lot of time and money. Just wished it was not owned by a few rich peeps and that training costs will drop fast.
- squidbot 4y agoI feel pretty secure in my job until ChatGPT can write itself. Once it can improve on itself, then I'll be really worried.
- ilaksh 4y agoIn case anyone is interested, I have started on a natural language programming web app based on OpenAI's API. https://aidev.codes https://aidev.codes. By default it is like the OpenAI JavaScript playground, except it immediately hosts the results in a web page and allows you to edit the accumulated prompt. Also can edit specific files. Many improvements planned. Tonight I got a lot of stuff done related to creating and searching knowledgebases using embeddings. If anyone tries it, please consider writing any feedback in the Discord.
- kaba0 4y agoIt can’t even solve like day 4 in advent of code, and only solve the previous ones because the problem can be found solved on the internet verbatim, with a different question attached. So, nothing, I guess.
- nostromo123 4y agoYeah, wake me up when it can do close to the metal programming on an ARM to fulfill real time requests from an industrial robot, for instance...also, in safety critical systems, as a bonus. I'm not saying that it will never happen, but if your job is threatened by ChatGPT right now, you were not really doing real software engineering anyway.
- brianjking 4y agoI think at its current state ChatGPT or any GPT3.5 or similarly trained transformer tool can empower someone who cannot code (kind of me) but can understand the logic and prompting that goes into it to get a lot of new things done. I'm a Product Manager who has written some code in the past, but not for many years in a professional setting anyway. I'm quite technical, but not specifically in the code anymore. In addition, it can help individuals and teams learn/debug/ship things quicker - which is unfortunately/fortunately something that every company wants and needs. If it does what some think, and it may, UBI can certainly be necessary for some tasks if you consider diffusion tools like Dall-e and StableDiffusion as well.