Making the Most of the Web: Creating Great Mashups

I enjoy visiting John Musser's ProgrammableWeb several times a week to see what new mashups and new APIs have been added to the Web recently. The informative sparklines on the ProgrammableWeb main page tell us the whole story. The problem of course, is that the APIs and ad hoc mashups are appearing fairly steadily, but capable tools for creating new mashups still seem lacking. The promise is there, but the tool support is not and so developers resort to wiring things together by hacking Javascript in the browser or using their favorite server-side toolkit. And thus we get the toy, mostly one-feature mashups seen up until now. 

Actually, this brings us to the first issue when it comes to creating mashups; namely the two main types of mashups. Most people having been focusing on the Google Maps style mashup in the browser, where data and code are all combined together in a Web page, using simple Javascript includes.

But it's also possible, and actually desirable in many cases, to do the work on the server, since the programming infrastructure there is much deeper and more powerful, though lamentably heavyweight. The one surprising advantage of the browser development model however is that its very constraints force ingenuinity; the relentless search for simple solutions to complex problems as well as radical expediency. This has brought the world not only the potential of Ajax but also amazing things like TrimQuery, a complete in-browser SQL database in a few hundred lines of code. Despite this, the server-side mashup approach has led to fairly advanced self-service approaches for creating mashups like Ning and others (and please send me any new ones that you know of.)

But the advantage of in-browser mashups is the complete portability and mobility they offer. When done with a little care, powerful integration scenarios, even enterprise-class integration, can be achieved simply by sending some properly crafted Javascript to a browser using a simple one-line URL. Certainly companies like Kapow have been leveraging scenarios like this and providing solid tools. But I still worry it's all too difficult for many integration scenarios. Why? Google Maps mashups are so common because they're so easy to create. This is just like any good Web 2.0 Web site: Radically low-barriers to use and adoption provides, you guessed it, much higher use and adoption (provided your service does something useful of course.)

How do we bring this ease of creation to the rest of the non-Google Maps mashup world? Surprisingly, the answers might come from examples set by the likes of IBM, which has a new user-driven mashup creator called QEDwiki that:

The idea behind QEDwiki, which stands for quick and easily done wiki, is that businesspeople can create their own Web pages by dragging and dropping components onto a pallet, Smith said. For example, a businessperson could build a "dashboard" to see how weather is affecting sales at retail outlets. By aggregating information from public Web sites, such as mapping and weather services, he or she could assemble a very useful, if simple, content-driven application, Smith said.

This makes me think of a similar software development phenomenon a few years back. As much as I was never a huge fan of the earlier versions of Visual Basic, they did one important thing right. They made it easy for even novice programmers to quickly create useful business applications from various back-end databases. And while enterprise mashups are a whole different scenario, and my previously discussed mashup and Global SOA notions are a fascinating adjunct, none of this will matter until the right tools come. Fortunately, I think help is on the way and I'm already seeing indications that this is going to be an active and important product space in the near future.

Good Mashup Tutorials and How-Tos:

Programmable Web:  How To Make Your Own Web Mashup
Dan Theurer: How To Build a Maps Mashup
Geocoding Tutorial: How To Build A Google Mashup
Mashup Tricks: How To Make Browsers Contact Web Services Across Domains
Example Web Mashup with Ruby on Rails: JobMapper
Mashups 101: Virtual Earth Map Control and Ajax
Screencast: Drupal Mashup Machine
Advanced: Mashing Up The Infoworld Explorer | Jon Udell

Important Note: I am doing a detailed round-up of all known mashup tools, client-side and browser-side both.  Please send me any mashup tools you know of

0 ratings
Aiden Reynolds
Aiden Reynolds
Aiden Reynolds is a content editor at WEB 2.0 JOURNAL. He was born and raised in New York, and has been interested in computer and technology since he was a child. He is also a hobbyist of artificial intelligence. Reynolds is known for his hard work ethic. He often puts in long hours at the office, and is always looking for new ways to improve his writing and reviewing skills. Despite his busy schedule, he still makes time for his interests, such as playing video games. In his free time, Reynolds enjoys spending time with his wife and two young children. He is also an active member of the community, and frequently volunteers his time to help out with local events.