4 ms·
Yeah. The shocking speed of progress on AI - especially for coding - tells me quite clearly what the future holds for much of software engineering. Despite the
by davedx 3y ago
Yeah. The shocking speed of progress on AI - especially for coding - tells me quite clearly what the future holds for much of software engineering. Despite the human factors (yes, requirements gathering and specification is messy) our profession is intrinsically automatable at the end of the day. Being in denial is pointless.
- UK-Al05 3y agoI think software engineering will just go up the stack to requirements engineering. Those requirements will be specified as tests or in a very high level language that doesn't allow for ambiguous meanings. Which is essentially another programming language just more high level.
- idle_zealot 3y agoI basically agree. We'll have AI create some very high-level programming languages that suit various ways of specifying problems precisely, then program in those. Of course, the AI will also know how program in these languages, which will make development very accessible as you could describe a problem vaguely in natural language, get a specific solution back, then confirm it works for your needs or tweak it until it's suitable.
- aerhardt 3y agoI agree, and I’m thrilled about it. I love programming but while I’ve had bouts of enjoyment coding “in the small”, it’s my least favorite part. I love systems and software architecture, and seeing things come to life above all else. ChatGPT is greatly improving my enjoyment of it all. I also doubt traditional programming languages are going anywhere in the short term, seeing there are trillions of lines of code for critical systems in the wild. Good luck replacing that in a few years only, or fully delegating its maintenance to Devin.
- junior44660 3y ago> I love programming but while I’ve had bouts of enjoyment coding “in the small”, it’s my least favorite part. Yes, okay, but what will happen to junior to mid level engineers? In many companies these levels can't even have an influence on architecture.
- flir 3y agoIf the hypothetical high level language doesn't allow for ambiguous meanings, you can write a compiler for it and you don't need the AI. (Not saying you're wrong about "higher and higher levels of abstraction" - that's the way it's always been - but the unique promise of AI is the ability to deal with ambiguity in the requirements).
- UK-Al05 3y agoAmbiguity in requirements is where the majority of bugs come from now. So I don't think AI would improve things.
- flir 3y agoAssuming a (hypothetical, doubtful) AI as good as a human programmer, I think the advantage becomes speed. Think of it like a REPL that you program in English. Patching ambiguities with "Oh, I didn't mean X, I meant Y" becomes the work of minutes, not hours.
- skydhash 3y agoIn this case, you don’t really need AI. People like Forth and Lisp because you can built an efficient DSL which you can converse with. What people have trouble with is formalism, and logical and abstract reasoning.
- internet101010 3y agoExactly. There will be a lot less of the "we will have to look into it" 2-day lag time.
- password54321 3y ago"The shocking speed of progress on AI" Not sure what is shocking. Some of us used Codex in 2021 and nothing has changed since that has revolutionised software development by any capacity. Feels like people are just saying whatever some tech CEO or worse, some guru says. Progress isn't some infinite exponential either where you can just keep increasing the capacity of models and expect better results. Also not sure where they are going to get better training data when they already polluted the internet with AI generated data.
- flir 3y agoYeah, to me it feels like a step change to a new level, followed by a lot of exploration of that new level. It feels like there's lots of exploring left to do, but we're not going to reach "magic box that turns English into flawless programs" on the current level. Speaking just to programming, yes there's probably lots of AI-generated code in the training data now. But the generation of that code was guided by, and (presumably) confirmed to be working by, a human. So it's been filtered. I suspect that AI-and-human produces better code than human, on average. I know that if I throw any twenty lines of my code into it, it can usually suggest some improvement, even if it's just a variable name.
- mkleczek 3y agoI am quite confident my job is not in danger. Sure - scaffolding and boilerplate can be automated using ML - but problem solving - not at all. The reason is simple - to find a solution is to create a program that has a specific set of properties. This - by Rice's Theorem - is not possible to realise using a Turing Machine. So as long as the solution search space is small (ie. we are talking about very similar programs to generate) - ML based methods are fine. But once we are talking about finding solutions to non-trivial problems - I am sure human is needed.
- Smaug123 3y agoThe world contains a great many arguments invoking Rice (or equivalently the halting problem) to "prove" non-mathematical statements, and they are almost all specious. a) the mere fact that there is no fully general procedure to do some particular task doesn't imply some human can do that task any better than the best procedure we can find, and b) even if you believe there's something noncomputable about the human mind, it still allows the existence of a procedure that will solve all instances of that task which will actually arise in reality. It's a purely empirical question about the extent to which Church-Turing holds of the real world.
- mkleczek 3y agoUntil a computer can solve the problem “how to redesign this particular database design (tables/partitioning/indexes/queries) so that it can handle expected load in next 5 years” I can safely assume it does not hold :)
- Smaug123 3y agoAh, now you're talking price! How many years do you bet before this happens - three? Five?
- mkleczek 3y agoI don’t believe it will happen at all. There will always be some problems that only a human can solve because it’s a human that defines them. It is always _by definition_ a game between humans where computers are just tools. At least as long as AGI does not happen…