Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I happened to read an interesting article the other day that talked about building mobile applications using Javascript and HTML5. One interesting point they brought out was how this approach worked across multiple platforms, different hardware (ex. screen size) and software (ex. iPhone, WP7, Mac, Windows).

I also noticed something interesting posted on Microsoft's Build Website for their upcoming conference. They seem to put a lot of emphasis on HTML5 and JavaScript. It does seem ideal to develop a single application (of course it would still require minor modifications) and have it work on tablets, PCs, mobile devices, TVs or pretty much any internet-capable device.

Is this a shifting trend?

Obviously it's no fun learning a technology just to find out a year later that it's getting shut down. In my opinion it seems rather difficult as it stands to do certain functionality like animations or data-binding (my favorite!) with HTML5 and JavaScript when compared to Silverlight. In this case the tools alone make it a better choice (Expression Blend and Visual Studio 2010). I am concerned though because it has been getting easier to do things on the web that just a few years ago didn't seem possible.

Is there still a place for technologies like Flash and Silverlight when it comes to developing applications or should we be aiming to gear our apps toward web-specific technologies such as HTML5, CSS3, and JavaScript?

share|improve this question
add comment

4 Answers

up vote 9 down vote accepted

The big shift toward HTML5/JS came recently with the introduction of hardware acceleration in IE9 and now other browsers. Before, you just couldn't get the performance out of HTML that you could with Silverlight and Flash. They had access to hardware and HTML didn't.

The vast majority of mobile browsers support HTML5, and so do their webviews in apps that things like Phonegap takes advantage of. So in the mobile space, depending upon exactly how much hardware you want to use, HTML5/CSS3/JS is a prerfectly good option.

With Windows 8, there's going to be HTML5 apps in the new tablet view, but native apps are still very much the core part of the experience (Visual Studio won't be HTML5 for example...I don't think). However, since the markup/JS is hardware accelerated it can now be every bit as fast as a native application.

To your point about if Flash and Silverlight have a place - Windows Phone 7's UI is based on Silverlight, so I'm sure it'll be around for a while. Also, these technologies are still the only way to get a rich web media experience on older browsers like IE7, which are still very much alive in the XP world. Until every user you want to view something is off of that, you'll need a fallback method. Flash is still great for that with video and graphics.

share|improve this answer
    
great explanation. I knew there had to be a reason there was such a jump for web technologies recently and it was hardware acceleration. –  loyalpenguin Sep 3 '11 at 22:23
    
JavaScript JITs which have been around a little bit longer also contributed to a huge jump in performance of js execution. –  Erik Reppen Nov 23 '13 at 0:39
add comment

IMHO a technology potentially compatible with every device on the market (if well implemented) is the way to go.

Portability has always been one of the most important properties of successful languages such as C.

HTML5 together with JavaScript and server-side languages offers you all you need to develop rich applications (not only web, as the latest Microsoft announcements on Windows 8 seems to indicate).

Technologies such as Flash and Silverlight will always have a market, but I see the big wave moving towards HTML/JS.

As for the ease with which more complex things are possible with Silverlight, it's just a matter of time, with the new HTML5 and the many JS frameworks growing and getting better year after year.

I would have no doubts in investing my time in such a growing technology.

share|improve this answer
2  
if well implemented This is the key. Just because it is a website does NOT mean it is a replacement for a native application on every device. Layouts for a touch device are very different from desktops and there will almost always be platform specific code. –  unholysampler Sep 2 '11 at 16:38
1  
...which is why CSS, JS and HTML are specifically designed to adapt to any such circumstance. Instead of totally rewriting your code on each individual platform in the specific language necessary you use a different media type and you're most of the way there already. –  Ben Brocka Sep 2 '11 at 21:46
add comment

It's impossible to know which is "better" in the absence of requirements and some sense of available resources. HTML5 is great, but if your business model relies on in-app purchase, or if you have a team that's fluent in Flash, you'll probably choose a different direction. "Best" is what best solves your particular problem. It doesn't mean much in the abstract.

share|improve this answer
add comment

My personal opinion revolves around gaining maximum advantage from both the plugin side as well as raw HTML/CSS/JS manipulation.

I'm starting to see a trend that biases your thought pattern towards one technology. Rather than approach it that way, I tend to get to the ideas behind these changes.

Example:

1) Both HTML5 and silverlight/flash permit Canvas. How different are the ways in which you can control pixels, and programmatic logic to make games in either?

2) It is common knowledge that through plugins you can manipulate the browser's DOM directly. How easy is it to make the plugin invisible for non-common usages? Can you use the plugin for say getting huge amounts of data?

The tooling folks at Microsoft and Adobe will assist you in every way possible to use their products. How easy is it to get greedy with plugins and out of the box web standards plus scripting languages to deliver a solution?

I find my thoughts making more progress if I think along these dotted lines. YMMV

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.