The Evolution of Mashup Development – From Hacking to Assembling

Standard

The current trends are more that business users gets more abilities to solve their own problems and for programmers to give the business users the tools to do so. There are some tools like this already that are very popular (see Explaining Enterprise Mashups), but we have only seen the start of this development. These trends will change the roles for both programmers and business users in fundamental ways and it is interesting to see how that could play out. This is one likely scenario of what will happen during the next couple of years.

Yesterday
Programmers were building applications and integrations by programming. There were very little finished modules to reuse and combine, so a lot of logic had to be written from scratch (most talk about code reuse is nothing but talk). This was not only Mainframes and Cobol, but also a lot of Java, C++ on Windows and Solaris etc.

Now

Programmers building applications using ready made modules. These modules might be full applications, libraries or, in some cases, widgets. This means that less logic needs to be written from scratch (Apache Jakarta projects have changed the lifes of most Java programmers for example).

In 1-3 years (early adopter geeks today)
Programmers and early adopter business users are assembling solutions using ready made components. These solutions are called mashups today, but are probably not going to have that name in a few years, instead the “mashup style” of solution development are going to have become mainstream and be a natural part of applications (just see how mashups are built with Facebook Applications today). The components are widgets that have been developed by programmers to function as building blocks in bigger solutions.

In 3+ years
Business users are assembling solutions, programmers are building widgets.

From Hacking to Assembling
Of course there will always be programmers that are programming low level solutions like kernels and compilers (at least those are low level to me) and business users that just want their problems solved without them having to deal with any technology. But overall the focus for programmers will go from building the solution to building the building blocks (aka widgets). For business users the focus will go from waiting for a program that solves their problem to be developed to being able to assemble a solution (aka mashup) that will address their problem. Overall the focus will move from hacking to assembling.

Great Tools for Business Users Needed
This means that business users need to be more aware of what building blocks are available. Currently there are a few early attempts to develop systems to handle this – IBM’s Mashup Hub is a good example. Furthermore there is a need for easy to use systems for business users to combine all those widgets. This is probably the hottest area in mashups right now, with everyone wanting to be in on this – BEA Pages, IBM QEDWiki, PageFlakes and iGoogle to just mention a few. But so far it has been with very limited success and just a little more than proofs of concepts or cool AJAX playgrounds. Let’s see what will happen in 2008, I for one if looking forward to seeing new cool innovative solutions to these problems.

Overview of Mashups – Concepts, Technologies and what it all means (my JavaOne presentation)

Standard

Sun has now uploaded the transcripts and audio from my JavaOne presentation about Mashups earlier this month. Both the PDF of the presentation, the audio and the transcript can now be found at the SDN’s JavaOne site. You need to be a member of the Sun Developer Network (SDN) to see it, but membership is free so don’t let that stop you.

The official title of the presentation is “Integration Gets All Mashed Up – Bridging Web 1.0 and Web 2.0 Applications”, and it is an overview of what mashups are, what technologies are involved and how the different components fit together inside a mashup. It was a lot of work getting the presentation together, but it was well worth it since I got a lot of good feedback from people (thanks to eveybody that came and heard me speak!).

The presentation starts out with the standard (= Wikipedia) definition of mashups and then move on to describing the enabling technologies such as REST, JSON, Atom and RSS. Of course all this is from a Java perspecive since it is after all a JavaOne presentation. Next are the components of a mashup such as Mashup Builders, Widgets, Mashup Enablers and how they all fit together.

Inside a Mashup

Next I describe the the mashup programming model, which is a lightweight programming model that means that the focus is on assembling and not coding. In the end I highlight what it means to be a developer in a mashup world.

If you are in too much a hurry to go through the presentation I can give you the summary right here:

  • Mashups are all about
    • Building a situational application ad hoc
    • Reuse and remix both data and funcitonality
  • Using Mashups means that
    • You can do more in less time
    • You don’t have to reinvent the wheel
    • You are not in total control of how your applications and data will be used

If you are interested in Mashups I hope that this presentation will give you a good overview. Please take a look and a listen and let me know what you think!