views:

457

answers:

5

What's the best framework (sort of jquery, extjs, etc like) to use if I'd like to intensively use all the freshest technologies of the HTML5 stack provided by modern browsers (Firefox 3.6+ (Minefield especially), Safari 4+, Chrome 4+) and have absolutely no need to support any legacy browsers (incl. no need in IE support at all, no need in Firefox prior to 3.5, etc.)? I'd like to get all the newest available goodness without having (even abstracted by a library layer) a line of code meant just fore legacy compatibility and keeping no legacy-induced things in mind.

To soften the filter, taking very humble hope of such an ideally fresh framework to exist, the least (the maximum level of legacy support) I'd like to agree is not supporting IE versions older than IE8, or better just not supporting IE at all.

+1  A: 

What about Cappuccino? I don't really know how much HTML5/CSS3 it supports, but it requires IE7 at minimum. It is focused on web app development, not site-building, so it may not be what you're looking for in that regard.

Mark McDonald
+3  A: 

I am really having a hard time reconciling this idea after a serious thought. Assuming such a framework exists, it would only be as good as the current implementation status in any one browser. Let's say there are only two browsers and the HTML5 implementation status looks like this:

Browser | Feature X | Feature Y
-------------------------------
 A      | ✔         | ✘
 B      | ✘         | ✔

Then your most bleeding-edge HTML5 application can either have X or Y, but not both. If the features your application needs are available on the latest versions of most major browsers, then that feature is not bleeding-edge. It would have been bleeding-edge a year ago.

So depending on the project scope and goals, the most B-E application that can be written will conform to a single browser (the one that offers all/most of the features needed for your application).

If you're writing for a lone browser and do not want to fix any implementations deviations from the spec (as the spec is not yet finalized), then it's basically writing code for that chosen browser regardless of any specs.

If that is the case, then a framework is basically extra baggage to carry around. Instead, shortcuts for most commonly used APIs and other general simplifications would be the best way to go.

That said, if you're goal is to have a framework that vastly simplifies the HTML5 APIs oblivious of where the browsers stand today, then I would love to contribute towards that project.

Anurag
Ivan
And as far as I see, it is nod hard today to convince a user to consider using a "modern browser" of his choice if he is specifically interested in our application features. So supporting legacy browsers, I think, can be really needed only on public mass-oriented traffic-driven websites and very large unflexible enterprises, while non-profit community (especially those made for tech enthusiasts) projects and enterprise intranets can enjoy all the goodness of modern browsers.
Ivan
I totally agree, and it's always good to start with that mindset without the fear of losing out users, especially for niche websites where the audience is open to the idea of installing something on their computer and knows how to do that. But even in niche sites, if users get accustomed to viewing your site on IE7, and you later drop the bomb on it, they are going to be pissed off because that's just the nature of things - nobody likes change. Instead, if users are constantly informed that support for a particular browser will be dropped if the browser starts going out of line.
Anurag
StackOverflow itself is a great example. They're using `<canvas>` for graphing reps. Don't know if they offer a graphic image or flash version for browsers that don't support `<canvas>`. But if anyone in this community does not already use a modern browser and/or is not willing to upgrade to one, then they have no business being here.
Anurag
+1  A: 

Sproutcore is another one that sort of fits your opening description "How do we build blazingly fast, desktop-class web applications?". Apple are interested in it and i have heard good reports.

Another approach would be Apples Dashcode. It use html(5) css(3) and JavaScript to build both Mac Widgets but also Web based sites. Essentially because it has little or no legacy it will only run effectively in Safari and Google Chrome, less that effectively in Firefox and not at all in IE.

To use Cappuccino (mentioned in another answer and a good idea to look at) and Sproutcore you you will be more productive on a Mac and Dashcode definitely needs a Mac as you will need to install Xcode to get Dashcode

PurplePilot
A: 

Not exactly an answer, but I think this will be beneficial for the discussion:

GWT's approach (cross-compiling Java to JavaScript with deferred binding) is in line with your point about getting the minimal amount of JS code, without the burden of making all the browser abstractions in client side code, and carrying around all the weight of that code plus the weight of legacy browser support code.

I'm not sure if the current level of granularity by which it produces optimized per-browser versions is the one you're talking about, but the technology enables it.

Also, not sure about out-of-the-box bleeding edge HTML 5 feature support, but again - one could write such libraries (if they're not there already), and they will benefit from the same deferred binding mechanism, and you can compile just for the browser permutations you want to support.

ob1
A: 

See:

Modernizr

Sarfraz