If you scan the web for mashups using Google, you’ll possibly run into the following types of mashup:
- Mapping Mashups
- Video & Photo Mashups (using media metadata)
- Shopping Mashups (from Froogle, PriceGrabber, etc.)
- Themes (Adding a theme to a website, like Hahlo)
- News Mashups (like RSS feeds on steroids)
- Games Mashups
- Visualization Mashups
It’s worth doing just to see what’s out there, but I don’t believe it reveals much about the importance of mashups.
Technically, a mashup is “an integration of multi-sourced applications or content into a single offering.” This definition is broad enough to cover video and music mashups, as well as software mash ups, but it’s the software mashups I’m interested in - and I’m going to stretch the definition of mashup a little so that it includes everything anyone might use as a ready made software component.
What I’m try to do is reveal the extent to which software development has become a matter of assembling readily available components. So here is my list of mashup types:
- The Mashable Web Site: Many web sites have opened up their APIs. ProgrammableWeb.com gives a current total of 784, but there may be more. They include, famously, Google Maps, which has spawned a plethora of free mapping services. Also includes; Amazon, AOL, BBC, del.icio.us, Dun & Bradstreet, Facebook, Fedex, and hundreds more. Naturally, usage conditions of various kinds are attached to such interfaces. A common restriction is that you can only provide a free service (to others) with any software you develop that uses the interface. Aside from such stipulations, the use of mashable web sites is usually free of charge.
- Widgets: Technically a widget is a program that runs in a “dashboard location or layer”. Widgets are usually free to use. Some are self-contained, such as widgets that do nothing more than display a clock. Some provide information services, such as weather forecasts. Widgets fit in the dashboard on the Mac, and in the sidebar under Windows Vista or on the desktop in earlier versions of Windows. They can also be assembled in browsers. There are some websites; iGoogle and NetVibes in particular which allow users to assemble widgets to create their own in-browser dashboards. This kind of approach is spreading and portals are being superseded by “dashboard layers.” There is no evidence (I’m aware of) that this is improving productivity, only that users like to arrange their own environments.
- Open Source Products: Quite a few Open Source products are used as components in larger development environments. This is particularly the case with products like Hibernate which do a very good job and fill an important role. We should not forget that the whole of the LAMP stack is a set of such components (Linux, Apache, MySQL and PHP.)
- Open Source as a Code Library: There are over 100,000 projects on SourceForge most of which happily publish the code they write under a license that allows reuse (within various constraints depending on license.) I know of programmers who freely treat some of this code as a convenient code library. After all code that works is code that works. Naturally there is a danger that some companies, completely unaware of the fact, are violating some open source license or other. Nevertheless this is a source of software components that gets utilized.
- Plug-in Based Products and Plug-ins: The culture of plugins began (I believe) with Firefox. It was a brilliant idea that was well executed. It introduced browser users to the idea of adding functionality and allowed programmers to develop their own additions, which they could market as donationware. This proved to be a very effective way to build a highly functional software product with a relatively small development team. Firefox is now streets ahead of Internet Explorer because of this innovative approach. Many web site engines have followed this model, including WordPress (which I use), Joomla and Drupal
- Embeddable Plug-ins: Adding code to a web page is about as hard as falling off a log. Many web sites (including this one) embed YouTube videos simply by cutting and pasting code into a PHP file that generates a web page or even directly into the web page source code. Adding PayPal payment is similar process. Indeed there are many things that can be added to a web site in this simple embeddable way.
- Commercial Mashups: You may have noticed that nothing I’ve mentioned above (whether it works well or not) is actually supported in any meaningful way, unless you directly organize support yourself. There is a website, run by Strike Iron, which provides commercial mashups where support and payment for service is part of the deal. I’ve written about it in depth here.
Taking stock of all this, we can see that there are now many many sources of components that can be used in various ways to assemble a mashed-up environment that blends together capability from almost anywhere on the web. However, I also note that right now the capability is relatively primitive. Most mashups do little more than link to information sources and or provide simple functionality.
My belief is that the most promising capabilities are the web site engines (WordPress, Joomla et al), because they act as highly effective integration points. My expectation is that as richer interface components are developed (i.e. as Web 2.0 matures) the power of these environments will increase.
I’m watching this because I intend to exploit it myself.














What a fantastic overview of all the wonderful Web 2.0 things I can’t talk about with most people I know!! So concise, and yet with so much information. I’m going to refer back to this article at some point, and/or show it to people when trying to explain why I am so obsessed with the goings-on of the web.
[...] The Mashup Landscape: 7 Kinds of Component Love these articles that wrap up a lot of web 2.0 goodness. This one from HaveMacWillBlog (aka Robin Bloor’s Blog) talking about different kinds of mashups and where to find the info about them. Neat (tags: mashup RSS API) [...]
Leave A Reply