views:

463

answers:

8

Take a look at http://www.chromeexperiments.com/

I think JavaScript is very close to have everything that RIAs can offer.

What's missing from or for JavaScript to make it a viable RIA development alternative?

+8  A: 

At the moment the only thing you really can't do in javascript/html is sound and video. This is changing with the HTML5 standards which includes sound and video as first class html elements.

The other thing Flash has going for it is a (slightly) more level ground between browsers. All browsers implement things slightly differently but a flash page renders pretty much the same across all.

Eventually (even now maybe) you will be able to do everything flash can in the browsers, the only question will be if and when all browsers support what you need.

John Duff
Ah, but right now you can do sound/video with javascript/html in current versions of Chrome/Firefox and probably Safari/Opera, too.
Rob
Ya, in most modern browsers have sound/video (I'm not sure about IE8) but on the web not everyone has a modern browser. Flash is supported by a lot of older browsers and has sound/video so if you want it to work everywhere you will have to go with that.
John Duff
Agreed - after years of JS dev, I can say it is becoming a very feasible replacement for Flash. The things JS can't do very well at this point that Flash can are demanding graphics (think 3D rendering or such) and networking (flash has sockets)
Jani Hartikainen
+1  A: 

I think that there needs to be greater uniformity of the performance of JS engines across browsers. The cool things on chrome experiments are made possible by the super-fast performance of V8, the JS engine in Chrome. These things are not so exciting in many other browsers.

The advantage that is held by Flash/Silverlight is that they are browser extensions that do their work closer to the actual computer and are thus less constrained by the characteristics of the browser.

JS applications will be limited until all browsers have performance approximately the same as Chrome's.

Adam Crossland
Even Flash and Silverlight have their own issues, though. Both don't always work cross platform or do so poorly, especially Silverlight. Javascript performance is also significantly higher in Firefox as of version 3.5+ and Opera 10.5 (and Safari?). Speed differences will be negligible among them soon but they work pretty much the same now.
Rob
all modern browsers (that is, firefox, webkit and opera) have JS performace comparable to V8 and Flash. all of them can still improve, but the performance is already more than acceptable
Javier
Even Microsoft is trying to improve their JS engine and it's expected to be faster with the upcoming version. and since we're talking about the future... I bet that performance would be an issue to JS in two years from now.
Bassel Alkhateeb
+3  A: 

I don't think we are close to knowing the answer to this yet.

Personally I could argue either side pretty equally.

Javascript: Pro - Almost universal. Newer phones even support it. Con - Can be hard to manage. Still varies from browser to browser to some extent.

RIA: Pro - Typically richer tools/better management. Con - Not as close to universal. Flash is very widely deployed and Silverlight is gaining ground. More control for developer (I'm thinking of games, etc.)

Bottom line: either approach can be made to work. Each has strengths. Each has weaknesses. I don't expect a clear winner for a long time, since both sides will have proponents who won't want to switch camps.

jeffa00
+4  A: 

There is an adage that "anything that can be done in javascript, will eventually be done in javascript". Certainly, lack of a good designer for this sort of interactive app is one problem. It's important to note that javascript is just a scripting language, where silverlight and flash are frameworks that each include their own programming language. In fact, Silverlight 1.0 used javascript as it's language. So the real question is whether HTML+javascript will get to a point that Silverlight and Flash are not needed. I could see that happening in the post-HTML-5 timeframe, but that will be a while.

Daniel
+3  A: 

Yes, of course. jQuery+HTML5 makes it easy. jQ has animations, AJAX, keyboard and other stuff. HTML5 has canvas, audio and video. What else you need?

myfreeweb
A: 

The benefit of Silverlight is that, with Silverlight 4, the same code base can be used to create a web hosted application and a full trust desktop application*. This is of great benefit to designers of Enterprise applications where the user must be constrained (to a certain extent) in what they can do and how they interact with the application.

So what you might see is that consumer websites go down the Javascript route, while Enterprise applications stick with Silverlight and Flash.

* I don't know about Flash and Adobe Air, but I would suspect that Adobe are working on this too.

ChrisF
Air app can be made in flash, yeah. And JS app can be desktop-ish, too: HTML 5 caching + Mozilla Prism.
myfreeweb
+1  A: 

I'm currently writing my first real application in Flash (Flex, actually) but it's only because i needed to have complex imagery from PDF, and PDF2SWF works much better than PDF2SVG.

so, in this particular case, it wasn't about the platform capabilities (neither of them could handle PDF), but about an accessory tool (transforming PDF to a usable vector format)

Javier
+6  A: 

While chromeexperiments.com has many neat technology demos, and I especially like some of the games there, it's still very much far off compared to what's being done with Adobe Flash/Air and Microsoft Silverlight.

I'm a long time web developer and I experienced the pain with browser in the early days, where none of the browsers cared much about standards. Today, it's very different. Not only do we have a lot more browsers, there are small incompatabilities in all of them which in some cases can be problematic. Normally applies when you're doing a pixel-perfect design, which you shouldn't do anyway ;-)

One of Silverlight (and WPFs) promisses are separation of concerns when it comes to delegating work between the developers and designers. While the tooling is not yet optimal, it's improving in every release of Visual Studio and Expression Blend. Being able to actually see what you're doing in a designer is helpful for a designer.

I have traditionally been a pro-web, it's more compatible, works everywhere, standards based and just the decent way to do things. It's only when you have benefits towards alternatives you should pick them, but normally they should be additions to an existing implementation built on web, this applies particulary to information systems, line of business, etc.

You don't want to get tied down to a specific version of a runtime or viewer, that will get us back to the problems we have today with far too many web-systems only compatible with Internet Explorer 6.0. It's a nightmare in many organizations today, their IT-systems doesn't work with anything other than IE6 so they are stuck, without any means of upgrading expect when they can afford replacing the existing systems.

If you develop a solution today, will your users be able to use it 3 years from now? What about 5 years? 10 years? Will they require a special-purpose-PC-setup that sits in the corner, running an old version of the OS and RIA/Viewer runtime? Sort of like how the IT-systems of the police runs all around the globe.

One project I'm currently working on (hobby-project) I initially started out with a desktop application, using Windows Forms and SQL Server Compact Edition for local storage. Then I figured I wanted to be more available to users, so I changed my plans to be an ASP.NET MVC project. Later on, I realized that it was about time to get more experience with Silverlight, so I ended up doing the whole thing with Silverlight 4 and Windows Azure. I'm amazed how productive you can be with Silverlight, though there is a pretty steep learning curve for someone who's traditionally built Windows Forms and Web Forms solutions.

What is missing from the HTML+JS technologies? Tools & Frameworks! One of the most important things for any developers is familiarities between projects. There shouldn't be a difference in the tools and frameworks you use if you want to develop a 3D game, Line-Of-Business Application or an interactive web banner. Reduced development time is another critical point, today's AJAX frameworks is way better than what we had to write ourselves back when XmlHttp first arrived with IE, so we're slowly getting to some place where we can do really cool RIA-solutions with nothing but web-technologies. I think HTML 5 is the beginning of something good, though it's still pretty far off compared to what we have today with Flash and Silverlight.

SondreB
thanks for sharing your experience... that was unique and interesting
Bassel Alkhateeb