martinfowler.com logo Home Blog Articles Books About Me Contact Me ThoughtWorks

PlatformIndependentMalapropism uml 12 September 2003 Reactions

One of the big claims about Model Driven Architecture (MDA) is that it allows you to develop a system in a Platform Independent Model (PIM) that can then be transformed into Platform Specific Models (PSM) for technologies such as .NET or Java. An alert reader should say to this: "hang on a moment, isn't the whole point of Java to be platform independent? So why would I want some platform independent technology that generates another platform independent technology?"

To think about platform independent, you first have to decide what you mean by platform. For those involved in technologies like Java, platform means your hardware and operating system. I can take programs written in Java on my windows box and run them on my unix box with little or no trouble. That's the form of platform independence that I'm used to.

When MDA talks about platform independence, it's treating your programming environment as the platform. But this is complete hogwash. MDA uses a bunch of OMG standards (UML, MOF, XMI, CWM etc), these standards are every bit as much a platform as the Java stack (or the .NET stack for that matter). All you are doing is swapping one (hardware/OS) platform independent programming environment for another. You aren't getting any more independence.

Indeed one could say you are worse off. Let's take the simplest program any programmer has to write: Hello World. How exactly do you do that in the standard OMG PIM platform? Well you can't, because there are no I/O libraries defined in the OMG PIM standards. You either call something platform specific or you have to roll your own libraries - which naturally are non-standard.

Now this alone doesn't mean that MDA is a waste of time. There are other potential benefits to the MDA message. But the platform independent argument has no foundation.


Links
home
bliki
feed 
Translations
Japanese
Spanish
Korean
Chinese
Thai
Categories
agile
design
dsl
leisure
refactoring
ruby
thoughtWorks
tools
uml
writing
Blog Roll
ThoughtBlogs
TW Alumni
Nicholas Carr
Steve Cook
Brian Foote
Simon Harris
Gregor Hohpe
/\ndy Hunt
Ralph Johnson
Patrick Logan
David Ing
Brian Marick
Jeremy Miller
Jimmy Nilsson
Samuel Pepys
Keith Ray
Johanna Rothman
Kathy Sierra
Dave Thomas

martinfowler.com logo mingle logo thoughtworks logo

© Copyright Martin Fowler, all rights reserved