logoalt Hacker News

wimltoday at 12:32 AM6 repliesview on HN

I think the article misunderstands completely. "Craft" coders are chasing results too — we're just chasing results that last and that can be built upon. I've been in this game for a while, and a major goal of every single good programmer I've known has been to make themselves obsolete. Yes, I enjoyed meticulous hand crafted assembly, counting cycles and packing bits, but nobody had to talk me into using compilers. Yes, I've spent many fruitful hours writing basic CRUD apps but now that's easily done by libraries/frameworks I'm not eager to go back. Memory management, type systems, higher level languages, no-/low-code systems that completely remove me from some parts of the design loop, etc etc etc. All great: the point of computer programming is to have the computer do things so we don't have to.

I think the real divide we're seeing is between people who saw software as something that is, fundamentally, improvable and understandable; and people who saw it as a mysterious roadblock foisted upon them by others, that cannot really be reasoned about or changed. And oddly, many of the people in the second category use terminology from the first, but fundamentally do not believe that the first category really exists. (Fair enough; I was surprised at the second category.) It's not about intelligence or whatever, it's a mindset or perspective thing.


Replies

msteffentoday at 5:31 PM

Yeah, I like this framing a lot. There comes a point, after working on a system for a while, when there are no details: every aspect of how the system works is understood to be in some way significant. If one of those details is changed, you understand what the implications of that change will be for the rest of the system, its users, etc. I worry that in a post-AI software world, that’ll never happen. The system will be so full of code you’ve barely looked at, understanding it all will be hopeless. If a change is proving impossible to make without introducing bugs, it will be more sensible to AI-build a new system than understand the problem.

I sometimes wonder if modularity will become even more important (as it has in physical construction, e.g. with the move from artisanal, temperamental plaster to cheap, efficient drywall), so that systems that AI is not able to reliably modify can easily be replaced.

randomNumber7today at 6:56 AM

> It's not about intelligence or whatever, it's a mindset or perspective thing.

I agree with everything except this last sentence. What you wrote looks highly intelligent and I would suspect a lot of people in the second camp are not up to par with this.

svilen_dobrevtoday at 6:30 PM

i wonder, is the divide something like Pirsig's classical vs romantic ? First see mostly-functionality / facts, want to understand to the bones, latter see .. appearance / utility / feelings, want to just-get-on-with-it ?

simianwordstoday at 7:04 AM

You are repeating the same thing. You think having good maintainable good is important - more than the first camp.

That does not mean you are correct. This mindset is useful only in serious reusable libraries and open source tools. Most enterprise code involves lots of exploring and fast iteration. Code quality doesn’t matter that much. No one else is going to see it.

When the craft coders bring their ideology to this set up, it starts slowing things down because they are optimising for the wrong target.

show 2 replies
harpiaharpyjatoday at 2:19 PM

Thank you for articulating that.

wiseowisetoday at 8:33 AM

> and a major goal of every single good programmer I've known has been to make themselves obsolete.

I’ve always heard this mantra when coders were thinking they’re untouchable, not so much now.