Comment by drchaim

7 days ago

I’d just call it “coding” – it’ll be the default soon enough. For the old way: “hand-coding”

It will certainly be the default for cases where it's easier to read code than to write code, but this is far from universally true. AFAIK, Joel Spolsky was the first to discuss this at length 25 years ago [0], but numerous people have echoed his sentiment [1, 2, 3, ...]

One of the most underrated skills in effectively using gen-AI for coding is knowing ahead of time whether it will take longer to carefully review the code it produces, versus writing it from scratch yourself.

[0] https://www.joelonsoftware.com/2000/04/06/things-you-should-...

[1] https://mattrickard.com/its-hard-to-read-code-than-write-it

[2] https://trishagee.com/presentations/reading_code/

[3] https://idiallo.com/blog/writing-code-is-easy-reading-is-har...

[...] https://www.google.com/search?q=it%27s+harder+to+read+code+t...

I feel nauseous when I read comments like this. Does no one here actually like programming?

  • I love programming, but it turns out I love building useful stuff even more than I love programming. Agentic coding helped me fall in love with development all over again. If a team of junior engineers suddenly showed up at my door and offered to perform any tasks I was willing to assign to them for the rest of my life, I'd love that too.

    Agentic coding is just doing for development what cloud computing did for systems administration. Sure, I could spend all day building and configuring Linux boxes to deploy backend infrastructure on if the time and budget existed for me to do that, and I'd have fun doing it, but what's more fun for me is actually launching a product.

  • Sadly the times where people joined software engineering for passion are way behind. People nowadays join just for the money or because it has lot of jobs available.

    It is very easy to notice at work who actually likes building software and wants to make the best product and who is there for the money, wants to move on, hard code something and get away with the minimal amount of work, usually because they don't care much. That kind of people love vibe coding.

    • Or some of us are Engineers who very much enjoy solving problems using the best tool available.

  • I don't like the kind of programming that an LLM can easily accomplish.

    For instance, I recently had to replace a hard-coded parameter with something specifiable on the command line, in an unfamiliar behemoth of a Java project. The hard-coded value was literally 20 function calls deep in a heavily dependency-injected stack, and the argument parser was of course bespoke.

    Claude Code oneshotted this in about 30 seconds. It took me all of 5 minutes to read through its implementation and verify that it correctly called the custom argument parser and percolated its value down all 20 layers of the stack. The hour of my time I got back from having to parse through all those layers myself was spent on the sort of programming I love, the kind that LLMs are bad at: things like novel algorithm development, low-level optimizations, designing elegant and maintainable code architecture, etc.

    • wait you were unfamiliar with a behemoth Java project to the point of dreading making the change yourself, and yet only spent 5 minutes reviewing "someone else's" PR?

      3 replies →

Linus Torvalds: 'Talk is cheap. Show me the code'

Today: 'code is cheap, show me the talk'

I've definitely heard people semi-seriously refer to the old way as "artisanal coding".

  • That's actually a pretty reasonable description I think. I mean, in the semi-serious way. But I was just talking to some colleagues of mine about how one can get attached to or invested in code that they hand wrote, even though that code wasn't really solving a problem that was "worth" that level of attachment. And AI assisted code generation changes the dynamic for code that fits in that category for me, and it just so happens to be a lot of the code people write for work fit into that. You only really need to be "artisinal" about the code that "really matters".

  • Just wait until there are artisinal software shops in Brooklyn staffed by an even higher density of bros with signature mustaches and weird side hobbies.

I dunno, I feel lately like we are right at the tail end of the honeymoon era and about to enter the era where the blog topic du jour is “use LLMs, not too much, mostly on a short leash”.

Not much to base that on other than vibes, though :)

As much as I dislike the ecosystem around AI and don't enjoy using them as tools: this is the answer. We don't need a word for "doing the job properly with new tools".

I feel a certain way when I hear about older programmers who used to program using punch cards, I guess everyone in the future will think about us in the same way?

  • I feel a certain way when I work with older programmers who used to program using punch cards, and debug actual core dumps, i.e. the main memory of the computer printed out in hex. They have incredible attention to detail, and can reason about why their programs didn't do what they expected.

    • In some ways slower feedback loops might be useful. Having to think and reason if your code is correct and actually works because you only get output next day...

      Instead of just vibing something out, pushing it to prod and seeing the problems. Or not even checking...

  • You don't "program" with punch cards any more than you "program" with text files. They were just the mechanism to get your code into the computer before hard drives and compilers existed.

  • [flagged]

    • Haha - cool that you made a throwaway insult account just for this. I meant punch cards as a placeholder for programming in a bygone era, about how it feels so different, distant and detached, and that I don't relate to it.

      I can see a plausible future where if we go down this route, what I call coding right now will feel the same.