Algorithms, Participation and Triangles
By stern on Jun 23, 2006
Bear with me. It's Friday afternoon and I've been on a long series of conference calls, describing what my goals are for systems engineering at Sun, and why I think the future is bright. I was assisted in my little speech writing by running into an essay by my former co-worker and amazing CS theoretician Bernard Chazelle.
Chazelle posits that we are barely on the doorstep of major advances in computer science, and that an iPod and unsolved theory problems are merely first cousins. We've seen a renaissance in mathematics based on recent breakthroughs like the proof of Fermat's Last Theorem (as noted by Chazelle), but mathematics is about exactness and proof. But excitement breeds enrollment, and mathematics is booming while computer science is dooming and glooming.
Computer science is about the real-world, and about utility. There are some things we can't prove using the mathematical basis of theoretical computer science, so we develop approximating or practical algorithms that suffice. This practical view of computer science is what creates the opportunity. Certainly, you could want to see every document containing a phrase that exists on the net, but having them sorted for you by Google makes better use of your time. The pattern match is precise; the prioritization is an imprecise algorithm.
What I've loved about computer science in the 30 years since I touched a KSR-11 teletype is that we use the artistic - the mathematics - to shape and refine the practical - the engineering. We're barely getting started. AJAX based applications give us nice interfaces; but show me the real work in finding data, marrying it to other sources that add context or depth, and then filter out the pieces that are less interesting to me, and the nice interface turns into a useful service.
If you don't think that there is opportunity in practical algorithm design, across any set of enterprises or industries, then you haven't tried many company's on-line help facilities, or tried searching for a product for which you know the description and function but not the brand name. This is, in its most base description, about opening up the data of an enterprise -- all of the data, not just rows of a database but context, metadata, text documents, editorial opinions, everything -- to groups of users who will find utility in access.
We call it the "participation age", but it's really about creating those algorithms that bind community members more closely to each other or the creators of the community.
What about the formal proof? I first met Bernard Chazelle when he joined Princeton's faculty; he was working on various problems in computational geometry and was deeply into triangulation, breaking polygons up into triangles. What's the big deal? Triangles are the basis for most rendering packages, the fundamental shape used for lighting, shading, color, texture and transparency. Practical algorithms make for practical fun, as triangulation drives computer animation. Compare "Cars" to "Toy Story" to see where practical algorithms combined with artistic math have taken entertainment. Figuring out what's next is left as a proof for the reader.