By Peter Bell

The REAL Future of Computing

While luddites such as myself continue to work on old fashioned technologies like application generation and software product lines that will be mainstream within the next few years (:->), I think this points to the real future of computing. By 2008, if you are still trying to figure out how to tell a computer what to do (whether imperatively or declaratively), you’re probably not on the cutting edge of programming any more. I think that code generation and meta-programming may well be the high water mark of the old school command and control approach to what is really just a branch of machine learning (What is our job? Teaching computers to do what we want!).

Check out an old article by Reg Braithwaite for an insightful peak at what might be to come (see the second half of his posting).

Oh well, at least it means that once I’ve finished my application generator I’ll still have stuff to learn. Always wanted to learn more about statistics :->

Comments
One of the authors thinks that as people get older it takes the edge away from people who want to do start ups. Actually most older people for various reasons aren't interested in a startup. Yet, the experience of years with someone accustom to thinking gives them an edge! Just like styles come and go so do thought patterns. There is are warnings in traditions of society after society telling us to value, not discard the gray/grey (depending on your national spelling) headed wisdom!

I agree code generation is going to be much of the wave of the future. I believe the strong suit will be design time generation more than run time generation. Most of the tools being worked on today lean toward tools that are run time able, but it seems they are truely only distracted with run time abilities. It seems they would do more with MANY LESS BUGS if they concentrated on "design time" code generation.
# Posted By John Farrar | 1/8/07 10:02 AM
Hi John,

Firstly, I agree that age brings an edge - it is why we all respect people who've "done it before". But it is important as we get older to see the value of youth so we can harness it. I'm 36 and love the idea of sitting in a room with a bunch of buzzed 22 year olds at something like start-up school to remind myself just how fast the competition will be.

I was actually arguing that the wave of the future (application generation) is already outdated - the cool research is now on learning system - replacing more efficient ways of telling computers what to do (application generation) with statistical and learning approaches that allow the computers to learn on their own using various types of inference from real world data.

As for run time vs. design time, I find the distinction unimportant. The key is the architecture of the generator and the design of your Domain Specific Languages. Whether you bind at run time or during some generation or compilation phase is really just a very pragmatic low level decision along the lines of deciding what indexes to put in your db or what caching mechanisms to implement. Also, generators can be language independent whereas binding times are typically language dependent. There are bunch of things that I generate in CF that I'd probably just use meta-programming for in Ruby.
# Posted By Peter Bell | 1/8/07 10:10 AM
BlogCFC was created by Raymond Camden. This blog is running version 5.005.