Platform, framework, productΒΆ

Tags: plone

I thought about writing a blog entry about the terms platform, framework and product. I smelled a difference between platform and framework. Just then Paul Everitt wrote about it :-) And he basically used platform and framework interchangeably.

They still don't sound the same.

  • A product is something tangible. You download firefox-the-browser and   run it. You buy Omnigroup's Omni   outliner and run it.
  • A framework is something that doesn't run out of the box. A set of   tools, a set of conventions, loads of parts, some glue. Do an "svn up" of   zope.* and you get a heaping load of stuff, but you won't install it on   your granddad's computer.
  • A platform is something you can build upon. That you can   tweak. Examples? Read on for my main point:

Isn't a platform something orthagonal to the product/framework distinction? I'd call the zope.* framework a platform that you can build on. And I'd call the omni outliner product a platform as Ethan Schoonhover build an entirely different application (kgtd ) on top of that with the build-in applescript possibilities.

  • You can build on plone and you can tweak it. Does that mean that   plone-the-product should be a framework instead? Does that mean it needs to   be disassembled and scattered to the four winds? Taken apart just for   valuable parts? No. It is a strength to have a nicely packaged windows   product-like installer.
  • Plone 3.0 was programmed cleanly using all zope3's component architecture's   possibilities. That means loads of little bits and pieces (plone.*) that   are useful in zope3's framework. That plone wants to be a nicely packaged   product doesn't mean that we should do it all in one monolithic whole. We're   allowed to use a perfect framework if we can, right?

In summary: Plone is a product. Plone is a platform. It is not a framework. It uses the zope3 framework and is gladly splitting up a lot behind-the-scenes stuff into framework-friendly modules. It is a platform that you can build on that's already useful out-of-the-box.


(Old imported comments)
"framework.." by on 2008-02-06 22:09:03
My understanding is this:

- a framework is something that calls your code

- a library is something that your code calls

- a platform is either a collection of libraries,
  a collection of frameworks, or some combination
  of the two

- an application is what the end user sees,
  and is independent of what it's build on

So I think that's consistent with what you're saying. logo

About me

My name is Reinout van Rees and I work a lot with Python (programming language) and Django (website framework). I live in The Netherlands and I'm happily married to Annie van Rees-Kooiman.

Weblog feeds

Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):