Developers Redefine Abstraction Demands

By Peter Coffee |
Posted 2005-09-12

With Microsofts Professional
Developers Conference in Los Angeles filling much of my agenda for
the rest of this week, this seems like a good time to look at the
progress of developers continuing quest for abstraction: the
not-so-secret ingredient, so far, of Windows success.

Instead of every commercial application developer needing to master
the low-level hardware of the IBM-compatible PC and its peripherals,
worrying about keyboard interrupts and writing dozens of printer
drivers, most commercial development teams have chosen to focus on
understanding the Windows APIs and to let Microsoft worry about
everything underneath. Those developers got the benefits of
dramatically higher productivity; users got the benefits of
user-interface consistency and inter-application communication;
Microsoft got the benefits of a huge portfolio of applications that
relied on Windows and were not readily portable to any other platform.

The question is whether that strategy is still compelling: There are
many ways in which its becoming much less so.

The strongest plank of the next-generation Windows platform, as it
was discussed at the October 2003 PDC, was the Indigo (now dubbed Windows
Communication Foundation) framework for radically strengthening --
while also simplifying -- developers access to advanced communication
models. At the time, I fully agreed with
eWEEKs Darryl Taft that while fancy graphics and file system
tricks were getting most of the hype at the 2003 PDC, it was the power
combined with the abstraction of Indigo that had the most potential to
keep developers focused on Microsofts road map -- and Microsofts most
consistently brilliant tactic, I likewise agree with
Mary Jo Foley of Microsoft Watch, is its ability to define and
attract and retain communities of developers to add value to
Microsofts platforms.

In many ways, though, the defining paradigm shift for the next
generation of development is the opportunity to shun the compromises of
mass-market abstraction and to maximize performance and function by
creating new application-specific platforms -- then delivering the
resulting applications to commodity clients using the non-proprietary
abstractions of Web services. Most of the online world uses Google,
and much of the e-business world revolves around Amazon, which means
that a huge number of people are Linux users -- regardless of what runs
on their desks or in their laps. The compute-intensive tasks that drive
many users hardware purchases are taking place today, not on the
general-purpose CPUs of their PCs, but on the graphics processors of
their cameras or their PCs video subsystems: A brilliant game or other
multimedia offering may depend much more on low-level graphics hardware
knowledge than on the high-level abstractions of the client platform.

The code thats being written in supercomputing centers, as much as
ever, is written with deep knowledge of hardware and strong dependency
on that coupling. "Knowing how your memory caches work, the memory
hierarchy, that really matters. Theres people doing research into
frameworks that do the optimization, but so far they havent replaced
the hard work. Some of our people think its just going to keep on
getting harder, and people are just going to have to make it work," was
the assessment of Anke Kamrath, division director for User Services and
Development at the San Diego Supercomputer Center, when I visited there
earlier this month -- and the enterprise offerings that matter most to
customers and supply-chain partners increasingly resemble what we used
to consider supercomputer applications, collecting data in vast arrays
from RFID tags or point-of-sale scans and performing massive
calculations to optimize flows of goods and services.

We might summarize the Windows model as one of creating a
proprietary layer of abstraction for a commodity hardware platform,
then profitably selling a copy of that abstraction layer on every
client device.
That model must now compete against an alternative approach of creating
an application-specific platform, then offering worldwide access to a
single central deployment of that platform through non-proprietary
protocols and platform-neutral presentation tools that commoditize the
entire client-side stack.

Its still possible for something as clever as Windows Communication
Foundation to give developers a compelling advantage in making
information and services available on the client in ways that people
will prefer, without unacceptable costs in developer learning and
implementation. Its also essential, this week, for Microsoft to
convince PDC attendees that this is what Microsofts Vista will achieve.