On Sat, 8 Dec 2007, pd-list-request@iem.at wrote:
On Fri, 7 Dec 2007, Hans-Christoph Steiner wrote:
As for Pd vs. C, there was a time in the not-so-distant past where programmers thought that compilers were horribly inefficient, and that they were only really good for prototyping things. Then you'd code things for real in assembly. That lasted well into the 80's.
It even lasted well into the 90's, but it depends for what. The 80's had plenty ofy apps use a blend of asm and C-or-Pascal, while in the 90's it became limited to really needy applications (games, demoscene, etc). The amount of asm code still being written is shrinking but still somewhat present. For example, devel_0_39 has asm code in it.
I once wrote a final exam for a mandatory course in Assembly Language programming in the late 1990s where the most important question was to determine what a block of Motorola 68k assembly code was doing. People were just pulling their hair out! (mine never grew back!). It turned out the code was doing basically nothing. That was one of the best CS courses I ever took.
An old-school hacker (poet turned progammer, classic!) once told me that he used to debug his programmes (on mainframes, with not even 1M of memory) by actually just watching a display of activity in all memory locations. After a while, he just subconsciously internalised what was going on and managed to debug the code.
The questiion today might be whether auto-vectorising compilers are as good as hand-unrolled loops (I highly doubt it). The point is well-taken however: we should use high-level tools for the rapidity, expressivity and clarity they offer us in realising our particular ideas. It never hurts, nonetheless, to understand what that code is actually doing on the processor and in memory etc.
On a fundamental level, any code we run is just changing patterns of electrons bouncing about on a wafer of impure silicon. Thus, when our high-level tools fail us or don't give the expected result, we sometimes have to dig down a little deeper. Maybe there is a chunk of code, like that block of 68k assembly, which is just churning electrons around, basicaly doing nothing.
cheers, Andrew
"[...] the introduction of the blackboard has had more impact on classroom education than any innovation in technology since, including the introduction of cheap paper or the introduction of the internet and personal computers"
Bill Buxton