3 ms·
I find this easy-to-overlook and mostly-off-the-main-topic passage quite deep and sadly truthful: There may also be political impediments. Even if we know
by nnq 11y ago
I find this easy-to-overlook and mostly-off-the-main-topic passage quite deep and sadly truthful:
There may also be political impediments. Even if we know how to educate tomorrow’s professional programmer, it is not certain that the society we are living in will allow us to do so.
The first effect of teaching a methodology —rather than disseminating knowledge— is that of enhancing the capacities of the already capable, thus magnifying the difference in intelligence.
In a society in which the educational system is used as an instrument for the establishment of a homogenized culture, in which the cream is prevented from rising to the top, the education of competent programmers could be politically impalatable.
...and the funny thing is that these "political" impediments have been driven by nothing else than plain old month to month business objectives: by striving for "replaceable programmers", or "reproducible performance" or "reducing the buss factor" etc. we trowed away the most promising "programmer brainpower amplifiers", prevented "the cream" from rising too high by drowning it in endless debugging and optimizations tasks that "needed to be done" because "legacy", and we got a [C, C++ and Java] main-languages-combo instead of a [some-low-level-ML, Lisp and Smalltalk] one.
But if you know that you can always fire your top programmer and still survive as a business, it was worth the cost of x-times programming productivity reduction, right? (Plus the more global thing: anyone with less money and training than you have, like some bunch of unknown 3rd world country programmers, is very unlikely to overtake your business if most of the true brainpower-amplifiers are thoroughly crippled, and you also have the "network effects" part turned against them - read below)
And the awesome part was that by doing this industry-wise, any competitive advantage that could be had by the party-line-breakers choosing the x-times tech was lost because of the network-effect-induced-handicaps: if they need to take a week to rewrite that library in their smarter language/stack and another week for the other one etc., that x-times advantage goes away pretty fast ...except for a few that were really smart and made all the right micro-decision at all the right levels (and had some pretty strong place and time advantages too - like simply being in SV around '95), like PG with Viaweb and a few others.
...it's really sad to read and write this, seeing that despite someone really smart like Dijkstra saw this a few decades earlier, it still went this way.
- JustSomeNobody 11y agoI rant about this all the time, but it is because engineering is subordinate to management. Agile, XP, whatever all get turned into a business process by which managers can "run the numbers". They are no longer tools for developing healthy software systems. They are tools to determine the minimal we can do and still make the most from the customer.
- SZJX 11y agoThis statement by Dijkstra sounds a bit determinist/elitist. Differences in talent/"intelligence" is largely a myth while only accumulation of experience matters. This kind of claim is dangerous in that it allows those higher up in the ladder claim that they're "naturally gifted" to take their positions while in fact they most likely just have had more resources growing up. The current society is already inegalitarian and unmeritocratic enough and such claims could only fuel the situation further. I totally agree with the point on homogenization of programming. However this is more likely just a ubiquitous feature of today's globalized capitalist world. I don't think it has anything to do with so-called "difference in intelligence" or whatsoever. More aspiring programmers will want to program at higher levels, and it's a good thing, as long as they don't claim this is due to them being superior intellectually than their other counterparts.