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 am asking this as an objective question and have no interest in inciting a flamewar. My point here is to gather some evidence to assist in decisionmaking and communicating with non-technical folks up the management chain.

I'm on a UX team at a software company. We’ve worked with WPF and Silverlight in the past, but some managers have bought into the hype and are considering moving everything into HTML5.

Our concerns with pursuing HTML5, based on several months of experimentation with it, are these:

  • HTML5 provides a dramatically less evolved development, backend and UI model than WPF or Silverlight. It takes a long time to do anything and the end result is far less smooth.
  • Collaboration between designers and developers. One big WPF advantage was that the UX team could design the entire UI and hand it over to developers for remaining work. With web apps we are back to designing redlines/wireframes and throwing them over the wall, given the lack of good tools and the amount of coding required to get even basic animations to work.
  • Cross browser headaches. Our experience has been that browser support is very inconsistent and fallbacks are required for pretty much anything.
  • It is not clear how HTML5 is any different from previous HTML/JS/CSS. The new tags (section, nav, etc) don't provide any obvious benefit. We lose all binding, security, database functionality and the rich UI.
  • Styling, UI presentation. We can't style controls beyond very basic styling or needing to resort to hacks.
  • Typography is undependable compared to WPF/Silverlight.

So my question is: has done any similar analyses for HTML5 vs a native app (and by this I don't mean a trivial phone app, but a very large enterprise complex application), and has sources or analysis they can share?

share|improve this question
    
HTML5 isn't just about the new semantic elements, you know... –  BoltClock Dec 27 '11 at 20:22
4  
Are your target audience using anything other than IE? Why would cross-browser headaches be any less in MS-only Silverlight than in HTML5? Also, if styling UI elements in non-standard ways is one of your concerns why not also consider Flash/Flex? –  robertc Dec 27 '11 at 20:54
1  
HTML5 provides a dramatically less evolved development - Consider utilizing a helper library/framework such as Kendo UI –  Robert Harvey Dec 27 '11 at 21:12
2  
We have looked at Kendo and it's very expensive and brand new. Flash is out for political reasons. Silverlight works fine in all the browsers we're required to support (IE, FF, Chrome). –  dex3703 Dec 27 '11 at 21:58
2  
It sounds to me like your shop isn't geared to handle non-.net web development yet. Acknowledging the fact that HTML5 still has only partial support in some browsers (mainly all versions of IE) there's still a lot you can do. Service backends are easy to handle as soon as you learn to ditch ORM and embrace the REST model especially if you learn how to pair JSONP/JavaScript (ie offload work to the client). More secure service middleware (ie sensitive transactions) will still need to be handled on the back-end but PHP and Java aren't your only options. Python has come a long way recently. –  Evan Plaice May 24 '12 at 0:15
add comment

migrated from stackoverflow.com Dec 27 '11 at 21:06

This question came from our site for professional and enthusiast programmers.

3 Answers

up vote 6 down vote accepted

I wasn't really part of the team doing the analysis, but our company faced a similar decision. The scale of the application is this:

WPF/Silverlight UI for web-users & in-office users.

Massive WCF SOA layer that communicates UI layer events to various other applications in the company (banking, invoicing, payrolls, etc etc etc)

The decision to use WPF/Silverlight vs HTML5 came about from the following points:

  1. Development time. Trying to do something this massive with HTML5 in the same amount of time simply wasn't feasible. This is mainly due to the points you've already brought up like browser compatibility & disparate programming models (i.e., having to develop in HTML, JS + server side technologies)

  2. Better UI Development experience. Much easier time coordinating UI development with back-end development in a purely MS environment.

There's many others, but basically our company chose WPF/Silverlight for the reasons you've already mentioned.

BTW, we are definitely a MS shop so maybe that's different at your company, but it made the choice pretty clear for us.

The cons of using WPF/Silverlight vs HTML5 might be little to no mobile device support, but our plan is to use asp.net MVC to eventually create a UI for mobile devices in the future (if we decide to do that). Because we're SOA, this will be a relatively straigh-forward project if it ever materializes.

In the end, the headaches of developing an enterprise solution with HTML5 just weren't justified, not for a project this large.

Hope that helps!

share|improve this answer
    
Thanks for your thoughtful answer! If there's any other detail you'd be willing to provide, you can contact me at dex3703 at gmail dot com. –  dex3703 Dec 28 '11 at 16:24
    
WPF has performance issues on machines with ATOM cpu or some old with 256 system ram. However for ui only using a packaged html5 app might be easier and cost less than wpf/silverlight . –  Parhs Oct 2 '13 at 15:12
add comment

For enterprise level software the demand is to get things done quickly while providing a rich client experience. It can't be easily done in HTML5 and JavaScript.

The tools of the HTML5 trade are HTML, Javascript, Java/PHP/Asp.Net with Ajax. Those tools together are not developer friendly to create apps like Silverlight/WPF. Try to find a developer who has all the skills required from front to back and you will be lucky to find an individual

Let alone stringing those all tools together, to do what one can seamlessly do in WPF and Silverlight in the time frames given by companies is near impossible. Ever have a company that has multiple IE browsers to contend with and find that JavaScript which works on browser X doesn't work on browser Y? There is only one version of Silverlight...to contend with.

The goal as mentioned is to get a rich client experience using tools that are not designed to give a rich client experiance.

Until we can have some sort of OS layer exposed to a web app for it to run off of, the HTML5 dream is just that... a dream.

share|improve this answer
4  
What does Java/PHP have to do with it? Why do you think you need either of them to develop HTML5 front ends? –  robertc Dec 27 '11 at 20:48
add comment

I have to agree with the other answers. As a programmer, whenever I'm presented with a program to write for someone, the first thing I do is decide what language and tools are going to make the job easier. Look, programming is not a easy to begin with, especially when the programs are going to be large. Users more than ever demand and expect more intelligent software that is easy to use and pretty on the eyes. It is an undeniable fact that Microsoft makes probably the best software development languages and tools to date. It's been like this since Visual Basic 1.0 in the early '90s. I believe this has a lot to do with Microsoft's success over the years as the dominant OS. Not because Windows is so stable or efficient, but because there was a lot of thought put into their API's. I remember Steve Ballmer years ago yelling "Developers! Developers! Developers!". He was right. The ease of the development tools written by MS is what drew tons of programmers in all these years. That's why there is so much software out there written for Windows.

Now, with that said, the web certainly has it's place for small applications. However, as someone mentioned above, the browser is just not powerful enough to allow you to write extendable, high quality applications that are easy to develop and debug. The browser was simply not designed to be a container for lots of logic. It was designed as document rendering engine for text, pictures and yes some video and animations. But the video and animations are not intrinsic to web browsers, they are add-ons like Flash or Silverlight. The only "native" language is Javascript. Now, manipulating the DOM is one thing, but the language is too dynamic for it to be useful on a large scale (ie. no way to check for errors with a compiler). Javascript is also not mutlithreaded and gives you no way of accessing multiple threads other than simulating it with AJAX. Perhaps that's not such a big deal, but that will mean that the application will rely on an internet connection in order to run correctly.

Every so often I look at different web client technologies and languages to see what's out there but the more things change the more they stay the same. If you want good high quality, scalable, easy to debug applications then developing on the desktop is the way to go in my opinion. Unless you have tons of time and lots of patience to work around the inherent weaknesses of web languages and web application development in general.

share|improve this answer
1  
today's Web Browsers are very powerful. You can search Google for Online Office suites from Microsoft and Google. For enterprise apps, we can use Web Browsers providing rich experience. –  Badar Aug 1 '12 at 19:43
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.