I would consider it helpful if there were more people in the industry who would know what a binary tree (or whatever comes to mind) is and when to use it. all means to get there are welcome as far as I'm concerned.
This l'art pour l'art accusation comes back once in a while, often in language bashing ("elitist lispers" I read some days ago). As a former musician I recognize it in the shape of "technique ruins your soul" or how one would like to phrase it.
I think that the dichotomy is just wrong. It's not detailed knowledge versus pragmatic solution. I spent a great amount of my time in environments where the "shipping it" dominated "understand what you are doing", and I also spent time with drummers who could not keep the time because practicing would ruin their soul. It's knowledge vs. ignorance.
What concerns software development: the essence you want to get back to smells to me like the vbscript world I was happy to turn my back to. I would like to see more capoeira, less hash-tables because they are built in.
To follow up on your analogy with martial arts: I practice fencing once in a while, a rather ritualized sport, (for some 100 years already): I would not like to inflict maximum controlled damage to my opponent, or the other way round: I'm not training to kill. You might call it a kata I'm working on.
Your point "it's not necessary to know all of them before..." I cannot argue with. I would think the same. But the inequality "written by a programmer who cares about knowing his craft" != "people don't want to use" follows not from that statement nor from any other point you are giving.
Indeed - I personally think that half the problem with a lot of the software I've worked with is people getting addicted to the idea of just making stuff work and judging quality against that. Any mysterious problems with maintainability / performance / the groans of your colleagues are just strange outside problems that have nothing to do with you and can't be helped and they really should shut up with their new-fangled silly ideas - my stuff works and surely that's what matters?
A typical quote from these people might be 'the user doesn't care about the implementation details' - that's true, in the same way a car owner doesn't care if the car's engine is made out of cheese.
Somewhat understandably people start to form an ego around this idea, making it harder and harder for them to assess whether there might be better means of engineering their software.
As with much of software engineering, the problem is with the wetware rather than the (soft|hard)ware :)
I would consider it helpful if there were more people in the industry who would know what a binary tree (or whatever comes to mind) is and when to use it. all means to get there are welcome as far as I'm concerned.
This l'art pour l'art accusation comes back once in a while, often in language bashing ("elitist lispers" I read some days ago). As a former musician I recognize it in the shape of "technique ruins your soul" or how one would like to phrase it.
I think that the dichotomy is just wrong. It's not detailed knowledge versus pragmatic solution. I spent a great amount of my time in environments where the "shipping it" dominated "understand what you are doing", and I also spent time with drummers who could not keep the time because practicing would ruin their soul. It's knowledge vs. ignorance.
What concerns software development: the essence you want to get back to smells to me like the vbscript world I was happy to turn my back to. I would like to see more capoeira, less hash-tables because they are built in.
To follow up on your analogy with martial arts: I practice fencing once in a while, a rather ritualized sport, (for some 100 years already): I would not like to inflict maximum controlled damage to my opponent, or the other way round: I'm not training to kill. You might call it a kata I'm working on.
Your point "it's not necessary to know all of them before..." I cannot argue with. I would think the same. But the inequality "written by a programmer who cares about knowing his craft" != "people don't want to use" follows not from that statement nor from any other point you are giving.