ASM, Clancy & Harvey, and Agile (Re: vintage computers in active use)

Swift Griggs swiftgriggs at gmail.com
Fri May 27 09:59:55 CDT 2016


On Thu, 26 May 2016, Fred Cisin wrote:
> I had words with Clancy and Harvey.  While need may be diminshed, there 
> is never a complete elimination of the need to pay attention to, and 
> optimize near, the level of hardware.

I'm going to loudly agree here. While I find assembly coding somewhat 
tedious, I wonder what kind of Jedi mind trick "Clancy and Harvey" used to 
make themselves believe that asm was not only dead but also no longer 
useful. *eye roll* Whatever, geniuses. Maybe I'm misunderstanding the 
quote? Are they serious? Is this out of context and I'm just not "getting" 
what they really meant?

There are all kinds of seemingly instinctual reactions that some folks 
have to questions of programming style and efficiency. My *least* 
favorites are:

1. The "GUI programming" or "natural language" folks who think that 
programming really isn't that hard, the problem is that we haven't given 
folks Fischer-Price icons for control structures, or allowed people 
"simply tell the computer what to do."  I simply call BS. 

2. Languages that are supposed to "enlighten" students to some incredible 
new programming paradigm, or bolt-ons that to older languages with the 
same claims. They almost always start their pitch by telling you how some 
irritating or tedious aspect of coding in other languages can be 
eliminated or minimized. I'm more and more skeptical of this claim all the 
time. It rarely works out and generally making things "safer" or "easier" 
runs a big risk of neutering their usefulness, too.

Those languages who successfully walk the line between power and ease of 
use are the ones that survive and thrive (and sometimes it's just 
chance/luck as Dennis Ritchie said about C).

The bottom line is that coding is work. It takes creativity, analytical 
and critical thinking ability, and probably most important of all: 
practice. IMHO, there aren't any shortcuts. You work and you get results. 
As tedious as it is, I can think of several contexts were ASM is downright 
required. Folks who think there is a magic bullet or shortcut seem to fall 
into the same mistakes while calling them something new. Folks who resent 
the work & sweat that others do to get those skills are generally the ones 
who are screaming the loudest about how programming is really easy, but 
it's the geeks who are just overcomplicating things and are making it "so 
hard". 

Then they or folks with the same mindset generally start talking about 
Agile, XP, or some "methodology" that's going to somehow free them from 
the basic fact that good experienced coders write the best code and 
deliver. You can't simply iron on a methodology and turn a team full of 
lazy or careless coders into something else. At best, you can catch more 
of their errors and report on the ones that aren't being productive and 
hope your management pays attention. I've worked under Agile and XP 
regimes and I hate both with a passion. They were both a *huge* 
productivity drag (ever actually tried "pair programming"?) and seemed to 
me to be an effort to make business weasels feel more comfortable that 
their coders were "communicating" and other social crapola they think is 
important since most of what they do is sit around and run their mouths in 
meetings all day. I'm sure some folks will disagree, but I've *actually 
worked* under these schemes. In my experience (and the vast majority of my 
co-workers) they were awful. It also seems to me that all the "greats" 
(incredible coders) and software projects or companies I loved or 
respected weren't "Agile". They simply hired the right people and got out 
of the way. Give me the "wizard in a cave" methodology anyday over "1000 
H1Bs writing Shakespeare using Agile". Results matter more than 
mollycottled business majors and project manager feelings... uhh, IHMO. 
Who would you want helping you finish your project, Dr. Jeff Sutherland or 
John Carmack? Which do you think is going to get you there sooner and with 
better results? I know how I'd answer... 

This mentality I dislike is a bit like saying the only reason you can't 
play violin is, not because you don't practice and are too lazy to work at 
it.... noooo it's because the violin is poorly designed, the wrong brand, 
and because you aren't practicing in the right order with your head turned 
in the proper direction. Yeah. Right.

I'm not saying the state of the art can't be improved. I only assert that 
there are some strategies for doing so that seem flawed from the start 
because they start with unrealistic (or downright silly) founding 
principles.

-Swift


More information about the cctalk mailing list