Dion Hinchcliffe's Web 2.0 Blog
Web 2.0 University

Blog Feed

Subscribe By E-Mail

Enter your email address:

Delivered by FeedBurner



Web 2.0 Expo San Francisco 2008 Speaker

Enterprise 2.0 Conference 2008 Speaker

Web 2.0 Strategies 2008 Speaker

    follow me

    Dion's Facebook Status

    Recent Readers

    Web 2.0 Ajax SOA Power Panel

    Web 2.0, Ajax and SOA Power Panel with Dion Hinchcliffe and Jeremy Geelan
    Click above to watch a SYS-CON Power Panel discussion on Web 2.0, Ajax, and SOA with Dion Hinchcliffe, Jeremy Geelan, and other industry notables including SOA Web Services Journal Editor-in-Chief, Sean Rhody. Taped on Dec 7th, 2005 from the Reuter's TV studio in Times Square.

     

    Public Calendar

    Web 2.0 Design: The Ajax Spectrum

    posted Wednesday, 8 February 2006
    Yesterday I had the pleasure of talking with key people from two Ajax providers, TIBCO General Interface's Kevin Hakman and Zapatec Ajax Suite's Dror Matalan.  Each company has two quite different approaches to designing Ajax-enabled software and it highlighted an increasingly clear divide in the way that people are thinking about online software.  In these early days of Web 2.0, the best methods of building applications are still more art than science.  But as the Ajax development tools mature they are falling into two general approaches that have far reaching ramifications for Web 2.0 software design, reuse, and adoption.  Since these tools make architectural choices that can cut different ways with long-term effect, it means Web 2.0 software designers have to some weighty choices to make before they decide how to proceed.

    One thing is clear from these tools though, Ajax has come into its own in 2006. More and more people are recognizing that it forms a true software platform for the Web.  To demonstrate what's possible, the more mature Ajax toolkits, like General Interface, are actually entirely constructed in Ajax themselves.  Thus Ajax is far more than an approach to Web user interaces; it's a complete software environment, something more akin to a Windows or Linux though far lighter.

    Beyond the simple DHTML wizardry that allows an Ajax Web page to change in real-time before your eyes without reloading, Ajax has the ability to reach out and collect data from Web services (via server proxy).  And it can help weave the results from multiple sources into composite software that folks are calling mashups.  The whole mashup phenomenon heavily favors Ajax because of the power of JavaScript and XSLT allow the lightweight fusion of information right in the browser, making an Ajax application a sum greater than it's parts.  This is partially what is meant by the Web 2.0 concept of software above the level of a single device.

    For these reasons and others, Ajax provides key capabilities that Web 2.0 software needs.  But depending on what you're trying to accomplish, you'll need select the right Ajax approach, and that's still the tough part.  Web 2.0 isn't about technology in the end, but you will need it to build the software and you'll want tools that guide you down the right path.

    The Spectrum of Ajax Approaches


    As I spoke to Kevin and Dror yesterday it became clear to me that the approaches to Ajax are increasingly falling into two ends of a continuous spectrum.  On one end we have full, self-contained frameworks that provide an integrated, and enclosing, solution and on the other there are lightweight Ajax pieces that can be included and woven together with other pieces.  One of the Web 2.0 memes is small pieces, loosely joined, and this makes deciding between the comprehensive approach that General Interface, Atlas, or Backbase provide - versus more blendable solutions - a key pivot point in the design process.

    Kevin Hackman, co-founder of General Interface, has himself has written about the trade-offs in the different approaches to using Ajax in The Four "Quantum States" of Ajax and he cited it in our conversation yesterday.  But as I discussed the merits of Zapatek's newly announced Ajax Suite with company president Dror Matalan, he made it clear he believed that providing granularity and choice to developers was one of the biggest strengths of his product.  Dror said his tools "go deep" but don't levy a complexity tax or vendor lock-in and can easily co-exist with other pieces.

    Of course, different applications have different requirements.  The larger Ajax tools will favor those who want a more traditional monolothic view of software or need more plumbing and infrastructure to connect to legacy systems, particularly behind the firewall.  The smaller, more agile and inclusive Ajax approaches like script.aculo.us and Dojo will no doubt be much more popular on the greater World-Wide Web.  I expect that public Web 2.0 software in particular will become an increasingly sophisticated yet loosely-coupled blend of snippets and lightweight Javascript libraries.  Tools that don't enable this, much less support it, will probably have a harder time if they pose any barrier to adding compelling features to software. 

    And as people increasingly pick up on the vibrancy and utility of the mashups world, and we figure out better ways to locate them when we need them, the demand for software that is more malleable and easily changeable is going to increase.  And here's the kicker: Web 2.0 software elements that can be recombined with a simple JavaScript include, like Google Maps, will succeed much more readily in this new remix culture over those that don't.  Any solution that precludes such frictionless participation and reuse will just have an increasingly hard time getting marketshare.  If there's one thing that we've learned in the last couple of years is that we should expect and encourage unintended uses.

    Where do you think it's going?  Small pieces that are quickly and easily composable, or sophisticated solutions that do everything?

    Another sidenote:  We're urgently seeking commercial Ajax authors for an exciting short-term project.  Contact me for more details.

    links: del.icio.us    



    AddThis Social Bookmark Button

    1. Cal Evans left...
    Thursday, 9 February 2006 9:26 am :: http://blog.calevans.com

    Personally, I believe that the future is divided. I have a large body of web code that I do not want to re-write using a large monolithic framework. I've been playing with prototype and scriptaculous to add interactivity and 'whiz-bang' to some of my pages.

    Long-term though, as new developers come on the scene that do not have a large body of code to support and start building their own, I believe they will start building using one of the frameworks simply because they can get done faster.

    IMHO, etc...

    =C=

    http://blog.calevans.com


    2. Mark Birbeck left...
    Thursday, 9 February 2006 3:51 pm :: http://internet-apps.blogspot.com/

    But the spectrum starts from the assumption that 'dynamic HTML in the browser' is the only tool. Another approach is to actually extend the HTML language with tags that reflect our 'new' needs--the things we've all come to expect from modern web apps. The W3C's XForms langauge adds help and hint for example, which are things we need in many web applications. But we need them to be accessible and to be able to cope with internationalisation, hence mark-up is better than script. The XForms language also includes submission which does more in one line of mark-up than you can do in a JavaScript library. (It can handle REST, SOAP, local files, email, and so on.)

    So, none of this is to knock JS libraries, but more to say that there is more to rich web applications (what I would call 'Ajax' apps) than script.


    3. Dion Hinchcliffe left...
    Thursday, 9 February 2006 6:34 pm :: http://web2.wsj2.com

    Mark,

    Thanks for taking the time to comment.

    I'm definitely exicted by the prospect of XForms and I will continue to track it but Ajax is here today.

    What would you tell folks specifically to do right now that need to choose between XForms or Ajax?

    Best,

    Dion


    4. Mark Birbeck left...
    Saturday, 11 February 2006 9:18 am

    Hi Dion,

    Thanks for responding to my comment, and on re-reading it I realise I didn't quite make the point I wanted to! I'll try again. (Also, a few days before my comment, I discussed the topic a little more clearly in my blog.)

    I think it is clear that XForms is as 'here today' as Ajax--that's not really a debate. My point was not meant to be that it is 'better' than Ajax since there are many factors to consider when choosing any language or framework. I was saying rather that XForms implements Ajax, just like Prototype or Tibco does, and so XForms is actually on the Ajax spectrum that you were summarising. (My little video of an XForms Flickr Search with a slider that resizes the images as you drag, might give you a sense of where we're at. :) )

    This means that just as a programmer will need to make some tough decisions as to target audience, deployment, ease of maintenance, and so on when choosing whether to code for Dojo or Backbase, so too they can apply the same decision-making process to the choice between using script or mark-up.

    I won't pretend I'm not partisan, since it is obvious to me that using mark-up to capture some task is always going to be easier than script. (If anyone doubts that, just watch out for XAML over the next few years.) Therefore, if you are lucky enough to be in a position where you can insist on IE6 or FF1.5, and you can get your users to install an XForms plug-in, then you can use XForms today.

    But the fact that this installation requirement will rule out XForms for a lot of developers isn't really any different to the fact that some other requirement will rule out Prototype for one developer, and moo.fx for another. And we shouldn't forget that many of today's better Web 2.0 sites are already requiring the latest browsers...things never stand still!

    Anyway, part of the reason I say all of this because in my view the best way to see 'Ajax' is as an approach to building web applications, rather than a prescriptive set of technologies. To me it's about making use of web architecture and some of its paradigms to build the next generation of applications. And when I say 'applications', I mean both web applications and desktop applications, since the lines between them will increasingly blur. (I've written about this on my blog, and shortly, a new release of Sidewinder, our Semantic Web browser, will show even more clearly the power of an application language that uses XHTML, XForms and SVG.)

    But another reason I put XForms on the Ajax spectrum is because the initial motivation for it was to exactly address the issues that the Ajax world is grappling with today. Many of the problems that come up in various Ajax sites and discussions--like working disconnected, saving locally, accessibility, interacting with servers that are in a different domain to the current document, targeting many devices, validation, standardisation of event names, standardisation of controls and their behaviour, loss of semantic information due to having to code against empty divs all the time, etc.--are ones that have been discussed and often solved within the XForms framework.

    So to get the balance right, I'm not saying that XForms has all the answers. But what I am saying is that many of the Ajax innovators I read know that there are problems ahead for JS frameworks, and I do believe that they would benefit from looking at the work we have done with XForms.

    But at the same time, I know 110% that anyone interested in XForms must pay attention to Ajax. Partly because it's amongst Ajax programmers that the problems we all need to solve are being posed most clearly (in particular at the impressive AjaxPatterns.org), but also because it's Ajax programmers that are taking what we expect from applications to a new level.

    (And it's true to say in passing, that the standards bodies don't have the monopoly on 'theory'; there are some exciting paradigms being posed, particularly around eventing and apsects over at Dojo, that are very impressive.)

    Anyway, Dion, thanks for providing one of those places in which such debates can take place!

    All the best,

    Mark


    5. Dion Hinchcliffe left...
    Sunday, 12 February 2006 10:42 am :: http://web2.wsj2.com

    Mark,

    Thanks for your thoughtful post, I think you did an impressive job capturing where XForms lies with respect to Ajax.

    Unfortunately, one of the beauties of Ajax is that it requires nothing more than you can find in any current version of a well-known browser. This means it has the greatest common denominator that matters most: easy reach to the largest user base possible.

    While XForms to Ajax translators might actually solve this problem (if such a thing exists), native processing XForm using a plug-in is a non-starter for the casual users. This is probably not the case for enterprise users if there is a compelling value proposition, and this is where I'd like you jump in and highlight.

    Why should an organization be interested in XForms vs. Ajax today? What are the key decision points?

    Best,

    Dion


    6. Harry Pierson left...
    Monday, 13 February 2006 8:16 pm :: http://devhawk.net

    I blogged a response to this post at http://devhawk.net/2006/02/14/Thoughts+On+The+AJAX+Toolkit+Spectrum.aspx.


    7. Mark Seaborne left...
    Friday, 17 February 2006 10:16 am :: http://www.origoservices.com

    Hi Dion,

    I would like to respond to the points you make in answer to Mark Birbeck's post.

    Firstly, you are right that XForms offers a lot at enterprise level. I work for a vertical industry standards body in the UK. We develop XML b-to-b messages for the life & pensions industry, and we recently started shipping XForms as part of our standard set of deliverables.

    We find that XForms compliments the XML schemas that we publish, because we can define (using unambiguous, declarative markup) dependency rules (element x is only mandatory when attribute y has a value of 'true', kinds of thing) that WXS wasn't designed to handle.

    XForms defines how a processor combines schema and the XForms constraints we define to validate an XML instance. Obviously it also allows us to build a UI to present validity information, etc to a user. So we get interactive documentation that developers can use to validate the XML they are working with.

    Building the forms is a largely automated process driven by sets of XSLT stylesheets. The form builder is able to apply predefined business logic, presentation logic and styling options in a number of combinations (we are using Eclipse based tools to run the process).

    We are now starting to see companies who want to take the XForms we produce and layer in their own business logic by defining their own XForms constraints, etc and perhaps their own presentation layer.

    At the moment it seems likely that they will end up just deploying the XForms as XForms, but there are instances in the insurance industry where XForms are translated servier-side into something else for presentation for the user. The fact that XForms is declarative and that rules are defined only against data structures helps greatly if you do want to tranlate.

    The point you make about translating XForms into Ajax is interesting in light of this. It does already happen, but even more interestingly there is at least one implementation of XForms written in Ajax (FormFaces), so XForms will run where-ever Ajax will run.

    In summary:

    Organisations are interested in XForms today because it offers the ability to encode business logic as declarative statements about the data flowing through their business processes. They can layer presentation logic and styling over this relatively cleanly and simply. Crucially XForms doesn't force organisations down particular deployment routes or presentation modalities (I saw an implementation last year that was as happy to talk to the end user as show itself through a GUI.)

    So maybe it is misleading to pose the question XForms or Ajax, but more useful to examine how they can complement each other?

    All the best

    Mark


    8. Veetro left...
    Wednesday, 12 July 2006 10:35 pm

    Web 2.0 Design competition now live at: http://www.veetro.com/Competition.aspx


    9. Chris left...
    Tuesday, 7 November 2006 9:35 am :: http://onwall.org

    I’ve taken a quick look at your postings, which are very interesting. Lots of material and ideas! Congrats on being so focused!


    10. Murtish left...
    Friday, 9 May 2008 9:38 am :: http://www.fromorganic.com

    Hi Dion, Ajax is doing even better nowadays. I have seen few nice blog templates powered by Ajax perfectly. It's your vision to post this topic in 2006! I will keep following your blog!