As one might start guessing, I tend to jump around languages, projects, and clients (web/windows client not people). After writing custom code for prototype, dojo, yui, jquery, atlas (microsoft ajax library) , it becomes a pain to remember which library has what and to port work you've previously done into another library. Its one thing if it porting code from one language to another, but to have port code cause of the library/framework.... its a pain that isn't needed.
Granted the downside of writing a compatibility layer is extra code that could be duplicated else where or writing a smaller set of routines that are less in what other full blown libraries. However most people have broadband these days and the browsers have this cool thing called caching. Not to mention YUI has a great compressor and there are ways to include multiple files on the server rather than on the browser.
So I've begun to embark on a long journey of making JavaScript widgets build on a compatibility layer of different libraries. The layer it self will take some time, testing, and constant refinement while trying to keep the layer small. However I believe this is needed, esp as a consultant that works on various projects and everyone has their favorite library to use...
you can find the beginnings of the code at http://code.google.com/p/amplify-fusion/.
Labels: Amplify, BHAG, Code, Javascript