Tuesday, June 20, 2006

Top 4 JavaScript libraries

Around 1.5B people are talking about the World Cup in these days. Despite the bad game that Italy played against the US last Saturday I'm glad to see many of you cheering for Italy on Thursday to beat the Czech Republic so that US can make it to the second round.

But enough about futbol... for now...

Dan Webb has written an article on what he considers, rightfully so, the top 4 JavaScript libraries:
1) Dojo
2) Prototype
3) Mochikit
4) Yahoo UI library

To see which one wins you'll have to watch all the games, ehm...., read the whole article but he has some good points:

  • Prototype is the most comprehensively documented library and probably widespread
  • Prototype offers a wealth of add-on libraries such as scriptaculous, Rico and Behaviour
  • For smaller projects, the decoupled design and fully-featured components of YUI may well be a big plus
  • Dojo is the daddy of the bunch... focus on performance, ... Widget implementation has enormous potential for building complex Uis
  • Mochikit is by far the most well designed and well though out of the four but documentation is a bit thin

Friday, March 24, 2006

What do you need to do today to take advantage of the Web 2.0 tomorrow?

Companies with an Internet presence must acknowledge the fact that the web is changing rapidly. The term Web 2.0 was coined to express this fact. Many people agree that the changes are mostly cultural and social in nature, not necessarily technical. Nevertheless, certain technical aspects are included in most definitions. Among the technical characteristics of the Web 2.0 are

  1. rich internet applications with Ajax,
  2. user-generated content, the blogosphere with phenomenons such as consumer-generated content, social networking and social marketing, or folksonomies
  3. mashups - web applications that combine data and services from different sources to form new functionality,

All of these things are related to each other and they affect the way people use the Web in a combined way. Therefore, they affect you and your business. Ajax and the Web 2.0 has until now mostly kept geeks and Internet professionals on their toes, but few businesses have started to adopt the new trends. I believe that we are at a very early stage of something new and that the rate of adoption will increase rapidly over the next few months.

I absolutely think every organization that needs to keep their fingers on the pulse of the public needs a way to mine/monitor consumer generated content. The government included. (Steve Rubel, Marketing Strategist)

So, what should you be doing to be prepared? Let's take a brief look at each one of the technical trends that collectively form the Web 2.0.

Ajax and Rich Internet Applications

Rich Internet applications and widgets can either enhance the user experience of traditional page-oriented web sites, or replace them completely. Users are becoming more accustomed to finding interactive pages and will have less difficulty mastering the shift of metaphors between RIA applications and HTML pages in the future.

This is an opportunity for web designers to enhance existing applications with features such as auto-completion and validation-as-you-type for data entry forms, single-page functionality and configuration wizzards. Interesting and very effective data filtering and search applications can be built with this technology. There are already many existing examples out there.

Here is a word of caution. It is all too easy to go overboard with interactive features. Do not convert existing funtionality unless there is a good reason. Use Yahoo's design pattern library to validate your approach.

User-generated Content

User-generated content, in my opinion, is the biggest opportunity that the Web 2.0 brings to you. It all started with users reviewing and commenting on products on sites like amazon.com and epinions.com. Today, blogs and Web 2.0 related services such as social bookmarking sites are forming a sizeable piece of the web. Marketing experts have recognized this trend a while ago and have started to adopt it. Social marketing on the web is becoming an increasing part of the much larger trend of word-of-mouth marketing, which leads firms away from traditional channels such as radio and TV advertising.

Let's look at some early adopters in order to better understand how you can benefit from this trend and use it to generate traffic on your site. The basic recipe seems to be: generate attention within the blogger community, utilitze Web 2.0 infastructure such as blog search sites and social bookmarking sites by providing basic integration with these services, and let the community drive traffic to your site. Recent examples include the Most Blogged on the New York Times web site, or the ability to tag individual articles through an integration with Del.icio.us on the Washington Post's site.


The value of services on the web was determined in the past by the underlying data more than by functionality. I believe, for example, that Googl's map service rose to popularity so quickly not because of the ability to scroll and pan maps dynamically (many people still do not know that this functionality exists), but because of the quality of the maps and the aerial imagery. By combining data that powers different service providers into a single new offering, even more valuable services can be created. This is the idea behind the wave of mashups. The programmableweb.com maintains a reference matrix by pairing existing services with each other and documenting where such a combination has been built.

It is not fully clear if and how this trend will impact business sites. On one hand, there is much uncertainty about the legal grounds on which data from various sources is combined (most of the sites that appear in the programmableweb's matrix are experimental and non-commercial). Google, for instance, is selective about who gets permission to use data from their infrastructure. Some site have been excluded from accessing Google in the past.
On the other hand, there is so much potential for driving traffic and creating revenue with this technology. New business models have yet to emerge to show the way how this can be done most effectively.

Read about my thoughts about how the Web 2.0 affects the business of web consulting at Donner's Daily Dose of Drama.

Wednesday, March 15, 2006

Ajax seminar in NYC notes

On Monday March 13th two colleagues of mine, Glenn and Christian attended an Ajax Seminar in NYC. They wrote up some notes with their impressions:

Some background: Ajax is not really a new technology. Instead, it's a collection of older technologies (late 90s-early 00s - JavaScript, CSS, DHTML, XML, etc) that are being combined together in a new way -- to produce an "asynchronous" browsing experience.

Put simply, the end result of using these technologies in the Ajax-fashion is that users can interact with a web page, and that web page can update small sections of itself without doing a full "browser refresh".

This was the first conference focused on Ajax, and there was an air of skepticism mixed with excitement. The range of presenters was diverse, discussing high-level UI design, detailed UI design, and a number of different technical approaches (some contradicting each-other).


The vibe from a User Experience perspective was that this technology allows technical capabilities on par with Flash/Flex, in terms of immediate responses, page activity occurring in the background, slick use of visual effects, transitions, etc.

One constant was the caution of not using Ajax just for the sake of it -- focus it primarily on high-interactivity areas.

The following presentations focused on the User Experience:

* Jesse James Garrett (Adaptive Path) coined the acronym AJAX ("Asynchronous Java and XML") to come up with a vocabulary word to encapsulate this combination and usage of technologies.

Jesse spoke on how Ajax changes the classic request-response web paradigm into one of constant, multi-threaded, asynchronous interaction, which opens new doors in terms of how users can interact with the web.

His original essay on Ajax is along the same lines.

* Bill Scott (Yahoo) spoke at length about UI patterns, which "describe an optimal solution to a common problem within a specific context".

He showed us Yahoo's new UE design pattern library, which attempts to concisely describe UI patterns such as:

- Auto-Complete
- Breadcrumbs
- Drag and Drop Modules
- Navigation Tabs
- Pagination
- Ratings

These are very detailed, and I'd think would be of interest to both UEs and Engineers in terms of functional requirements -- look here for an example.

Bill's blog can be found at http://looksgoodworkswell.blogspot.com/ .


Most of the other presentations were more technically-focused.

In the technical Ajax community, there an interesting divergence in opinion regarding what exactly should come across the XMLHTTPRequest pipe -- Model data, or View data.

* Kevin Hakman (TIBCO/General Interface/Perficient) gave us a sales pitch that described TIBCO's "General Interface" offering. This software allows users to visually construct a user interface which is ultimately rendered as a very fat JavaScript client.

They advocate using the request pipe purely to transact XML model data, and to build the entire MVC framework in JavaScript in the Web Browser.

* David Heinemeier Hansson (37signals), the creator of Ruby on Rails (!!!), begged to differ -- his approach of using Ruby on Rails with Prototype (a browser abstractor) and Scriptaculous (a DHTML scripting library) results in the web browser acting more or less like a frame-set and tile-set, with the server passing exclusively HTML snippets over the pipe.

David's approach has a number of advantages (lightweight client, memory leak avoidance, lower latency, generally improved performance, security, architectural elegance, etc.), but particularly interesting was that his demo would automatically function in a basic (fallback) mode if JavaScript is disabled. This would be tremendously important for sites that must adhere to accessibility standards.

* Rob Gonda, Editor-in-Chief of AJAX Developer's Journal and CTO of iChameleon, gave a rather dry presentation that essentially agreed with David's approach (transmit the View, not the Model) for other reasons -- specifically, security. Rob discussed a number of ways to address security concerns with Ajax technologies.

Our takeaway from this Model vs. View topic was that the Hansson/Gonda approach of sending only HTML View data over the XMLHTTPRequest should be used unless your client has specific needs necessitating an extremely heavyweight client.

Most of the rest of the presentations were sales-oriented, including:

* Christophe Coenraets (Adobe) showing how Flex can extend Ajax. The highlights were:

1.) Flex server is now free
2.) Using Flash/Flex events/sockets to send binary data around is useful (i.e. browser-to-browser streaming webcam video, for example for a CSR app)
3.) Using Flash/Flex events/sockets to PUSH data to the client is powerful

A particularly cool demo showed how one user's browser action could instantaneously affect the screen of another user. (David Hansson followed up on this and showed it working in conjunction with Rails). PUSH technology is coming back!

A number of presenters discussed Ajax toolkits / frameworks - there's a ton of competition for this space, and no real leaders as of yet (except Atlas for .NET)

* Sahil Malik showed telerik's R.A.D. Controls module, which essentially allows you to easily change .NET Postbacks into AJAX Callbacks, preserving the ViewState and all that. Interesting for .NET AJAX developers (not sure how it plays with Atlas)

* Scott Dietzen (Zimbra, formerly an exec at BEA) tried to sell us on Zimbra's "open source server and client technology for next-generation enterprise messaging and collaboration" (which uses Ajax heavily).

* Ross Dargahi (IBM) talked a bit about IBM Alphaworks (Apache)'s Ajax toolkit options, including Eclipse ATF (Ajax Toolkit Framework) proposal and Apache Kabuki (http://wiki.apache.org/incubator/KabukiProposal).

Seems like neither of these are officially out yet, but they were showing demos so I bet the alphas/betas are available.

* Jouk Pleiter (Backbase) talked about his company's toolkit / framework - http://www.backbase.com/ .


Some other quick tech takeaways:

* JavaScript is bad - use other technologies to abstract yourself from it

* You can never fully abstract yourself from JavaScript -- you will have to write some.

* Browsers were not meant to be Ajax platforms. Memory leaks are a real problem, especially in IE.

* Everyone grudgingly respected Microsoft's Atlas Ajax toolkit.

* Testing Ajax (unit or performance) is hard. No software framework has emerged as a leader yet.

Overall, the seminar was very exciting. It seem inevitable that Ajax will work its way into the web and our work at Molecular, once our clients start losing ground to their more innovative competitors.

It definitely opens up new doors for what can be done on the web -- it will be interesting to see what people can dream up.

I don't necessarily agree with the
JavaScript is bad
quote but it's just another way of saying: use frameworks as much as possible!

Technorati tags: , ,

Monday, January 30, 2006

No justice for Java

I was reading this article on Ajax today and overall I was pretty much agreeing on the topics covered.

It talks about how a lot of vendors are adding "Ajax" capabilities to their development tools/ide, and of course how the 3 major product companies (MS, IBM, Sun) are promoting their own frameworks as the natural winner once the "dust settles". So far all makes sense.

But wait, one more time (and this is the sad part) another Sun exec vp says something interesting:

[...] John Loiacono, Sun's executive vice president of software, said the strategy at Java creator Sun is to embrace AJAX and scripting languages. [...] "A lot of people said this will kill Java, but have you ever tried to build a mission-critical application with AJAX? You can't," Loiacono said.

It's true that the definition of mission-critical is in the eye of the beholder but Ajax needs to talk to a server (hence it needs server technology) to do something interesting. You can't just build apps in Ajax because it doesn't make sense. Maybe somebody should break these news to Mr Loiacono. And while they are at it they should show him gmail, google maps, my yahoo, etc. supporting millions of users, pretty darn fast and not using Java (but this is beyond my point, because Java MAKES sense when used with Ajax).

The interesting thing is that after I shared this article with some colleagues/friends, Leonardo replied with a snippet from the Java Technology License and Distribution Agreement containing the following:

10.2 High Risk Activities.

a. The Technology is not fault-tolerant and is not designed, manufactured or intended for use or resale as on-line control equipment in hazardous environments requiring fail-safe performance, such as in the operation of nuclear facilities, aircraft navigation or communication systems, air traffic control, direct life support machines, or weapons systems, in which the failure of the Technology or Product(s) could lead directly to death, personal injury, or severe physical or environmental damage ("High Risk Activities"). SUN specifically disclaims any express or implied warranty of fitness for High Risk Activities.

Wednesday, December 28, 2005

With or without ads

The other day I came across a nifty little extension for Firefox called Adblock. It basically filters out all presumed elements on the page that are ads by matching some patterns. So far nothing too exciting. Soon I noticed that my web pages started to look different, some better and some worst.

I usually read the New York Times in the morning and it used to look like this:

but now it looks like this:

I then decided to look at hotmail and the differences are staggering,

and after:

I almost feel that now I could use hotmail again, no more flashing banners and annoying ads. The site now looks very clean, almost usable. Btw when are they going to put a nice rich interface on it? it's about time for a redesign...

Then I went to a site that I thought had some more ads: autos.msn.com

When I looked at it with Adblock enabled the site looked pretty bad, I guess I didn't realize how many ads were "hiding" in it!

My point is not to demonize ads, but I soon started thinking about Tivo. Before Tivo came out nobody thought you could see a show like Desperate Housewives without ads, now we can. Interestingly the advertisement industry has already tried to work around Tivo pushing products to consumers in movies: product placements.

Another parallel was the advent of popup blockers. It almost feels like we have forgotten that there was a time (18 months ago maybe) where we didn't have popup blockers. Every other web site was trying to push some annoying ads (and some sites are still doing that) on top of the page that we were reading, now that's annoying! So it went that some sites abused them so much that everybody wanted to have a popup blocker on their browser. So we started a new life on the web, looking at sites without annoying popup ads.

I personally like the idea of being able to look at web sites ads whenever I want (probably not most of the time), but choices are good. Here are some other thoughts:
  • if you are a web developer/information architect: think of how your site will look without ads. Does it "degrade" well?
  • if you work for a media company and want to use the web channel to push ads: think about how this technologies will prevent you from doing certain things