views:

250

answers:

4

I am a non-web programmer, but I am getting now more interested in web technologies.

I know that HTML and JavaScript are today the fundamental technologies for web applications, but it also seems that actually they were not created strictly for that. (HTML was created for web pages, JavaScript to make them a bit dynamic). Does it have any significant negative impact on how advanced web applications are created today? What are the limitations?

Do you predict any new technology to emerge in 5-10 years to replace HTML+JavaScript? If yes, then what it will be like?

+4  A: 

Several technologies have already emerged that have tried to conquer this famous duo, including....

  • Java applets (RIP)
  • ActiveX (RIP)
  • Macromedia Shockwave (RIP)
  • Flash
  • Silverlight

If you're doing research about this on your own, the search phrase to look for is RIA - Rich Internet Application.

The problem with these new technologies is that ultimately they end up requiring some sort of platform-specific binary in order to view and interact with. In the case of Flash and Silverlight, the developer needs to learn an additional web language to create them.

I think the fact remains that plain text wins again (except in edge cases).

On the horizon is the infamous 2022 HTML5. That should be interesting.

T. Stone
+5  A: 

Though HTML and JavaScript may seem old, there is nothing inherently problematic about building complex applications with them. The larger "problems" web applications must deal with have to do with the nature of the world wide web: the inconsistency of network communication and the statelessness of HTTP.

In the first 10 years of the web, the differences between (and shortcomings of) various web browsers was so vast as to confound attempts at building complex applications. Many technologies emerged for building so-called rich Internet applications which circumvented the browser entirely. These include (most notably) Java applets, Macromedia/Adobe Flash, and Microsoft Silverlight. Since they require browser plugins to be installed, the are not optimal for general purpose web applications and, in my opinion, they will be long outlasted by HTML.

In the the past five years, the lives of web developers have become significantly easier. Browsers are paying more attention to the W3C's recommendations, JavaScript is implemented consistently in all major browsers (more or less; the DOM is still frightening), and HTML 5 promises many new features (font management, video/audio embedding, geolocation, asynchronous page updates, etc) which will make pure HTML web app development even easier.

It seems unlikely that anything will emerge in the next decade that will "replace" HTML because there is nothing fundamentally wrong with it. JavaScript...very possible, but it's hard to know with what, and at the moment JavaScript is only getting stronger.

The biggest difference between web and non-web application programming is the constantly-changing platform on which web software runs. If anything is going to change dramatically in the next 10 years it is this. People are going to be accessing the web on everything in 10 years, and keeping up with the different platforms will always be a concern. This is simply the nature of web programming.

My advice: spend 2 hours per week reading about new web technologies. This will keep you in the loop so you know how to plan for what's coming. The web is pretty unpredictable. I don't think there's any such thing as an application that will last for 5 years without major changes. The best you can do is to stay informed, and react quickly.

Alex Reisner
+1  A: 

It is highly unlikely that anything will emerge in the next few years that will upset the base of HTML + Javascript for RIAs simply because of the trouble with getting everyone on the alternate platform. If another technology were to supplant HTML + Javascript it would either come about through (ordered from least to most likely):

  • Platform Changes
    • Hardware (and software)
    • Software [browser]

.

  • Browser updates
    • Introduction of a new technology within the main browser, a la IE's behaviors
    • Plugins for browsers

Platform changes are unlikely because they require a paradigm shift in either the "gadget" or the "browser" marketplace. Unless there is massive demand for something new that supplants everything that could be done the old way backwards compatibility will need to be maintained.

As an example of a paradigm shift in the gadget and the browser markets, consider what would happen if next year a hardware breakthrough makes it possible to create completely immersive 3-D environments that turn your brain into a plug-and-play device and the languages used to program on its realspace browser it are Lisp variants.

As for a paradigm shift in the browser -- this is also unlikely because it would require, for backwards compatibility, that browser manufacturers support two (or in IE's case 5) rendering engines until the new methods completely fazed out the old methods. Unless the new method was vastly superior to the old method it is doubtless that this would gain any traction.

Imagine, if you will, that IE decides that YAML is a better format for sending data over the wire and sets up a new standard for marking up data and events in YAML. Safari in the meantime figures out how to sandbox a C like language in their browser making it possible for developers to do literally anything they want to if their users will let them.


[Part II coming after work]

Sean Vieira
A: 

What you will find more and more obvious is the use of XML and JSON for data and communication between client and server applications. You hear about it, somewhat, with all the Ajax conversations but that is what Ajax is. That involves javascript which doesn't appear to be going away any time soon. Other languages output js where needed and frequently that's to handle XML or JSON. HTML is there to activate the browser so the next big thing that's already here is more Javascript and XML/JSON with HTML5 wrapped around that for the browser.

Rob