“Coding” is an ambiguous term for many tasks and responsibilities. There is no agreed upon boundary at which point it will be “solved”. Consider these three cliches making the rounds now:

  1. Coding is largely solved? (ambiguous point of contention)
  2. Verification is not solved. (consensus)
  3. Maintainability is not solved. (consensus)

I have practical needs and I don’t see them getting met by arguing the semantics of point 1 while we’re suffering from 2 and 3. On a level playing field we might be able to negotiate “coding is solved” into a meaningful conversation, but the funding doesn’t want that, it wants a Superintelligence.

  • FizzyOrange@programming.dev
    link
    fedilink
    arrow-up
    7
    arrow-down
    5
    ·
    3 days ago

    This is just playing around with word definitions. We all know what “coding is largely solved” means intuitively. No compilers and DSLs did not do that.

    Coding is unfortunately largely solved. Unfortunate for my career prospects anyway. It’s awesome that I can just create pretty much any tool I want in a few days. Also I’m finishing so many unfinished side projects!

    But yeah, I’m pretty anxious about my job.

    • MagicShel@lemmy.zip
      link
      fedilink
      English
      arrow-up
      15
      ·
      3 days ago

      Mate, I’m watching my director and architect slack each other epics of slop trying to get our harness to accept the specs for a feature. I could’ve built the whole thing by now, but they don’t want that, they want reproducibility and predictability. If they could just be happy with 25% productivity gains, we’d make a killing with our services contracts.

      Here’s the thing: these morons are never going to get what they want describing it in vague, natural language terms. The reason you’re having success with AI is because you know the fundamentals of coding and you know the practicalities. You can describe in specific terms exactly what you want and how to build it. People who can’t do that are never going to replace those who can.

      Coding may be solved in the sense that AI has instant access to things we haven’t done before or haven’t touched in years. Maybe I used to do something by hand but 9 months ago spring added some annotation or library and now it’s solved without those side effects or quirks our homegrown solution has.

      But you still have to know what to do. You have to add this hook so you can troubleshoot issues in the future. This needs to be an interface because you know it’s going to have different case implementations. This can be an enum, but that needs to be freeform text. This database needs to be normalized for cross-referencing, but that one needs to be denormalized for performance.

      People who understand code can’t be replaced by those who can’t. This is just another layer of abstraction.

      • Beej Jorgensen@lemmy.sdf.org
        link
        fedilink
        arrow-up
        9
        arrow-down
        1
        ·
        3 days ago

        This is just another layer of abstraction.

        But it’s a little different. Rigorous thinking was required to produce anything at the previous layers. This one is different. One can now produce copious amounts of slop without thinking at all.

        In that way, I’d argue, slop coding is solved.

        • MagicShel@lemmy.zip
          link
          fedilink
          English
          arrow-up
          6
          ·
          3 days ago

          It’s vaguely the same, though. We are abstracting technical language via natural language, but the details still have to be provided in some way. Leaving it to the AI to infer only works for very tiny things where ambiguity is low. For big things you have this ocean of slop because the AI still needs every detail specified else it will make shit decisions based on shit inferences.

          I think a dev harness such as the one my company is trying to create is nothing more than trying to get the AI to make zero decisions and ask about even the slightest ambiguity — as it should.

          So you wind up with an excruciatingly long detailed natural language spec that consumes boatloads of tokens and is impossible for a human to read through only to produce the exact same thing translated into code.

          From that perspective, it’s just an abstraction layer. A very sloppy one.

          • Beej Jorgensen@lemmy.sdf.org
            link
            fedilink
            arrow-up
            6
            ·
            3 days ago

            I agree. I recently chatted with an ex-dev manager who tasked two of his devs with coding a new feature entirely through AI. They succeeded, but lamented that they had pages and pages of prompt to get it right. “You guys have rediscovered the concept of a ‘design doc’,” he told them.

      • FizzyOrange@programming.dev
        link
        fedilink
        arrow-up
        3
        arrow-down
        4
        ·
        3 days ago

        But you still have to know what to do.

        Today, sure. Kinda. I do tell the AI exactly what to do and I correct its bad decisions sometimes. But…

        1. If I didn’t do that, I think the results would still be reasonable. Just not quite as good, but I am a perfectionist. Probably most people wouldn’t care.

        2. The skill required to guide AI is obviously way lower than the skill required to actually program. Salaries will drop, even if we don’t actually lose our jobs.

        3. We’re talking about today. Vibe coding has only really worked well for a couple of months. The puck is moving.

        • MagicShel@lemmy.zip
          link
          fedilink
          English
          arrow-up
          5
          ·
          3 days ago

          I respectfully disagree on all three points. You might be right about salary if only because more can be done with fewer devs. I think there is a huge limit on what can be done with vibe coding. The spec must exist and either you do it or the ai guesses and even the best models guess poorly. The code looks right because you aren’t aware of the decisions made and the code holds together based on decisions you don’t know about. Only later you realize the agent chose poorly.

          In my experience. I’m actually really excited about ai, but I’m very aware of the limitations.

          • FizzyOrange@programming.dev
            link
            fedilink
            arrow-up
            2
            arrow-down
            2
            ·
            2 days ago

            Respectfully, your opinions are about 3 months out of date. Astra and Opus 5.5 are really a big step up, and most of the decisions they make are reasonable. They also ask you for decisions quite well.

            And you don’t really need a “spec”. You need to describe in detail what you want, but the flow is more like “I want to make a customer forum. The only supported login email should be a magic email link. Write the server in Go using it’s html templating. Keep the CSS simple and only use dependencies when it makes sense. Come up with a plan and let me review it.”

            Then you just review it, a few more rounds of testing, and boom, job done.

            You don’t really need to be a skilled programmer to do that.

            • MagicShel@lemmy.zip
              link
              fedilink
              English
              arrow-up
              4
              ·
              2 days ago

              Is the login oidc and pkce compliant? Does it support SSO? Persistent login? Gdpr? How does account recovery go if Google kills a customer account? Does data get linked to crm? Does it scale horizontally? What database does it use? How does it handle attacks and spam? Does it support images? If so, how do you mitigate CSAM? How do you track usage and engagement? How do you get alerted if your forum is down?

              I ask all of this because while AI can build what you describe pretty easily, it’s also completely useless from a business perspective. You’re right that years ago, you’d have a small team of devs writing this buy something off the shelf.

              But when your C-suite hands you the code and tells you to deploy it, what then? Does it even support admin users and mods or is everyone going to Couchbase to edit the tables directly.

              • FizzyOrange@programming.dev
                link
                fedilink
                arrow-up
                2
                arrow-down
                2
                ·
                edit-2
                2 days ago

                If you need any of those things, you can just ask for it.

                I get that you really don’t want it to be true that it works as well as it does. Your job depends on it.

                Mine does too, but I can face the truth even if it is unpleasant.

                Also I wouldn’t necessarily have believed it either if I hadn’t tried it for myself. I would encourage you to spend a bit of money and a couple of days vibe coding something non-trivial with Opus 5.5. Then at least you’ll know what’s coming…

                • MagicShel@lemmy.zip
                  link
                  fedilink
                  English
                  arrow-up
                  3
                  ·
                  edit-2
                  2 days ago

                  I mean you’re right, I don’t want it to be true, but also my job is to try to use AI to make my teams more productive. And we’ve succeeded to a degree. We are getting more done. But it is not ask and thou shalt receive.

                  I use AI a lot. Yesterday I gave up and built my own harness because if I don’t I’m eventually going to be saddled with the shit my company is trying to make a thing. It was astoundingly easy, though now I’m on the treadmill of “just a few more tweaks…”.

                  In 8 hours I built the thing while generating about 800 LOC and another 1500 lines of tests in the actual application I’m working on. And I’d say I’ve largely built “the easy stuff,” and the implementation classes are going to be more challenging. I’m pushing as hard as anyone to make AI development actually work — I actually enjoy the challenge and rapid iteration quite a bit. I’m not speaking out of ignorance here.

                  I’ve vibe coded a couple of personal application things. They aren’t production-ready business apps, but they do everything I need. And they really were as simple as asking for what I wanted and I can add features about as quickly. It’s incredible. But it’s not replacing any of my developers yet.

                  My only caveat: I really haven’t tried Fable due to cost. Anyway, be well, mate. Enjoying the conversation despite disagreeing.

                  • FizzyOrange@programming.dev
                    link
                    fedilink
                    arrow-up
                    2
                    arrow-down
                    2
                    ·
                    2 days ago

                    My only caveat: I really haven’t tried Fable due to cost. Anyway, be well, mate. Enjoying the conversation despite disagreeing.

                    Well, that’s why we’re disagreeing 😄

                    I agree with everything you’ve said if you’re using models weaker than Fable. The latest models (Astra, Opus 5.5, maybe Argon I haven’t used it much) are a significant step up. Way more than the benchmarks suggest. It really is “ask and you shall receive”. You might have to ask a few times but still…

                    Also caveat on my end: I’ve only tried vibe coding with Rust, because it’s the best language available for humans and AI seems to like it too (lots of static checks). I have no idea the quality of code you’d get in other languages. I would be cautious before having it write C++ for example… though it’s probably fine.