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

migration rejected from stackoverflow.com Apr 28 at 7:49

This question came from our site for professional and enthusiast programmers. Votes, comments, and answers are locked due to the question being closed here, but it may be eligible for editing and reopening on the site where it originated.

closed as too broad by gnat, Bart van Ingen Schenau, GlenH7, MichaelT, jwenting Apr 28 at 7:49

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

    
HTML5 isn't just about the new semantic elements, you know... –  BoltClock Dec 27 '11 at 20:22
5  
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
comments disabled on deleted / locked posts

2 Answers

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
2  
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

We have found the exact opposite is true from the other comments I see here. Granted this is a few years later.

We found WPF via MVVM much more challenging and time consuming to develop. Now browsers have hardware acceleration and have much improved JS engines, that I can produce line of business UI's that deliver exceptionally good user experience. In fact, I thought some of the UI in our WPF apps was not so fluid (maybe due to our inexperience writing them).

You combine AngularJS and Twitter Bootstrap for UI, and WebAPI services for backend, you get fast fluid apps, developed quickly that also run in all environments. The cross browser stuff has already been tested by others if you use these frameworks.

I wonder if those back in 2011 that went the WPF route regret their decision.

share
    
this post is rather hard to read (wall of text). Would you mind editing it into a better shape? –  gnat Apr 25 at 19:31
    
For what it's worth, I've been working with WPF since about 2009, and I'm still very fond of it for several reasons. –  Phil Apr 25 at 20:36
add comment

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