I'm looking for JavaScript RIA toolkit. My requirements are: good look, free license and sane API. Any ideas?
Thats what I've found so far:
ExtJS
pros
- perfect look
- lots of widgets
- support for mobile platforms
- modular system
- embraces HTML5 and CSS3
cons
- costs money, expensive ($500+)
- very flat lurning curve. no quickstart guide (but thats already doesn't matter because of point #1)
QooxDoo
cons
- just ugly. looks like something that survived 90s and didn't change at all
Dojo
pros
- good look (not much themes, but thundra looks good)
- free licensing
cons
- too asynchronous (their AMD stuff)
- very unusual and cumbersome API that i can hardly call sane
- messy docs (i've found out what is their AMD only from #dojo irc channel)
SproutCode
pros
- MVC
- generators
- docs
cons
- templating that i don't need
- didn't find the way to put it in production w/o lots of dependencies
- still can't figure out how to create RIA w/o writing own styles and layouting
Wijmo
pros
- jQuery-based
cons
- costs money
- doesn't have layouts
If you and your team are not very experienced in JavaScript and you aren't interested in investing your and your team's time into front-end technologies then your best bet will be (prioritized order):
Ext JS
jQuery UI + any jQuery Grid plugin (if you need it)
Yahoo UI
GWT
However, I strongly suggest you to gain some knowledge and experience with front-end technologies, especially CSS. CSS is easy as long as you research some basic rules and patterns. You don't need to become a CSS guru to be able to do styling and layout proficiently.
So if you wish to learn front-end a bit or you have some experience with it my list will be quite different. Before picking the widget library I suggest you start off with some MV* framework.
Given you've picked a framework here are your best widget choices:
jQuery UI
Yahoo UI
And these libraries are very undesirable:
Ext JS
GWT
As you can see both Ext and GWT are somewhat controversial. Use Ext if you know what are you doing, i.e. when your team isn't good at webdev and if you don't need to customize it's look and feel. In most cases some education and jQuery UI is a much better bet.