0

I recently noticed that Rich desktop applications (I define it as an application running inside a virtual machine embded in a web browser, based on tools like Java Web Start, Adobe Flash or Unity web player) seems to become more and more rare. I only see some when I play some plain old flash video games online. They are now replaced by HTML5/Javascript applications, which have the advantage of being compatible with all browsers without plugins. But despite the compatibility, it seems I missed some other reasons.

Technologically speaking, I see important advantages to RDA, especially the possibility to download the application once and being able to run it offline though an application manager. At first sight, it seems to be better than downloading javascript code embded in a web page. It looked promising.

So here are my questions :

  • What are the main reasons (which might be technology-related or not) why this architecture failed?
  • Regarding compatibility, why didn't the main browsers ended up embding by default some of those plugins?

closed as primarily opinion-based by GlenH7, user22815, durron597, user40980, amon Oct 9 '15 at 9:56

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • And you end up using javascript for a large application. Which is.... interesting – Richard Tingle Oct 7 '15 at 19:29
7

I think you answered your own question partly. People are designing applications for browsers and mobile devices. In order to target both, and share code, using HTML5/JS is a very quick approach.

Technologically speaking, I see important advantages to RDA, especially the possibility to download the application once and being able to run it offline though an application manager.

Oddly enough some of the applications you might use right now are being written with HTML5/JS and you might not even notice it. Electron, nw.js, and probably other containers allow HTML5/JS applications to access the filesystem and OS. These containers essentially remove all the limitations of the web allowing application developers to create cross platform solutions on every device seamlessly. (That and it has all the advantages of HTML allowing simple theming and layouts).

Also just as a side-note you can create a webpage that functions offline in the browser. A few sites do function this way, but it's usually a low priority feature that's ignored. (Especially with cellphones being prevalent).

What are the main reasons (which might be technology-related or not) why this architecture failed?

Things like Flash were created merely to fill holes that the HTML (including WebApps) standards currently didn't have. There was a time when the web was very simple. Things like video and audio were not really considered, so plugins were required to fill in the gaps. Plugins can still exist as long as they fill in a perceived hole. The Unity Web Player probably still fills a niche performance-wise compared to some WebGL alternatives as an example. Using flash for video or audio though, not so much.

Generally plugins are proprietary. This plays into one alternate reason why plugins have failed which is security. A lot of people distrust Flash and Java because they've been exploited numerous times.

Regarding compatibility, why didn't the main browsers ended up embding by default some of those plugins?

Not part of the specs. Web browsers are extremely complicated with thousands of individual pieces spread across numerous specs. Supporting something like Flash, Java, or Unity that merely duplicate most of the functionality would be a waste of time. Most companies, especially Microsoft, have discovered it's far easier to work with the specs and suggest changes over time when features aren't there. A big part of this though is browsers are now controlled by large corporations who have the manpower to implement complex features and organize development. This has made the need for proprietary plugins unnecessary unless the specs can't be modified to include a feature. (A good example recently is Encrypted Media Extensions which used to require plugins).

  • The proprietary nature of the plugins also resulted in portability problems: Microsoft only offered Silverlight for Windows, Windows Mobile/Phone, and OSX (but only as a plugin for Safari, not other browsers AFAIR). The Mono team created Moonlight, an Open Source clone of Silverlight based on the Mono framework, but they were always lagging behind Silverlight in features, and stopped at supporting the Silverlight 2 API, whereas Silverlight is now at version 4 or 5, I believe. Adobe did offer Flash for Linux (but only on x86, if you were using Linux on PowerPC or ARM, or using a different … – Jörg W Mittag Oct 7 '15 at 23:41
  • … Unix, you were out of luck), but Adobe's Flash for Linux was usually several years and thus multiple API generations behind Flash for Windows and OSX, it was buggy, and often crashed. Because it was so rarely updated, it was also usually years behind the plugin APIs of the common browsers, forcing you to use outdated browsers with known bugs and even security holes. Since there is no specification for Flash, open source alternatives had to developed using painful reverse engineering, and AFAIK, they are still not feature-complete wrt. to Adobe. Java was the least troublesome in that … – Jörg W Mittag Oct 7 '15 at 23:45
  • … regard, especially after Sun open sourced OpenJDK, but it was still painful. – Jörg W Mittag Oct 7 '15 at 23:45
  • Nowadays, we have HTML5 and all its various features and extensions (audio, video, workers, sockets, local storage, rtc, canvas), "CSS3" and everything that belongs to it, and with ES5.1 and the upcoming ES6, we have languages that afford large-scale application development, and for those that don't believe that, we have asm.js and in a couple of years WebAssembly as convenient compilation targets for other languages. – Jörg W Mittag Oct 7 '15 at 23:52

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