Word of the Year?
- By John K. Waters
- December 30, 2005
If you're a word watcher (like yours truly), you probably noticed that ''podcast'' was
the New Oxford American Dictionary's Word
of the Year for 2005. Two other techie terms made the runners-up list:
''lifehack'' and ''rootkit.'' So did ''bird flu,'' ''reggaeton,'' and
''sudoku.''
It's an interesting list, but with due respect, I think the Oxford people
missed the boat this year by leaving out ''platform.'' It might not be as
prominent lately in the popular lexicon as ''podcast,'' but it's got to be ahead
of ''rootkit.''
I hear, read, and-or write this word dozens to hundreds
of times a day. It's everywhere in IT. Maybe the dictionary dudes missed it because ''platform'' is so squishily
defined. Windows and Linux are platforms, but so is Java. EBay and Amazon
claim the word to for their e-commerce infrastructures. Yahoo and Google now have
platforms. So do salesforce.com and Intuit. Oracle, BEA,
and SAP all talk about their
platforms. Some AMD
folks called me up the other day to talk about their
64-bit platform. The embedded systems developers I talk to are beginning to
refer to cell phones and cars as platforms.
Has ''platform'' evolved into one of those all-purpose
locutions, like America's favorite Germanic four-letter word, that mean so many
things they mean nothing? To get an answer to this burning question, I pestered
some folks on my Smartest People I Know list. Despite what I'm sure were hectic
holiday schedules, several got back to me via e-mail with their thoughts on the
definition of platform
.
Carl Zetie, Forrester
Research analyst and application-development lifecycle maven, shared my
concern about flabby IT verbiage, and even waxed a bit poetic:
''Platform is becoming one of those IT words that has had all
meaning sucked out of it, whose only remaining function is to anchor a list of
adjectives, as in 'a highly scalable platform.' Remember when 'environment' used
to mean something specific, too? And 'architecture' is heading that way; what do
SOA and MDA have in common that makes them both examples of
architecture? 'Framework,' on the other hand has made a bit of a comeback,
thanks to Spring, Hibernate, and Ruby on Rails.
''But assuming that we want to rescue 'platform' before its too late, what I
would want it to mean is: The layer of code that defines the abstract
context of execution (or virtual machine) for application logic. That
sounds a bit academic, but it captures what, for me, is the essence of a
platform: It provides the level of abstraction that defines the programmer's
terms of reference. Thus, a BPEL engine defines a context in which a programmer
writes and executes BPEL, while Spring defines a context in which a programmer
writes POJOs. In neither case does the programmer care about the underlying real
machine; they only care about the virtual machine that the platform represents.
''Having typed that, I think I've talked myself into an
alternate definition that I like better: A platform is what defines the
frame of reference for the developer.''
I also heard from my favorite security guru, Gary McGraw,
CTO at Cigital and author of Exploiting
Software (Addison-Wesley, 2004), Building Secure Software
(Addison-Wesley, 2001), and the upcoming Software Security: Building
Security In (Addison-Wesley 2006, due in February 2006). Dr. McGraw chatted with
the ''hard core techies'' at Cigital and got back to me:
''We see platform used in two pretty distinct ways:
a development platform provides the foundational classes and libraries
for software applications...think J2EE or .NET. A system platform is
a (usually proprietary) blend of hardware and software that provides
a computational operating system level foundation...think Windows, Mac
OSX, Solaris. Given those two very common and somewhat diverse usages, you
might try to unify them. The OMG has done this and defines a platform as a set
of subsystems and technologies that supports an application. They even have
a symbol for platform (looks like pi) in UML for use in model-driven
architecture.
''For me, some key characteristics stick out as
essential: 1) abstraction over hardware, 2) encapsulation of base functionality,
and 3) limitation to foundational functionality only (that is, you must build on
top of a platform to make a useful application...the platform itself provides
only raw material). Slipping out of uber geek
mode into silliness: I suppose PowerPoint is a
platform for vaporware marketecture.''
Miko Matsumura is VP
of marketing at Infravio, a Cupertino,
CA-based provider of SOA Web services management products. Miko is the former VP
of product marketing at Systinet, co-creator of The Middleware Company's SOA
Blueprints (the first complete, vendor-neutral specification of an SOA
application set), and the original Java Evangelist at Sun Microsystems
. He
offered the following rumination on platform as metaphor:
''In physical space, a platform is a raised horizontal surface. [Similarly] a
software platform must deliver application value across vertical areas.
Thinking of a platform as a surface is also helpful in that it implies
independence of the underlying technology... The third quality of being 'raised'
suggests that applications sitting on the platform are 'uplifted' and that this
is a functional benefit... which it means that builders of applications don't
need to build a significant degree of functionality to bring the application to
a usable 'height.'
''So its meaning is metaphoric, but suggests an interface that supplies the
underpinnings for a number of different functional applications.''
UK-based analyst Neil Ward-Dutton, partner at Macehiter
Ward-Dutton
, also saw horizontality as key to the definition, but added some
observations on platform as a modifier, and its role in ''all sorts of
vendor marketing/positioning trickery:''
''I don't have a problem with the word 'platform' per se. It's quite
handy, really. But I do have a problem with the way that it's often used as a
throwaway term, to make products seem more interesting/useful than they really
are.
''In my mind, the legitimate use of the word platform is where it's
applied to a 'horizontal' technology package designed to be a foundation for
multiple applications (in the widest sense of the word), rather than an
'application,' which is designed for one particular purpose. The interesting bit
comes when platform is applied to particular domains--for example,
application platform, application lifecycle management
platform, enterprise management platform, content management
platform , etc. The challenge here is that it's very easy to create
new categories of products, packaged as 'platforms,' which one vendor (or
an analyst, or the two in combination – as was the case with Gartner and Sonic
with the ESB) might define as a package of 'A + B + C' functions. But as soon as
this new shorthand becomes commonly used in place of specific reference to
the technology, other vendors can say they offer the same thing, when
actually offering B + C + D (or E + F + G, etc.).''
Adrian J. Bowles is
Principal Research Fellow in IT Strategy and Management at the Robert Frances Group, Director of Research
and Education for the IT Compliance Institute, and Adjunct Associate Professor
of IS at New York University's Stern School
of Business
. Dr. Bowles likened the definition of
platform to Justice Potter Stewart's definition of pornography: ''I
know it when I see it.'' But then he gave it the old college try:
Platform: 1. the native hardware of a system, i.e., the underlying
chipset or architecture 2. any layer of hardware and-or software between the
native hardware and a user that hides details of everything at a lower level 3.
any enterprise application whose presence significantly reduces the practical
choices of subsequent purchases.
''A platform provides the basis for an IT ecosystem within an enterprise...
It's a choice to limit future choices, or a stake in the ground.''
The very articulate Mike Gilpin is a Forrester analyst who covers software
infrastructure for enterprise application development, integration, and
deployment. He offered his observations from an app developer perspective:
''To a developer, a platform is a specific arrangement of runtime
technologies that are being targeted by the development process, which together
define a programming model. This model embodies a set of assumptions about the
runtime environment. In the old days, this would be things like the operating
system APIs, the DBMS client library, etc. Nowadays developers typically work at
a higher level of abstraction where they don’t use these lower-level APIs, but
instead work within an application framework that makes it easier to build
applications of types envisioned by the authors of the framework.
''Downstream, the programming model is no longer visible, but the same set of
runtime technologies that defined that programming model now define a set of
interdependent runtime services that have to be kept running in order to keep
the application working. These services often extend the capabilities inherent
in the operating system, adding things like clustering and failover, distributed
data caching, and so on. Many of these capabilities are as invisible to the
programmer as the programming model is to the system manager. The runtime
environment takes responsibility away from the developer of having to be
concerned about these issues.''
The ever cheerful Ari Bixhorn is Microsoft
's Director
of Web Services Strategy, as well as a fellow word watcher. He,
too, lamented the ''indiscriminate use of the term,'' but then offered
the loosest definition I received:
platform (platform) n. – technology on which others may build
''While this definition may not impede the indiscriminate use of the term, it
does aptly describe the fact that a platform is merely a technology substrate. A
platform can be either hardware- or software-based. There are many software
'platforms' provided by Microsoft and others in the industry. Not only is the
core operating system a platform, but so are the accompanying developer
frameworks such as WinFX. ''Applications themselves can be platforms. Consider
Office’s programmability, first using VBA and more recently using Visual Studio
Tools for Office. Web-based applications and Web services may serve as
platforms. For example, MapPoint exposes Web services that handle over 20
million transactions per day. More than 500 commercial customers build
applications on top of these Web services.
''Hardliners may argue for a more restricted use of the word, but as you
mention, the term has evolved significantly in recent years. Maybe we should
distinguish between Platform (the hardliner definition) and platform (the
generic definition).''
Dr. Adam Kolawa,
co-founder and CEO of Parasoft , co-author of
Bulletproofing Web Applications
(Hungry Minds
2001), and a wickedly insightful industry watcher, was atypically sententious:
''For me platform in IT
is an environment in which programs are developed or deployed. The
environment includes hardware and system software to mange the hardware.''
ZapThink's nail-on-the-head
analyst Jason Bloomberg also went for short
and sweet:
''When platform has a specific meaning, it is essentially a distributed
runtime environment. Platforms can have many other features as well, but the
runtime is what distinguishes a platform from, say, a framework. In other words,
if software can run on it, it's a platform.''
Well, now that we've cleared that up...
###