Word of the Year?

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...

###