Friday, May 23, 2008

The Best JS Framework in the world?



Okay I been on this question for a really long time now. I first implemented PXP using Prototype in early 2007. This was back when 1.5 was out and I realized that jQuery looked better and had more of functionality that I wanted. I suddenly switched to jQuery and was excited that I finally had the chance to call simple JS to build my epic application. I soon realized most of the plugins (or UI) weren't fully developed and/or not working as I expected them to. Also I reviewed my code when I finally got draggable boxes, menus and tab features up and running and saw that it was real spaghetti. about 3 months later I found that prototype had updraded to 1.6 with promises of a brighter future.



I delete my jQuery code and defected back to Prototype and it was good! I loved the new code structures I was coming out with but the "look and feel", cross browser and styling this mofo became where most of my time went to. As a product developer all you want to be concerned with are higher level thoughts. I'm not a designer nor want to be. I am a programmer mastering my craft!



After 3 more months with working with prototype and getting frustrated with my design templates not working out, I began my search for a new framework. I remember Nate Koechley from Yahoo came to my work about a month ago with promotions of YUI. I looked at YUI long before that but was unimpressed with the framework and the support for it. For someone like me, I don't like posting a question in the group and waiting for a response. I need fast support. It was only recently that I found YUI had blown up to a lot of features built around many fundamental practices. The framework still didn't impress me but the massive widgets that were already "skinned" gave me no choice but to switch to it. I always dreamed of a library with styled widgets! Again I dump my prototype code and switched to YUI and in 2 weeks of coding I was able to go as far in my product than I ever had in a year!

Of course after 4 weeks I start hating the "YUI Sam Skin" and look for other skins. After 22 pages of google searches I concluded there were no other YUI skins in this world, which made me sad considering my direct competitors had awesome styling. I also noticed that my epic application basically requires to use every single freaking thing that YUI offers and I noticed a performance drain because of the large files (even though they were compressed) and yes I was using the YUI Loader to load scripts only when it was needed. It wasn't that, I also realized that in YUI they have made executive decisions on how to implement their widgets without giving clear documentation on how to rawly access their core widget functions. I call it being "bloated". Also, although YUI code is organized their dependency list per file is spaghetti. So imagine if you will a widget that requires 4 functions of a utility class made up of 5000 lines of code.


MY OWN FRAMEWORK

I was tired of YUI but there really isn't anything better that fit my project needs. I started searching for maybe other libraries that matched up to YUI and thought "You know what? I should just make a library!" and I did! It was the coolest thing I ever did in JS and I only say that because it was my own code and I finished the framework in less than 900 lines of code. It had Selectors, Events Manager, Element Traversing, AJAX Management with caching and abort features, Class creation/extending and Namespace Management. I loved my framework. The only thing that turned me off of it was Effects! I hate coding effects. So really what is the best framework out there?

Please don't say ExtJs. I don't want to get started there. Mootools maybe, but I need widgets pertaining to a software application and I just don't think Mootools has it. So I guess it's YUI for now at least for my needs and I'm really not happy with that decision.

Anyways this weekend will be a power weekend for me. It's a 3 day weekend and no Girlfriend. Happy Memorial Day to everyone.

0 Comments:

Post a Comment

<< Home