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.
Hinchcliffe & Company, a leader in Enterprise Web 2.0, is helping organize the first major East Coast conference on Web 2.0 and the New Internet in the enterprise. Do NOT miss this unique opportunity to learn about the disruptive business influence of the next generation of the Web. Learn how it is creating major challenges and opportunities for organizations around the world. This Web 2.0 blog has arranged for readers to obtain $50 off the standard conference rate. Use promotion code 'dionh' during registration.
Yesterday I wrote an invited response in the Ajax Developer's Journal to Jeffrey Zeldman's off-kilter but widely read (i.e. Slashdotted) take on Web 2.0. In it I claimed Zeldman had way too much focus on Ajax as a Web 2.0 ingredient. All these trips around the proverbial mulberry bush while we are witnessing a rapidly growing greater awareness of all things Web 2.0 in the mainstream. Heck, even CIO Magazine has started talking about Web 2.0, which means its really arrived if they think people up in the rareified air of executive management need to know about it at all.
But I often deempasize Ajax because I think a lot of people equate Ajax with Web 2.0, which just isn't the case. Ajax can be an important plank in Web 2.0-friendly software. It provides a robust, interactive, high-intensity, cross platform user interface in the browser. And it demands Web services in order to function at all (which encourages web sites to make an API out of their service from the get go.) In this way and others, Ajax tends to drive people down the right paths from the beginning. This includes making applications available anywhere at the invocation of a simple URL and a ready-to-use toolkit to create mash-ups (Ajax must have Web services on the back-end, yours or others that you've redirected.) But great Web 2.0 software doesn't require Ajax at all; del.icio.us, for example, which I don't believe has any Ajax.
Anyway, it's easy to forget we have a long way to go in the next generation of the Web. Years and years. As Shel Israel put it so pointedly yesterday, "Web 2.0 isn't dead. It's just barely being born." And smart folks that study the big picture of all this realize seismic things are afoot. That our personal and work lives are being transformed with surprising speed and ease to this new world of pervasive, online, collaborative, aggressively integrated, two-way software. Patrick Cormier recently had some good observations that the old creaky, slow-moving, and unresponsive software of old is going away. It just can't compete with this vibrant, dynamic way of creating, delivering, using, and leveraging software as a service. It's not a new way, as he observes, good software tended always to be built this way, just not so consciously.
But I assert that Ajax encourages, even enables, software creators down a path that is inherently disruptive to the greater software world. Here's why:
Ajax's Disruptive Influences
The End of Software Upgrades, Fixes, and Security Patches: This is one of several major advantages that pervasive software gives you. Since Ajax software delivers an application fresh to your browser each time you load the URL, you're always getting the latest version, with all fixes and updates, automatically. Any back-end software experiences the same seamless upgrades. Traditional native software will never be able to compete with this and people will get very used to never having to update or patch again (often converting their data along the way.)
Software and Data Available Wherever You Go: How many of us are tired of synchronizing their personal, work, and family computers with the latest software and files? I know I am. I love it that great Ajax software like Writely lets me have my software, and all my data, wherever I am at the click of a URL. I can effortlessly share it with others when I want and I never have to spend any of my time copying files to thumb drives, e-mailing things to other accounts, etc. It makes life so much simpler and easy. Traditional software can do some of this, but it's just so much more seamless the Ajax way. And because Ajax apps generally require no installation of software, you can run your apps and get your data anywhere you find a browser: at an Internet kiosk, cafe, library, friends home, etc.
Isolated Software Can't Compete with Connected Software: Ajax software is delivered using the entire Web as a platform. That means it can (with a little proxy on the server, provided by the Ajax developer) talk to and use any service out on the greater Web. This has facilitated a dizzying array of mash-ups. And it means that software created from scratch is going away, as it should. The best software is now highly integratd into the Web and leverages the rich landscape of services that can be found there. Small example: The terrific Web 2.0 start page, NetVibes, now has Writely integration. Never mind more classic examples like Housingmaps, which is an Ajax application that integrates data from two entirely different places on the Web. Stand-alone software can compete in a limited sense here actually, but Ajax encourages and enables this way of thinking by forcing the software developer down the path of using lightweight Web services from the outset.
Deprecation of the Traditional Operating System: It used to be that software was tied to a given operating system, since much software uses a specific OS as a platform. Yes, Java doesn't do this but it falls into the category of being its own platform for this discussion. The issue is that Ajax software is almost completely operating system neutral. Ajax applications use the Web itself as their platform and just need a browser with JavaScript and XmlHttpRequest. And to be sure, some browser compatibility testing must be done, but that will issue will likely only decrease as Ajax development tools provide the browser abstraction automatically. In the end, whether a user is running Windows, Linux, MacOS, or something else entirely doesn't matter. Ajax is even on mobile devices now. This is enormously disruptive to the gigantic operating system industry which generally depends on being the most compelling platform for their target audience. That just isn't the case any more. The Web is that compelling platform for an increasing number of people.
Software That Is Invisible: This is a harder to define one but it's one that I notice personally with Ajax and Web 2.0 applications in general. I just get work done, I don't even notice the software anymore. I'm writing this in an Ajax editor as a matter of fact and one thing I realize is that I never worry about if I have the software installed that I need, whether I have the security permissions, if my data is nearby. All of these concerns slip away and I'm getting done what I need to get done. Increasingly, as I use Flickr, Writely, Google Reader, HipCal, del.icio.us, my web mail client, and others, I just don't even notice they are there just there when I need them. And I'm not spending time maintaining them, installing them, or synchronizing data. Those days are gone and I just don't want to go back. Traditional native software will never compete with this, it's way too high maintenance, low quality, and clunky. That's not to say you can't do abomidable things with Ajax but the Web just routes around the bad implementations. That's much harder with just a few choices for usable native software.
None of this doesn't mean there aren't important issues with Ajax. They are increasingly being solved, but include the need for high-speed, quality connectivity, security and trust concerns, the ability to easily switch providers if your online software provider goes out of business or just starts to suck, and others. But none of them is big enough to outweight the enormous disruptive forces that Ajax brings to bear.
And if you want to see this Ajax software personally, take a look at these lists of Web 2.0 software here and here. Not all are Ajax, but a large number are.
Why do you think Ajax will or won't be one of the biggest software development stories of 2006?
Ivan Spark made this comment,
"The End of Software Upgrades, Fixes, and Security
Patches" - this feature is closer to client-server
technology, not AJAX.
"Ajax software is delivered using the entire Web
as a platform" It's the main feature of Web 2.0,
many of modern internet writers think a lot about
AJAX and it's nearly equal for them the term Web
2.0. This things are not the same.
It's good article, but in many cases i'll better
use Web2.0 instead of AJAX (it's only Asynchronous
Javascript and XML over HTTP, not more).
With best regards, Ivan Spark.
Russian web 2.0 community
I agree with the Ajax != Web 2.0. Simpy doesn't
currently use _any_ Ajax, yet it has various other
elements that people wold call "Web 2.0".
However, some of the above i not 10)% correct.
Ajax doesn't always deliver seamless upgrades.
Pretty much any web application, regardless of its
use of Ajax, provides that, because the bulk of
functionality lives in some data center somewhere.
Also, some purely client applications also have
seamless upgrades - Azureus (popular BitTorrent
client), for instance, does this REALLY well.
Availability of data everywhere - again, this is
not really due to Ajax, as is due to the open APIs
that let outsiders programmatically pull data out
of a service. Here is an example API.
Those who use an API like this may use Ajax in the
UI later, but don't have to use it, and your data
will still be available anywhere you go.
Ah, I see now that your list is actually a list of
Ajax _influences_, which then makes the list
right! :)
Yes, I do agree with all commentors so far.
I certainly realize you can get varying degrees of
these benefits with other Ajax-like technologies.
And I glad commenters are making that point extra
clear.
But Ajax provides these capabilities in a special
way that most (and probably all) of the others
cannot.
1) Ajax requires no extra software, plug-ins, or
support for "special" standards. As long as you
have Javascript, CSS, DHTML, and XmlHttpRequest
you are ready to go. This makes the OS and even
browser a matter of only minor concern for the
developer. And it lets Ajax be the most
pervasive, most available, most portable solution.
2) Yes, APIs and software as a service existed
long before Ajax, but again, what's special about
Ajax is that it channels software creators down
the right path from the beginning. For example,
you MUST have an API to provide an Ajax app
(private or not), and you can put highly-portable,
always up-to-date code either on the server or the
client. This partitioning wasn't desirable except
for relatively unpopular solutions like Java
Applets, until Ajax came along with a solution
that requires nothing extra and relatively tiny,
tight code.
I'm actually not arguing against any of these
points because they are correct. I just wanted to
clarify that I think Ajax has the greatest
potential of all existing techniques for
delivering these advantages.
Thanks much for reading and taking the time to
comment.
Best,
Dion
Are you sure you're talkin about Ajax ?
All the points you've mentioned are about web
applications in general, not Ajax :)
Security patches & Updates: each time you load the
URL, you're always getting the latest version ....
Yeah sure ... because someone is updating the
server side scripts like with any other software,
surely not because Ajax allow the software to
autopatch itself.
As far as I can tell, the only thing that AJAX
brings to the table is that it significantly
improves the user experience by avoiding the round
trips to the server as the user input data that
affect other fields/data on the page.
I agree, mostly. I don't agree that AJAX (or
webservices) is "disruptive" (http://en.wikipedia.
org/wiki/Disruptive_technology). Web services are
simply another piece to the puzzle. Client
software will not go away. There are a lot of
good reasons and situations for a client program
to have all necessary data locally and to not be a
part of a larger system.
Your choise of "disruptive" implies that the old
way of doing things is going to go away. I can
think of several applications on my computer that
I do not want to "grow up" or become web services
(Calculator and Photoshop for example).
Ajax applications doesn't need an API more than
you can say that the application itself is an API
(with GETs/POSTs from the browser). Lots of Ajax
applications doesn't use XML per se. The suite at
37signals is an example of this.
David,
Yes, I would definitely state that the GET/POSTs
back to the server from the browser, as long as
they are data-based and not presentation based
(i.e. not HTML), absolutely represent the
application programming interface (API) of the
Ajax application.
Interestingly, whether that API public or private
actually may not make a real difference since
folks will reverse engineer the good ones. In
other words, if you use Ajax, you tend to have a
public API whether you like it or not.
I agree with you however that lots of Ajax
applications don't use XML, nor should they. In
my recent
open service models article, I stated that
JSON, REST, RSS are likely candidates but there
are many others.
And thanks much for stopping by, I do appreciate
your time.
Best,
Dion
It's my guess that AJAX (in XMLHttpRequest form)
won't be the preferred method of building client
driven web 2.0 apps because of the cross domain
limitations.
JSON using javascript on-demand on the other hand
doesn't have the same cross domain issues.
Example: I created a batch geocoding service using
JSON and Yahoo's new JSON output compatible REST
geocoding service. The requests to Yahoo's service
come straight from the end-user's web browser, so
the 50,000 geocode per IP limit can be applied at
client's IP. I think its a pretty cool example of
things to come: http://www.batchgeocode.com
Cheers!
-Phillip
AJAX is definely != web 2.0
i often see a lot of ppl misunderstand the whole
concept of the web 2.0
they either fall towards the CSS Layout or the
AJAX and use that to define web 2.0. Personally, i
think web 2.0 is like a concept. A new way of web
dev using existing tools. Really, CSS Layout has
been around for years, AJAX, heck, that's been
around since the first time iframe, javascript and
server-side script worked together. Now days, we
have XMLHttpRequest, but the truth is, this has
been around for years also, just nobody really
paid too much attention to it. Until Google's
Gmail, MSN Space, and other big sites start
re-exploring these tools, we start turning heads
and say, hey that's pretty cool.
The tools aren't new, they are just be
re-explored.
The way i like to look at AJAX is thinking of it
as a simple concept. How to apply this concept
into applications is really what ppl should focus
on.
comment added :: 21st January 2006, 15:07 GMT-05
Michael Mahemoff made this comment,
Just posted a link on Ajaxian (http://ajaxian.com/
archives/why-ajax-is-disruptive).
Small note: Delicious does use Ajax for tagging (h
ttp://ajaxian.com/archives/showcase-delicious-sugg
est). Hardly a killer app for them, but nice to
know there's some Ajax even in Delicious :->.
I agree with a few other commenters that these
disruptive features are continuations of
Netscape's early promise to "reduce Windows to a
set of poorly debugged device drivers". More on my
site at http://mike.teczno.com/notes/dion.html.
All the points you make do not apply specifically
to AJAX, but to web pages in general. People have
been calling the web disruptive for years and
especially during the dot-bomb era, for the same
reasons that you list.
Regarding upgrades and patches, the situation is
not as clear cut as you're presenting it. First,
the browser needs increasingly many upgrades and
patches. Second, you have many "rich clients" that
are becoming smarter about updating themselves
silently.
There is a another issue which you haven't
discussed: privacy and lock-in. Web applications
are one step further than desktop apps when it
comes to these.
Yes, it's true, people have said many of these
very same things before about Web-based software.
But I believe that until now it couldn't deliver.
With Ajax, you can now find software that does
almost anything traditional software can do, and
in just as satisfying a way, and usually more.
What I mean is that Ajax applications are the
first Web software that truly feels like the
software we already have, yet live directly from
the Web but require no new technology.
I agree it's a subtle difference and in the end
Web 2.0 techniques like Ajax are synergistic
effects; a whole that is significantly greater
than the parts.
Finally, Julien, your comments are right on but I
would suggest this is a new wave of disruption.
If you're not sure about this, recall Ra
y Ozzie's disruption memo from last year. The
big guys are feeling it as a new force and
responding. Directly because of this, Ajax is one
of the harbringers of this new disruption.
You are also spot on about privacy and lock-in.
This is something I've written about
previously. There will be a backlash this
year if there is a major outage of Web 2.0
software or if a big vendor goes under. If this
happens, provider switching and open data formats
will come to the forefront, as it should.
Finally, I appreciate all the comments, please
keep them coming!
Best,
Dion
I think Ajax is very important for exactly the
reasons you list. I've been working on a software
tool for the next generation of web applications
called YAJAF!.
Interestingly I was thinking of opening up the
framework and solicited feedback on that course of
action. I've gotten almost none. The things you
list seemed obvious to me, but I think I may be
'too close' to it. I don't think people really
realize how important the dynamic web application
really is.
On a related note I think the current generation
of high reliance on "web effects" and radical user
interfaces will pass. The "every application is
completely different" reminds me of the DOS days
of GUI programming. Xerox Parc, Apple, and
Microsoft standardized the interface that we've
all internalized over the years, and the current
"press the glossy bubble with eyes to launch the
application!" seems like a giant step backwards in
terms of usability.
I've been a bit discouraged by the lack of
feedback on my work but I still believe in my
framework and think it's the wave of the future
for Ajax style applications.
comment added :: 24th January 2006, 17:43 GMT-05
Jon made this comment,
I hate to rain on this parade, but I don't
understand how any of the features mentioned were
introduced by Ajax- I could do all of those things
through a regular server postback before new
revelations were announced by people who spend
most of their free time staring into an LCD
monitor.
Now granted I would have had to perform a
post-back (please, don't panic) and had my screen
"refresh", if one can bear to imagine that. I
think AJAX is a very cool thing that improves UE
somewhat and may introduce new types of
applications in the future, but don't see much
more than hype today. Google Maps needs AJAX but
most of today's applications simply do not.
comment added :: 24th January 2006, 23:03 GMT-05
guido made this comment,
One more reason: no one can steal your software if
it runs on your server, anyone can use it for a
small fee, but no one can copy it (unless someone
breaks into the server).
comment added :: 25th January 2006, 05:08 GMT-05
Kirk made this comment,
Nice post and many good points. However This
notion that the world is a completely connect
place is far from reality IME. I have blogged
about my experiences of using Lufthasna's in
flight internet service and it was a good
experience but I would certianly not want it to be
a requirement that I was attached in order to be
able to perform basic tasks.
For the "Wherever You Go", Meebo is going to be
handy, especially if you're at an internet cafe or
something like that... Good thing I have my
passwords memorized ;)
http://www.meebo.com/
For the "Wherever You Go", Meebo is going to be
handy, especially if you're at an internet cafe or
something like that... Good thing I have my
passwords memorized ;)
http://www.meebo.com/
You can reach me at: email: dion (at) hinchcliffeandco (dot) com Skype/AIM: dhinchcliffe
This blog is created and maintained by the author of the page and in no way associated with SYS-CON Media or Web Services Journal. The author of the blog assumes all liability and responsibility personally for the content of the page.
www.blog-n-play.com is a registered trademark (78553120) of SYS-CON Media.