A new era of computing.
I had a vision in the shower this moring; that thoughtful place where most prophetic visions incubate. I could see the future of computing diverging from the cookie-cutter-esque software development path we face today. I saw a thing of beauty. The next evolution in the now laborious process of software creation.
The essence of computing is somewhat lost on us as we experience our desktop computers in day-to-day life. We forget that a computer is, at its core, nothing more than a glorified state machine designed to solve very specific problems. We define the problem, implement a computing algorithm to solve the problem, and then pass the implementation along to the masses. If you ignore testing (which is what most software companies do), most of the work is in the implementation. People write thousands or even millions of lines of code that will eventually come together as a software application. Of course every thousand lines of code will contain somewhere between two to eight bugs on average.
This morning I saw in my mind a new era of computing. One in which computers take the place of the innumerable software engineers who are mindlessly churning out prosaic code. There will come a time when the only roll humans play in the equation is to define the problem. Computers will both find the algorithm to solve it and also perform the algorithmic computation. In all likelihood the algorithms will be virtually inconceivable to humans and created with a level of perfection that is heretofore unimaginable.
I'm excited by (and somewhat fearful of) the prospects of such an era, but one thing's for sure: We will eventually find a way to make ourselves obsolete. Well... that, and there's a fairly good chance computers will become self-aware and then nuke the planet. Something along the lines of Terminator.