From reading his other essays, it's obvious the guy has a broader perspective on programming than most software developers.
I believe it's experienced developers who will spread this because it takes experience in many different languages and paradigms to really understand what Steve described. I have different coding styles for Lisp, Haskell, D, Ruby and CoffeeScript for instance.
The foundations of software development are generally not well understood. Otherwise the vast majority of software out there would be more robust by a few orders of magnitude.
Steve at least offers a classification for the different styles found in programming communities today. He may not be right on spot, but at least it's a start.
The idea of applying two-axis classification to software development would laughable if it wasn't so dangerous in its attractiveness as an oversimplified tribal mental model.
> Steve at least offers a classification for the different styles found in programming communities today. He may not be right on spot, but at least it's a start.
No. It's not a start. It's a dangerous, dangerous viral meme that threatens to replace rational dialog with ridiculous emotionally-driven opinionated politicized tribalism, and I can't help but wonder if that's his intent.
It's a play out of cable news' playbook, and I for one don't want an environment for engineering discourse modeled on American politics.
I couldn't think less of Yegge as an engineer and a thinker than I do now.
What he describes doesn't introduces anything new to current behaviours, American Politics are already everywhere. While it's a gross overestimation to place whole languages in buckets just like that, it doesn't mean things have to fall in one bucket only.
For the Mars Rover, you want mission critical batshit conservative programming practices. The JPL coding standards do the job perfectly for that. On the other end of the spectrum, you've got Joe's webpage.
I completely agree with you about the bad image of american politics and the incomplete one dimensional line view. However, I do believe software development practices can be classified, it just needs to be in a tree or a graph instead.
In order to stop the current meaningless fights over using/doing something or not, lines have to be drawn somewhere. People don't know what these lines are and the industry is plagued with projects having to live with the wrong decisions.
He clearly mentions it's not like american politics and I agree on that. It can be useful to actually educate the industry on what exists so they use the right tool for the right job, which currently only rarely happens.
It doesn't encourage "good enough" practices, it promotes knowing when to use what. He got the idea right, he only omitted to mention that these line can split multiple dimensions.
Why not choose less loaded terms like formal/expressive like art uses?
When interviewing and considering joining a team, envisioning a spectrum like this allows you to ask questions to see where a potential employer tends to fall on this spectrum, and thus determine whether it seems like a good fit for how you prefer to work and what you want to do.
And no, this is certainly not the only axis along which one can plot software development, and I doubt Mr. Yegge's goal was to propose that it was. At most it is an axis, and the goal would be for it to be a useful one when leveraged in the right context.
Can people take interesting ideas and horribly abuse them? Well, obviously. One might even argue that an idea that can't be abused by someone so inclined must not be very interesting at all.
Yeah, he really saved us there. Up until now we had no way of classifying different styles of programming...
I'm wondering how many other people read his essay and immediately thought of this: