Mittwoch, 13. April 2011

HTML5 vs. Silverlight aka Ajax vs. Java Applets. A trip in the time machine

Yesterday I attended the Keynotes to the Mix developer Conference in Las Vegas via Live Stream. They showed quite amazing stuff there using HTML5 with hardware acceleration in IE9. Folks at Microsoft really seemed to scorn Google's Chrome - showed up several Demos where Google Chrome was lame and IE9 kicked ass. Was quite funny but that's not what made me write this.

I attended the keynotes to see where the Microsoft trip goes to. At my current company Krones I have the task to propose a graphic framework for the future. There are lots of native applications, some using Win Forms, some even using old VB. Others are ASP.NET applications and run in the browser only. We'll have to port these applications and find a common graphic plattform for them: Or almost common. Some time ago I hit the PRISM framework making it possible to have one architecture for your WPF and Silverlight applications under the hood. I made some small steps with Silverlight 3 in 2009 and was quite amazed about the technology. I followed the development that was done for Silverlight 4 and look forward to the new features of Silverlight 5. I even did some tests here at Krones and ran a Silverlight application on one of the touch screens Krones sells along with it's machines: These are "almost embedded" devices with a very limited software on it: IE6 is the maximum. Anyway I was able to install the Silverlight plugin and showed that all went well even for the touch screens. I thought I had found the platform for Krones.

Then this Keynote session yesterday. HTML5 and all the stuff, Silverlight is no longer sexy. I couldn't help but feeling like in a time machine and watching what I was doing ten years ago: At this time I worked for Siemens and had a project along with my PhD to visualize simulation results for rolling mills in a browser plugin written in Java. I had all these old-school guys around me in favor of C++ and native applications (I call it C-- now) and they were quite sceptic. Anyway I could show them that my Java application ran smoothely and even within a Browser, no matter what plattform underneath. It was quite a success story. But then I learned that people had one problem with that application: It was the one-time installation of the Java plugin. First I didn't take those guys seriosly: I could not believe that people are too lazy to install a plugin - once! Well: They were. Then technologies emerged pimping html with special JavaScript code and all this amazing stuff was called Ajax. I even wrote an article about this new technology in the XML magazine (German). Ajax made it's way, Java applets are very old-fashioned nowadays, nobody uses them any longer.

Now how about Silverlight? Seeing parralels? Everybody was hyping Silverlight. The technology has come so far that it's really ready to do some cool stuff. Again you need a plugin. But it's all better, becaus it's a) Microsoft (haha) and b) often already installed and c) it's hardware accelerated. There you go with your top rich client development platform. Then people remark: Gee! I need a plugin for that stuff! I'm a computer idiot and not able to install plugins by clicking once on a link! Or I work for military defense and am not allowed to install plugins at all! Suddenly it hits people like a beer mug that you need a plugin for that technology, and from one day to another it's no longer sexy. HTML5 instead promises all those fine features without plugin. Don't get me wrong, I'm not against HTML5. But I'm starting to ask the question how many times we want to spin around in circles again? What will be after HTML5? A Goldlight plugin enabling even more amazing features HTML5 isn't capable of? Only to be followed by HTML6? Come on guys: What's so new about it?

I've always had problems with the artificial separation of thin and rich clients. Why should I restrict myself to thin clients when I can use rich clients as well? When rich clients always have looked cooler, had the better features, offered the better user experience? What I'm really looking for is one technology for it all. I don't want to do this separation any longer: Take HTML5 for this, but leave it for that, take WPF instead. Oh we realized we need that WPF-part also in our HTML5 application now and vice versa? This needs some custom tailoring or even new implementation from scratch. I can't believe it. What shell we do? Forget Silverlight? Jump on the HTML5 train? Only to see it's limits later? Shall we always follow the double track strategy and build thin clients for one application, rich clients for others? Where is this all leading to? Next question: How is this gonna turn out for my iPhone/Android/Phone7? I'm leaving an open question here 'cause I'm running out of answers and ideas.

Stefan

Kommentare:

  1. I just noticed I needed an Acrobat Reader plugin for my Firefox Browser :-)

    AntwortenLöschen
  2. Heiko Al Bonzo, obvious undercover Scots-hater18. April 2011 16:24

    I think I'm in that 'fortunate' position between both program designers on one end and users on the other having to provide support for certain applications.

    The way I see it, the problem is that both sides are utterly dumb, just not in the same way. :-P

    Application designers assume that everything is sooooo easy, because they use an environment that from their point of view is just right for the application and should be easy to set up for anybody interested in using the prog.

    What they fail to understand are 3 things: 1. individual requirements; 2. the evolution of parts of the application's environment that are outside the designer's control; 3. the fact that the customer doesn't have a clue.

    As you said yourself, a customer might not be able to install certain components due to whatever reason, thereby rendering the application hard/impossible to use; and even if he got all the plugins, etc. installed, a simply update for component XYZ may cause problems; and yes, finally, remember that potentially the application is used by people who are hardly a step above a piece of cardboard, both as far as their skill in using an application/a computer is concerned, as well as their general intellect.

    One of the application I'm supporting is a simple web based tool that will give you the option to validate certain data, other data will be automatically validated, and in the end it will bring up a .pdf based preview of a document.

    You want to guess how many people are having a problem with that simple tool because they don't have Adobe Reader but some other .pdf reader installed; not to mention certain basics in the browser setup.

    Add to that the fact that yes, Adobe Reader 9.4 and X should work fine, 8.2 as well. But forget about 6 (which people still use, don't ask me why), also 9.1 will cause problems so if you installed AR at one point in time and never updated it, your are fucked.

    at this point there's a good chance that the customer will look at you with a blank face because all of this is way too complicated for him, he is not really a 'techie' and it is obviously the technical supporter he is right now speaking to that needs to resolve this problem for him. Like, you know, go and fuck a duck, halfwit! In short: no, not supported by us, speak to your inhouse support!

    Which brings us to the other side, the user:

    He can't understand why the program designers release their software when it is still full of bugs, and why make it all so complicated, why do you have to potentially use an additional program just to use this one application? Little do they know what business consideration may be in play, which deadlines, what system the application is tested on and works fine, its just not tested on every single possible configuration, and yes, even that the designers have to assume that the users out there will be correctly evaluated i.e. check if that application is actually suitable for this customer, the users, the environment the customer is running (we are supporting an Win XP only application, wanna know how many field techs are still setting it up on Win7 despite knowing fully well that we are not supporting it?), and after getting the application the users are correctly trained...

    In short: the customer assumes that the application will be shat out all golden and smelling like roses just for him.

    Which takes me around to what you were asking in the end:
    The only way may be to design the environment itself the application is to be run on.
    No, 'let's hope that the basket we are putting our eggs in right now will not break' i.e. another, better environment will show its face and now everything needs to be changed over, ported, started from scratch.

    I'll put it this way: bring about the nukes, blow everything to hell and back, and start the future again with a baseball bat with nails in it. :-D

    AntwortenLöschen
  3. Microsoft shafted us Silverlight developers. I would not mind jumping to HTML5/ Js if this combination were superior to Silverlight (or Flash for that Matter)
    But as you say HTML5 takes us back 15 years to sloppy Javascript code, loads of run time errors, inconsistent behaviours between browsers. basically Not a plaftorm to deliver robust Line of Business Applications. Serious programmers spent 20 years expericne on strong typing and compiliations, whlst flimsy web developers could get away with sloppy JS code.

    I am getting familiar with HTML5, but I cannot advise what is the most appropriate technology to both develop abd deploy LOB Apps across the Web. And I don't think Microsoft, Google,Oracle or Adobe do either !

    AntwortenLöschen
  4. Ok, so I write this nice application that is browser-based and in the nice HTML5 language. How do I protect my code from being stolen? Anyone can look at the source. This is why I think an HTML revolution will never catch on commercially. Too much code stealing.

    AntwortenLöschen
  5. wonderful information, I had come to know about your blog from my friend nandu , hyderabad,i have read atleast 7 posts of yours by now, and let me tell you, your website gives the best and the most interesting information. This is just the kind of information that i had been looking for, i'm already your rss reader now and i would regularly watch out for the new posts, once again hats off to you! Thanks a ton once again, Regards, Html5 online trainingamong the Html5 in Hyderabad. Classroom Training in Hyderabad India

    AntwortenLöschen
  6. HTML 5 is the latest version of HTML. By using this developer can easily add any video or audio files with some other advantages like; Elegant form, offline application cache etc
    html5

    AntwortenLöschen
  7. You said that a user isnt able to install any component becuase of any reason so the applicaiton is impossible to use and it will be not getting any plugin..?

    AntwortenLöschen