Firefox Extensions and AJAX - A Model for Web 2.0?
Let's face it, cross site AJAX is a real pain. If you're going to provide your components as a service, sort of like Google maps, you're task is not impossible yet still challenging. If you want to mash up your app with other services at the browser level, you've got to proxy those services. Put any way, it's a pain. How to simplify creating truly powerful, cross-site AJAX apps?
Greasemonkey showed the way, demonstrating how you could manipulate pages with Javascript. Book Burro was one of the first AJAX/Greasemonkey hybrids that allowed you to search for a book at your favorite online book merchant, then click on a semi-transparent drop down menu and see book prices at competing retailers. The magic of AJAX! Book Burro has since made the transition from Greasemonkey script to Firefox extension in its own right.
Another example of this curious Firefox Extension/AJAX hybrid caught my eye the other day: MyStickies. This extension will allow you to insert AJAX-DIV stickies onto any web page. The extension handles this insertion and also includes a Javascript library via a Javascript file from mystickies.com and another via chrome://mystickies/ for the behavior.
The sticky location is persisted to the mystickies site where you can also use a webapp to search, manage, etc., your stickies. It's a direct manipulation bookmark that doesn't reside just on your local computer.
Now I happen to think mystickies is pretty cool, especially if they implement some of the features on their roadmaps, like sticky sharing (how web2.0!). But what interests me here is the application architecture. Firefox Extension plus AJAX = a service that can be applied across other web sites. There is clearly a limit to this opportunity -- you have to really like a service and truly, how many of us are willing to keep 20 extensions running, each of which hogs a piece of browser toolbar realestate? Many of these players are already planning IE, Safari and Opera ports.
What shall we call this thing? Browser Extensions and AJAX? BEJAX?

Flash is another example of that. You can use that browser extension to allow some more advanced cross site interactions. The advantage is that it is generic, so that you don't need a new extension to enable each new integration that you want to support.
http://blog.monstuff.com/FlashXMLHttpRequest
Posted by: Julien Couvreur | July 13, 2006 at 01:58 PM
I like the fact the BEJAX looks like it should be pronounced "BEE-jacks". It sounds like "what comes after AY-jacks" (thus leading us to wonder what SEJAX will be).
Posted by: Kai MacTane | July 13, 2006 at 02:07 PM
Although FF Extensions make configuration easier, something like MyStickies could be done completely in UserJS/Greasemonkey. As an aside, this service better have plenty of bandwidth since their server is gonna be hit everytime any of their users visits ANY web page!
Posted by: Stephen Clay | July 15, 2006 at 04:14 PM
Look further ahead beyond the technology and see the vision of giving users the flexibility of client-side structured data manipulation:
http://people.csail.mit.edu/dfhuynh/research/papers/uist2006-augmenting-web-sites.mov
"Manipulating web pages" goes much further than just tweaking the DOM a little. More power can be given to the users if the web pages' data retains its original semantics.
Posted by: David Huynh | July 25, 2006 at 09:08 AM
I hope this whole (X)HTML/CSS/DOM/JavaScript/Ajax crap is one day replaced with real architecture that is elegant, effective, consistent accross platforms, secure, easy to program. Something like RCP efforts from Eclipse or similar. Web pages will be for the static content, but for dynamic applications there will be real thin application framework.
Posted by: Jeremy | November 21, 2007 at 06:57 AM
I agree with Jeremy, that would be great if someday all WEB Languages were replaced with one. http://www.internetsolutionsireland.com/
Posted by: WebsiteDesignIreland | February 28, 2008 at 05:31 PM
Hi, I know that pain as well! It's difficult to create cross-browser ajax apps working in different environments! :( Thanks for author!
Posted by: Strony Internetowe | March 25, 2008 at 04:55 AM
As you said, whole (X)HTML/CSS/DOM/JavaScript/Ajax crap... Good words. I agree. We need something new, effective and durable.
Posted by: Office Clearance London | April 17, 2008 at 04:39 PM