20 votes

I wonder if years from now hand written code will be antique

Talking about software code, already a lot of it is written by ai and has a particular style.

Reminds me of when circuit boards used to be manufactured by human hands, they all had a unique style thats really fun to look at.

I wonder if in a few years my old software code will be like that, someone will look at it and go “oh, wow, this was written by hand”

15 comments

  1. [10]
    Gourd
    Link
    This is something I've been really struggling with lately. I do (and always have) at least somewhat enjoyed the actual process of writing code. Over the past few years, I've pivoted to a role that...

    This is something I've been really struggling with lately. I do (and always have) at least somewhat enjoyed the actual process of writing code. Over the past few years, I've pivoted to a role that is more focused on architecture and orchestration, so for me, the shift to AI-assisted coding has likely been a bit softer than it otherwise would have been.
    But I still feel like there's something missing. The satisfying "core" of the work itself is now largely automatable to the point where it feels like a waste of time to code by hand. If I can design the spec and have a robot write the code, then review and confirm it myself, and the end result is more or less exactly what I would have written in the first place, why would I choose to write it myself?
    On the other hand, I spend a LOT more time now doing code review for other devs. I used to know the individual coding styles of the devs I work with. Now that nobody is writing their own code, it's all over the place.

    12 votes
    1. [3]
      snake_case
      Link Parent
      I just miss building something myself. I also miss that the development cycle used to be slower. It’s impossible to explain to management that we have bugs in production because when you spend...

      I just miss building something myself.

      I also miss that the development cycle used to be slower. It’s impossible to explain to management that we have bugs in production because when you spend less time writing code you also spend less time thinking about the code you’re writing. AI will only fill in the blanks so much, if you don’t tell it to cover some case, it wont, and since you didn’t have the time to think of it, you didn’t tell it to.

      They think that we can just extend the planning phase and solve this issue, but every single company Ive ever worked for discovers requirements during testing. Every single one. There are things that no one thinks about until they actually try to use the feature. That is just life.

      Since they’ve taken away our “play around with it” time and forced us to ship it directly to QA who then discovers requirements which then are solved by AI without thinking about how people actually use the feature that whole “gets worse before it gets better” bugfixing/testing phase ends up happening when the feature is already in production.

      Ugh.

      11 votes
      1. [2]
        archevel
        Link Parent
        I enjoyed coding and solving issues with code. I've been doing this professionally for about 20 years soon. With an LLM I am certainly able to churn out more, both in terms of lines of code and...

        I enjoyed coding and solving issues with code. I've been doing this professionally for about 20 years soon. With an LLM I am certainly able to churn out more, both in terms of lines of code and actual features. I've mostly settled into validating the output of the code; not the code itself. Design and QA is taking a larger portion of my time at work. Downside is that, while it is still satisfying to ship features and improve the product, it isn't as enjoyable a craft anymore. I no longer have a deep understanding of the underlying code.

        I know that, in general, I am still able to produce code at a higher level of quality than an LLM, but that doesn't matter that much to me. Something ineffable is missing now. I tend to think this is similar to how artist feel about gen ai in general. They can see the flaws produced by e.g stable diffusion, but does it diminish the sense of creating? Is the process tarnished in some way? I think it is for me.

        2 votes
        1. SteeeveTheSteve
          Link Parent
          Does it feel sort of like you'd imagine a craftsman would feel going from hand crafting furniture to watching over a factory mass producing furniture? Maybe like a stone carver would feel a loss...

          Does it feel sort of like you'd imagine a craftsman would feel going from hand crafting furniture to watching over a factory mass producing furniture? Maybe like a stone carver would feel a loss suddenly having to use a 3D carving machine to do the same work?

          You lose freedom to alter it during production, that personal touch that makes it yours. Might feel no skill was needed as the machine did it all, losing some pride in your work. You no longer get to enjoy the process of crafting as your work becomes planning and inspecting.

          1 vote
    2. [5]
      parsley
      Link Parent
      In my company code review has kind of died. Most projects now have a single engineer working on them with an llm doing most of the work. We are kind of faster, but the PRs are now regularly...

      On the other hand, I spend a LOT more time now doing code review for other devs. I used to know the individual coding styles of the devs I work with. Now that nobody is writing their own code, it's all over the place.

      In my company code review has kind of died. Most projects now have a single engineer working on them with an llm doing most of the work. We are kind of faster, but the PRs are now regularly 20k-50k lines of code each, on new codebases we know nothing about and on features we know nothing about. We tried using llms to help explain the PRs but it is a lot of effort and that is useless most of the time.

      I'm sure there are lots of good teams out there that can take advantage of these tools, but I think lots of average companies / projects are going to be crushed by the weight of the technical and organizational debt llms are creating, specially when prizes get corrected and you can't just tell them to "fix it" at a reasonable cost.

      6 votes
      1. [2]
        winther
        Link Parent
        When I read about something like that, I wonder what kind of software you are running in what business - if I may ask? Because I am sort of in charge of the codebase for a smaller company in the...

        When I read about something like that, I wonder what kind of software you are running in what business - if I may ask? Because I am sort of in charge of the codebase for a smaller company in the saas business. We are about 40 people and I would be terrified to run it like that, as that would risk the livelihood of all employees if our service broke down for our customers if something hit production that only an LLM has looked at and understood. Any sort of breaking change or longer disruption could kill us quickly. So I have been extremely defensive with things that go to production and AI isn’t really speeding things much as pure code speed isn’t exactly the bottleneck. Are these setups where entire companies run on pure AI development just in less risky areas or larger organizations where code doesn’t hit production that easily? Or is it just greenfield projects and not on top of 10-20 years of legacy with risk of breaking things for existing customers?

        4 votes
        1. parsley
          Link Parent
          Kind of niche B2B stuff. We luckily do not have lots of operational complexity so things are working out fine. We were already working on smaller teams in greenfield(ish) projects. We are just...

          Kind of niche B2B stuff. We luckily do not have lots of operational complexity so things are working out fine. We were already working on smaller teams in greenfield(ish) projects. We are just kind of pushing harder and harder in that direction.

          I'm kind of venting at this point, but I kind of fear that LLMs are eroding engineering culture in general. It is like we got this new rockstar hire that takes over the company because he works so fast and is always saying the right thing to his managers, but in reality is doing a mediocre job. And now the rest of the team have both the expectation of being as fast as him and fixing all the shortcuts he is taking.

      2. [2]
        Gourd
        Link Parent
        So does anyone actually understand your current codebases? I feel like that's the direction we're headed as well, but I'm catching major issues during review on a semi-regular basis (I should be...

        So does anyone actually understand your current codebases? I feel like that's the direction we're headed as well, but I'm catching major issues during review on a semi-regular basis (I should be clear that I do use Claude during my reviews, but I also generally run through the same manual review process I've done for years). I think it would be a disaster for us if the traditional code review went away completely.
        I'm lucky in the sense that many of the projects I'm working on are small enough for me to basically be able to hold the whole thing in my head at once. I can't imagine this no-review vibecoding ending well for larger projects.

        3 votes
        1. parsley
          Link Parent
          For the more complex projects we still have several people in the loop but the newer projects have as little people as possible, usually 1-2 engineers working on different areas, with little to no...

          For the more complex projects we still have several people in the loop but the newer projects have as little people as possible, usually 1-2 engineers working on different areas, with little to no overlap. It is actually kind of hard to argue against this setup now. LLMs are very local to the current task and do not wait to chat with your colleagues LLM sessions to agree on architectural decisions and redoing work is common.

          I also use Claude for reviews. It works OK for the most part, but has a tendency to rise issues and then retract them when you ask for more details. My stack is not super common and it probably does not help either.

    3. Narry
      Link Parent
      For me, writing code is an exercise in hands-on puzzle solving using an intersection of math and imagination. You have to mentally parse the data, guess how the computer is going to interpret it,...

      For me, writing code is an exercise in hands-on puzzle solving using an intersection of math and imagination. You have to mentally parse the data, guess how the computer is going to interpret it, then iterate on the pattern until you achieve the results you were looking for.

      Architecture is its own kind of puzzle solving, but it’s less immediate than the problems you encounter coding. You’re laying out the structure of the code before you type a single line. You’re solving a meta problem and breaking it into smaller tasks.

      Both are very much like being handed a bucket of LEGO and being told what your end product needs to be, but architecture is making the design documentation of where the bricks will go (thus ending up with instructions that anyone can follow) and programming is assembling the bricks to build the thing itself.

      Both valid, both important, both benefit from having the other.

      It also closely mirrors my experience with writing fiction prose: there are “two” types of writers we’re told, plotters and pantsers. Plotters are like architects, who carefully lay out a design document before they write the first word of the story. Pantsers start writing and discover the story as they go. The secret is that they’re both going to end up revising things as they discover the story. The plotter is going to discover the story as they go to write, and the pantser is going to discover the structure as they go to revise.

      2 votes
  2. [2]
    Tiraon
    Link
    Current LLMs can be somewhat useful tools in the hands of someone who already knows what they are doing. I am not convinced this tool will ever be able to create novel code autonomously or used by...

    Current LLMs can be somewhat useful tools in the hands of someone who already knows what they are doing. I am not convinced this tool will ever be able to create novel code autonomously or used by someone who does not understand programming.

    There will always be place for someone who understands what the code does and who is able to translate user requirements into the needed structure. And understanding that code will require engagement comparable to writing it by hand.

    Unless of course there ceases to be any requirements for quality, maintainability and security and everyone just accepts that all sw breaks frequently in highly visible ways and will never be truly fixed but hotfixed on an ongoing basis. Or we achieve AGI.

    3 votes
    1. derekiscool
      Link Parent
      Totally agree. To me, it's sort of like the process of learning math in grade school. As a kid, you can just sit there and think "but why do I need to know this when I can just use calculator"....

      Totally agree. To me, it's sort of like the process of learning math in grade school. As a kid, you can just sit there and think "but why do I need to know this when I can just use calculator". Sure, the calculator can do it for you, but you need a foundational understanding to have any clue what's going on in the more complex math.

      Except in the case of AI, the 'calculator' constantly makes mistakes, lies to you, and literally makes stuff up that doesn't exist. So if you don't know what you're doing, you're going to end up with really poor results.

      1 vote
  3. skybrian
    Link
    I think it will be sort of like writing poetry or making crossword puzzles - something you do for fun, with the expectation that other people will read the source code because there’s something...

    I think it will be sort of like writing poetry or making crossword puzzles - something you do for fun, with the expectation that other people will read the source code because there’s something interesting about it, not just run the program.

    On that note, I once tried writing poetry in the Inform programming language.

    3 votes
  4. [2]
    kacey
    Link
    IMO it could be instructive to see how folks perceive handwriting assembler, or the micro-optimizations necessary to eek out a few percentage points of perf from archaic hardware (e.g. game...

    IMO it could be instructive to see how folks perceive handwriting assembler, or the micro-optimizations necessary to eek out a few percentage points of perf from archaic hardware (e.g. game consoles and the like)? Since paying that level of attention to your code has been considered largely pointless in the modern era where throwing more hardware at the problem is economically optimal 99.9% of the time. The last forty to fifty years have seen a downwards trend in attention paid to the nuts and bolts of the software actually being written, with I think the sharpest decline happening in the last few years.

    So, that in mind, and given my observed appreciation of others towards said code, I'd assume that people will find it a little sad/kind of inspiring that people could even work that way, before feeding it into slopzilla to churn out v3 of your old software code (statistically, in Rust). We haven't really cared about the code in software for ages, and I doubt folks will start now that it has become even more devalued (see also: visual arts).

    (sorry for my pessimism ... I'm not a huge fan of how the industry prepared for this, responded to it, and what it figures will be the future)

    1 vote
    1. Greg
      Link Parent
      This has always been how I’ve expected things to go too. I love the craftsmanship and sheer dedication that made Rollercoaster Tycoon happen, I love older stories about physically mapping drum...

      This has always been how I’ve expected things to go too. I love the craftsmanship and sheer dedication that made Rollercoaster Tycoon happen, I love older stories about physically mapping drum memory for efficiency, and I love seeing people find techniques to squeeze ever more complex feats out of vintage hardware*.

      But I can’t pretend that compilers and garbage collectors and even electron apps were a bad idea when it comes to getting shit done, even if they can be easy to misuse and facilitate a lot of slop. Same goes for coding agents, but as with many things in our thin-end-of-the-singularity cyberpunk dystopia, it goes faster and more extreme now, for better and for worse.


      *Side note: why do so few people seem to notice the insane quality of ultra-specialist hardware and software work going on in the retro gaming community? These people have the skills to run rings around some of the most highly paid engineers on the planet, and they’re investing thousands of hours into random niche projects for the literal love of the game. I want every tech executive looking at a huge flashing neon sign that just says “where’s your capitalism now?” and points to some dude in a basement engineering an entire motherboard single-handedly. Anyway…