Terence Parr (author of ANTLR parser generator etc...)
This article popped up on reddit and news.ycombinator.com.
While my talent lies in software, my graduate studies were in computer engineering (designing and building digital computers). One observation always struck me: computer engineering seemed more straightforward than computer science (building software). There are a set of engineering design rules to follow and engineering projects are much more likely to work out than software projects. Yes, there are some spectacular engineering failures but, empirically, reliable and useful software is more difficult to pull off. To illustrate my point, consider the amazing space probes we send throughout the solar system. The spacecraft themselves work extremely well, often living long past their design lifetimes. Their control software, on the other hand, has to be constantly tweaked an