Warning bells sound in my head when I read or hear any variant on the phrase, "without programming." Dozens of thousands of Web pages promise to deliver this particular form of something for nothing. I dont buy it, and I dont even think its an attractive promise even if it could be believed.
I thought about this when Microsofts Indigo subsystem entered public beta—or as Microsoft now dubs it, Community Technology Preview—last week. I found myself recalling that famous old-technology example, the Home Motor shown in the 1918 Sears, Roebuck catalog. The device was sold with the promise that it could do many different jobs with the proper attachments. People often compare this to the first-generation personal computer, sold as a device that could take on many chores with the proper software.
From more of a developers perspective, many have compared the do-everything electric motor to our attempts to provide a do-everything end-user environment, such as Windows. Most of us, I think, would agree that were better off with fractional-horsepower motors embedded in purpose-built devices; for the last few decades, weve likewise been on a trend toward the proliferation of microprocessors throughout our homes, automating all manner of functions in purpose-built devices and using clearly focused task-specific controls and displays. Many of the things that people once said would be done with a home computer are instead done by simple, reliable, highly user-friendly devices such as programmable thermostats or video recorders.
Todays bit-based "home motor," providing a generic function thats channeled through all sorts of clumsy attachments, is the Web browser. The electric motor was once expensive and needed to have its cost amortized across many functions at the expense of considerable user inconvenience. A central processing unit was once unthinkably expensive and needed to have its cost spread across many functions and many round-the-clock shifts of machine operators to keep it busy all the time. An Internet connection was once expensive to define, establish and maintain—in terms of both programmer knowledge and other, more concrete resources. As each of these things becomes cheaper to acquire and use, we acquire more of them and use them to do a greater variety of things.
Frameworks like Indigo make it much more feasible for any given application to interact with Net resources in its own way, with more robust communications behavior than we can expect from a user clicking on-screen buttons or managing plug-ins.
Its Economics 101, moreover, that when the cost of something falls, the quantity thats demanded will rise. When Internet connections are cheaper to acquire, because the backbone bandwidth is there and because the code to interact with the network is leveraged with something like Indigo, then the number of things that are economically attractive to do on the Net will increase. This means that more, not fewer, programmers are worth the effort of employing—because higher programmer productivity creates new demand for diverse, customized function more quickly than it reduces the programmer labor needed to deliver it.
But doing things across the Net takes a higher level of programmer insight into failure modes and effects. Doing things with purpose-built devices demands a higher level of insight into user expectations and a higher tolerance for user ignorance or error. Writing code that animates the always-on interactive environment requires a zero-defects standard of coding quality. To understand a dynamic environment, to anticipate external events or internal anomalies and handle them correctly, and all the while to deliver interacting sequences of function in a useful and intuitive way: If thats not programming, I dont know what it is.
Its not that well do more things without programming. Its that we all, to a growing degree, will need to think like programmers to make good use of new tools. Those who do it best will get paid to do it for others. Thats an attractive promise.
Tell me what youll do with Indigo at firstname.lastname@example.org.
Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.