About the series
2004 Recipient of the Charles Stark Draper Prize for the vision,
conception, and development of the first practical networked personal computers
Is the current complexity necessary, or could our intuitions be right that alternate ways to do all levels of software, from the end-users, UIs, apps, net, etc., down to the metal, might be much more expressive, compact, and even more efficient? Could there be a "Moore's Law for Software" - a factor of 100 in all critical areas - lurking behind today's mostly late ‘60s software approaches and architectures? Certainly programming needs more than incremental improvements. Code is too large, complex, weak, costly, buggy, insecure, unintegrated, inexpressive, and (let’s face it) ugly. Programming really needs to be reinvented. But how to get started? A giant step towards reinventing programming would be to make a practical working mathematical model of a complete personal computer system (including the equivalents of OS, applications, UI, development system, etc.) in perhaps as little as 20,000 lines of code. We've identified about a dozen powerful principles that have been invented by the computer field over the years that we think can bring about this large reduction in size of code and increase in expressiveness. A successful result would point the way towards a more complete reinvention of programming that we so desperately need.