The State of the Art is Terrible
Similar professional experience:  I go back to having built rudimentary microprocessors with diode arrays and gates; Creating my own microcode and ALU; Wire-wrapping my own computers using 8080, 6502 and other early processors; Punching in my own mini-os using a hex keypad; Rolling my own Forth-based OS, editor and applications; working with PALs and later on multi-million-gate FPGAs.<p>I find myself agreeing with the author on many points.  The evolutionary progress in computing seems to have stalled a long time ago.  The fact that we are still hand-coding loops and such things means that it is hard to move up into a higher level of consciousness, if you will.  The paradigm shift we need is one where the programmer is able to think and work in problem space rather than being pushed down into verifying loop counts and semicolons every five minutes.<p>Back in college I experienced a mind-opening moment when a physics professor insisted that I enroll in a class he was teaching.  The class was for a language called APL.  I won't go into details here.  Look it up if interested.  That class and that language changed my view of computing and how computing could work forever.  I was taking FORTRAN and C classes at the same time.  The contrast between the languages was almost beyond description.  While we were mired in do loops and other language-mechanics in FORTRAN and C we were actually solving real problems with APL in very short order...even writing a game or two, database applications and doing some scientific computing.  Programmer productivity and the ability to express and solve a problem simply could not be compared.  APL felt like it was a century ahead of anything else.<p>APL lets you focus on the problem space.  In a certain way it is like playing the piano, you don't think about frequencies and durations, you think about expression of ideas.<p>As people focused in languages like C++ (which were easier to grasp and use with equipment available in those days) APL never became mainstream and, to some degree, did not evolve into what it could have become.  Ironically, the machines we all have on our desks today provide an incredible environment for a language like APL in terms of available resources and speed.<p>I am not saying that APL is the end-all.  What I am saying is that my path through this craft was altered in a non-trivial manner by being exposed to a very different set of ideas.  I find myself longing for feeling that way about the tools I have to use today, particularly when hitting the pavement with languages such as Objective-C and VHDL, which, despite their many supporters are far, very, very far, from providing the kind of evolution and progress we so desperately need in computer science.