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.
What ChatGPT and AI-Based Program Generation Mean for Future of Software
31–40 of 119 posts
Re: What ChatGPT and AI-Based Program Generation Mean for Future of Software
#32Re: What ChatGPT and AI-Based Program Generation Mean for Future of Software
#33So... 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…
For me, it solved part (a) perfectly when I told it: "To solve this, write a Python 3 function that takes a string like `"R4, R3, R5, L3, ..."` and outputs the number of blocks to Easter Bunny HQ." The original question on its own was a bit ambiguous in my opinion because it doesn't explicitly contain the input which the user reads on a second page.
In any case, neither is strong evidence for or against its ability to solve problems like these. First, it's N=1. Second, it's a problem from its training set.
For me, Copilot/ChatGPT adds value not by replacing my programming but by (a) writing simple code for me and (b) answering my questions about things I don't understand. I operate in a supervisory role where I have to double check everything it says. But, critically, it's faster for me to double check its work than to do everything myself.
Re: What ChatGPT and AI-Based Program Generation Mean for Future of Software
#34So... 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…
The fact that it's often right is a horrifying omen of the future.
chatGPT will not replace you. It is the precursor to the thing that will replace you.
Re: What ChatGPT and AI-Based Program Generation Mean for Future of Software
#35Earlier quoted context omitted.
chatGPT is not a threat. ChatGPT is an omen for the threat that currently exists in the future. A lot of people haven't really played with chatGPT in depth. This thing is next level. It's not just spitting out generic things, there is genuine understanding here and genuine creativity. Here's a snippet from a chatGPT conversation I had based on your post: ME: Give more examples of squishy stuff that software developer…
Any other examples of what you mean by creative
This article was "holy shit" all the way through and all the way to the "holy shit" ending. Read to the end.
We've just passed a technological inflection point in AI. Not everyone fully noticed.
Re: What ChatGPT and AI-Based Program Generation Mean for Future of Software
#36So... 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…
Well presumably it will get better, and it will get better at an accelerating rate.
Is there domain limitation to this growth and performance? Medicine, theoretical physics, art, engineering, pure/applied maths, etc.?
I don't see how you guys are getting this from the current tech? Maybe there is an educational resource someone can suggest?
Re: What ChatGPT and AI-Based Program Generation Mean for Future of Software
#37So... 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…
Well presumably it will get better, and it will get better at an accelerating rate.
As far as I can tell, until it actually understand what it is doing, it's just kind of "blending" what it thinks the most common response is based on thousands of other similar responses to similar questions.
I can imagine people tweaking it down to be more "right" in some cases, but then won't it just become more wrong in other cases?
I'm actually starting understand why AI is good at generating pictures, statistically it's just flipping bits to look like other bits it's seen relative to the input specified. Code on the other hand is something which needs/should to be more precise.
There's also the fact that the more people lean on this tech, the more mistakes will be perpetuated into the system and the less samples it will have available to learn from, as people are no longer feeding it new answers.
I guess like how DeepMind trained AlphaGo, it can code itself to learn, but I I do imagine the problem space for it to "play itself" against is practically infinite, even compared to go, the game, which is also a huge space.
I'm a software person, not an AI person, but I love thinking about it.
Re: What ChatGPT and AI-Based Program Generation Mean for Future of Software
#38What 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?
Re: What ChatGPT and AI-Based Program Generation Mean for Future of Software
#39But 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?
Re: What ChatGPT and AI-Based Program Generation Mean for Future of Software
#40I 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.
chatGPT is not a threat. ChatGPT is an omen for the threat that currently exists in the future. A lot of people haven't really played with chatGPT in depth. This thing is next level. It's not just spitting out generic things, there is genuine understanding here and genuine creativity. Here's a snippet from a chatGPT conversation I had based on your post: ME: Give more examples of squishy stuff that software developer…
That's an absolutely massive claim but I think it's a false one.
I've seen it be creative, but how good / useful that creativity is seems to be somewhat quite the roll of a dice. This is opposed to someone / something being intentionally creative.
This is not to knock the system, but depending on the "seed" you might get something brilliant or silly, I think there's a major difference there to your claim that's it's "genuinely" creative. Genuinely creative would imply that 100% of the time, I get something new and relevant. Which isn't what happens for me.
For example, I re-asked it your original question and it says this is what developers do:
User input: Developers need to anticipate and handle unexpected or invalid input from users, such as special characters, empty fields, or out-of-range values.
Randomness: Developers may need to incorporate randomness into their programs, such as generating random numbers or shuffling a deck of cards.
Concurrency: Developers may need to handle concurrent access to shared resources, such as preventing race conditions or deadlocks.
Network communication: Developers may need to handle network communication, such as dealing with lost or delayed packets, or handling different types of connections (e.g. HTTP, WebSockets).
Time: Developers may need to handle time-related issues, such as scheduling tasks, handling time zones, or dealing with clock drift.
Human language: Developers may need to handle natural language processing tasks, such as understanding speech, identifying sentiment, or handling different languages.
Image and video processing: Developers may need to handle image and video processing tasks, such as object detection, image recognition, and video compression.
I wouldn't consider a developers job to do video processing tasks, or object detection, not what I expect a developer to handle natural language processing tasks such as identifying sentiment, would you? In fact I couldn't really imagine a more generic attempt at a response to that question?It's for sure impressive, but I feel the more "creative" I asked it to be (more entropy I inject), the more likely it will come up with incorrect answers; However, I'll concede that "incorrect" answer could be used for some inspirational new ways of thinking about solving problems.
I feel personally, the more I play with these systems, the more predictable they become, and this isn't something "truly creative" would be.
Where I think we're going wrong with AI is we seem to think that it will be a "perfect brain". When really nothing is perfect, especially the data it's being trained on.