Web Development optimize

Five persistent Web application myths

Read what Justin James has to say about a number of common myths he hears about Web applications.

Whenever I write about Web applications, I get a number of responses that reflect a variety of myths and misunderstandings about Web applications and the cloud. Given that it looks like we've reached the event horizon on Web applications, it's time to clear up some of the most persistent myths about Web applications.

1: "Web" and "cloud" have to mean "third-party host"

People see words like "Web application" and "cloud-based" and immediately assume the service must be located outside the firewall, with the usual issues like offline access, security, and latency. This is simply a matter of architecture. Yes, many Web applications are only available on the software-as-a-service (SaaS) model, requiring you to pay a third party to host the application. But many Web applications, especially enterprise class applications, can be deployed to your Web servers internally. More and more vendors are even providing pre-configured virtual machines that you can drop into your data center and run with. And for building your own application, you can deploy to your own server.

The same is true for cloud. When folks hear cloud, they assume third party. The power of cloud is not that it is third party; the power is the idea that you have abstracted and virtualized the resources to the point where no one knows or cares how many physical or virtual servers are involved, and that the resources can dynamically expand and contract as the load requires. There are many private cloud options (third party and in house) that allow you to have the benefits of the cloud without requiring that your data be anywhere near anyone else's or that IP traffic outside your organization can even touch it.

2: No Internet access = broken application

Another common argument I hear against Web applications is that when the network connection is down, so is the application. If you are talking about an application that requires constant calls to the server (AJAX callbacks or full postbacks), this is true; but there are ways to write applications that do not require constant Internet access. For example, you can write a Web-delivered application where the initial page load brings up all of the resources (HTML, CSS, JavaScript, images, etc.) for the application, and all of the processing is handled via client-side JavaScript. Furthermore, HTML5 steps up the game with the parts needed for offline caching so that a sync can be performed when the server is available again. For the applications that do require always-on access to a server (say, to pull data from a database), they'd be dead in the water anyway if they were locally installed desktop applications.

3: Web UIs are clunky

It is historically true that HTML was not so hot at UIs. HTML5 has helped, by introducing elements that have many more capabilities and are data-type aware. This allows developers to do things that were previously only possible with plugins (which may not be universally available) or with a ton of effort, and it also allows browsers to display elements with data type-appropriate input models. Add on top of this the components from companies like Telerik and frameworks such as jQuery, and the Web UI model does not look so shabby.

4: JavaScript

JavaScript myths could be its own article, but I'll just run down some of the more common ones I encounter:

  • JavaScript is based on Java. "JavaScript" is a marketing term; when Netscape put it into its browser, Java was a hot buzzword. JavaScript and Java both have a C-style syntax and that is about the only similarity.
  • JavaScript requires a Java Runtime Engine (JRE) on the client. JavaScript is a dynamic, interpreted language that does not require a Java bytecode interpreter; it requires a JavaScript interpreter that comes baked in to browsers.
  • JavaScript is slow. Yes, JavaScript interpreters are slower than native code, but they are not slow enough for you to notice significant slowdown in common use cases. It isn't like doing common JavaScript tasks crushes the system resources. Most benchmarks are incredibly unrealistic.
  • JavaScript is hard to manage/test/etc. This is as true for JavaScript as it is for Perl, PHP, Python, Ruby, and other similar languages. Much of the difficulties are caused by developers who are not rigorous with sound programming process and techniques, but it is true there are things that make JavaScript development more of a challenge.

5: "Standards" and browser differences

Without a doubt, the big eyesore in Web development is Internet Explorer, and there is a dark place in most developers' hearts for IE6. Fortunately, IE6 is ancient history except for a small number of big companies that are hung up on it, and folks who have such an old copy of Windows XP or Windows 2000 that Windows Update is turned off.

More recent versions of IE have made great strides towards playing nicely with standards, and the upcoming IE10 looks extremely promising on this front. When IE's compatibility mode was introduced, it gave Microsoft the much-needed freedom to stop maintaining IE's worst habits going forwards.

Most importantly, HTML5 will be the first version of HTML that will be truly testable, where the spec is specific enough that you can verify whether a browser is standards compliant. With these tests and renewed effort from vendors (particularly Microsoft) to get their browsers into shape, the days of the standards wars are drawing to an end.

J.Ja

About

Justin James is the Lead Architect for Conigent.

25 comments
Realvdude
Realvdude

I wish I had a nickle (or a dime with inflation) for every time I heard a tech respond in confusion over the last 7 years, when I tell them our software is a web application running in the clients' office. We did have a number of competitors with client server desktop applications that they were delivering over ISDN or VPN. When we were looking to replace our dated DOS application, it just made sense to skip the Windows Client/Server model. As a web application, our clients can use it over a VPN with very little performance difference compared to in their office.

fluciani
fluciani

Oho I'm relly a sinner! Oho i dont'use Win7, the "standard". And for you this would be a good reason for my browser not to be upgraded! Ok, I'm in a Microsoft church, please excuse me and bye bye. Chome and Firefox and Safari and Opera.are then wizards, since their browsers are perfectly supported, more secure, with better performances, and if I write something for one of them, it runs quite exactly the same in all of them, BUT - naturally . not in IE! jvandermerwe, i don't know Ext JS (thank you I'll takle a look), but let me say, I'm quite sure that the 35-50% of the framework code is written to work around IE, as always. Ok I have and will probably upgrade my OS sooner or later. But THIS HAS NOTHING TO DO WITH THE BROWSER CHARACTERISTICS, with the upgrading of a ordinary program - the browser. I run a quadcore 3.2GHz with plenty of RAM and this will suffice I think. Two words for belli_bettens: thanks God you speak nonsense. Microsoft develops for business consumer? Ah ah ah, that's the better i've ever heard.

Slayer_
Slayer_

That's probably another 5 years before we get through these versions. And usual MS stupidity, not making IE9 work on XP, just makes IE 7 and 8 linger longer. They will probably continue the stupidity and not make 10 work on Vista.

jvandemerwe
jvandemerwe

I am building big applications with PHP (CodeIgniter) and Javascript (Ext JS) for my customers, and I can tell you that they don't feel so much difference with a desktop application. It simply feels like Windows with almost the same response. Concerning the offline with HTML5 offline caching, I would not use this as a selling feature to my customers. It is only realistic if your app and data can stay offline, without inflicting any consistency to the main system. And @fluciani, if you are working with XP, which is not supported by Microsoft anymore (like Vista SP1), then you should not be surprised that Microsoft will not wait for you. You are right that IE is a drama to test, but if you are a serious developer, then you make sure that your own tools are matching with the current standings in software. Don't adept to your most ancient customer all the way. By the way, my Ext JS applications run without a flaw also in IE. It depends on the quality of the framework you use, and Ext JS is just super in common browser support.

fluciani
fluciani

Hi Justin, i understand your POV, but let me say that IE is ancient. Period. Do you develop any web app recently? The 65% of the code in every JQuery or JQuery integration is written to work around IE. The sole fact that IE9 is not available for XP users (like me, oh, I'm so ancient) is a shame in itself. My god, everything I do has to be retested 10 times for IE, inventing incredible tricks to render decently (but never AS with Chrome or Safari or Firefox). MICROSOFT Is the biggest Software House in the entire world, and you talk about "upcoming IE10" - for win7/8 users naturally. Usually I do not dislike your articles but this time you crossed the line of decency. However, the story does justice alone. IE in my Analytics stats dropped from 85 to 35%, and have no doubt that the trend will persist. If they just stopped with browsers and let do those who know what to do the whole world will gain, and even a lot.

Sterling chip Camden
Sterling chip Camden

Web development is certainly a lot further along now than it was even a year ago, and has become practical for a lot more applications. It's still maturing, though, so now is not the time to make long-term decisions about what works on the web and what doesn't. Chances are, what isn't practical now will be practical in a few years. Hang onto your hat! Good article, BTW.

mattohare
mattohare

"True, but not anymore." "Doesn't have to be that way." I saw a lot of these. I agree we're well on our way. I do think the frameworks have work to do with local storage, and disconnectivity.

belli_bettens
belli_bettens

it's easy to laugh with my comments but you would gain more credibility if you could actually provide us a counterargument (and stating that you're 'quite sure' of something is not exactly an argument either).

jvandemerwe
jvandemerwe

Don't get angry on Microsoft, so much. It's something you don't have under control. But why on earth are you using Windows XP on a computer like that? So don't say probably you have to upgrade. Upgrade NOW! You have your machine in the present, try to do magic from the past.

jvandemerwe
jvandemerwe

Nobody is using Netscape anymore, looking at how fast Microsoft is losing ground with IE, I think they start to give up being a browser player too. And in the end most users will. Except maybe @fluciani :-)

belli_bettens
belli_bettens

the only disadvantage is that you have to deal with concurrency on the server, which requires you to do more work. So in that sense I can understand you don't want to promote it ;-) Let's just hope it will be integrated soon in frameworks like ASP or JSP

rrusson_z
rrusson_z

I'm not championing IE, but which browsers are broken and which are "right" can really be a matter of perspective (IE6 not withstanding). I use Chrome almost exclusively myself, but much of my web dev is for internal users --over 95% of them on IE7, IE8, or IE9. We build web apps to work with that corporate standard --Firefox and Chrome might need the occasional tweak to work/look correctly. Web development has always been a moving target and it doesn't look like that's going to change any time soon. And yes, you are absolutely ancient; a technologist using an OS that's over 10 years old is like a race car driver in a old Edsel.

belli_bettens
belli_bettens

On one side you have browsers like Chrome, Safari and Firefox who develop mainly for the consumer market. Which means that they add as much new features as possible with every release to remain competitive. This also breaks compatibility between different browsers because they don't care to wait until those features become a standard (in HTML, CSS, ...). Waiting for standardization is not a hot item they can sell to their target audience: the home consumer that wants the latest and greatest. On the other side you have the business consumer. They all use IEx as their business compliant browser because they know that when they start using it, it will remain the same over a long period of time. They don't need a browser that updates in the background (to find out that a critical online app has stopped working correctly). It can take a couple of years of thoroughly testing and auditing before they even start deploying a new version of a browser. Those are the customers that care about certain standards being supported and who don't necessarily need the latest and greatest if that means they have to test all their apps with every update. The only thing they care about are security updates. This is also the main reason why lots of companies are now ditching Firefox since they started to work with a shorter update cycle. So while you may be frustrated because you have to test your app in different browsers, know that it has it's reasons. And thanks J.J. for writing this article, it was really needed on this site ;-)

belli_bettens
belli_bettens

html5 provides offline storage out-of-the-box and thus enables you to work disconnected. This is not something that needs to be provided by frameworks. This kind of ignorance (and I don't mean to offend you) is exactly what this article is trying to eliminate: It's already there!

Sterling chip Camden
Sterling chip Camden

... when you could be running FreeBSD and have your choice of dozens of browsers (but no IE!).

jvandemerwe
jvandemerwe

http://en.wikipedia.org/wiki/File:Wikimedia_browser_share_pie_chart.png This chart from Wikipedia, october 2011 shows clearly that IE has a WW marketshare of less than 35%. Sometimes I have the feeling it is because of IT management, that they don't go forward on progression. Although I must say that some Windows "cloud" products require IE. So I will take some reserveration on my last statement regarding management.

lishchuk
lishchuk

"...The only thing they care about are security updates...." This would be enough to consider throwing out IE (especially IE6) Actual reason why big companies are using MS/IE not because they care, but because they are conservative (read: clumsy and slow)

jvandemerwe
jvandemerwe

I think first of all browsers are made for users to access internet/intranet. I see not a difference between business or non-business consumers. And believe me, not all business users go to IE for the reasons you describe. If I see how many Apples are now in the business market, I know almost for sure that the most of them work with Safari, because it is coming with the package. Many users don't care about what it is called, because most users don't have IT as a core competence. I have customers that have their PC still as it came after installation. For them it is the way it always was. IE is used a lot on Windows PC's because it is so tightly integrated with the OS. Something that Microsoft has paid a penalty for in Europe. I think that the browser issue is developer issue. They complain the most. I have never heard a "normal" user talking about his browser, let be imcompatibility of it. Most accept, because it just is. To give a final thought: I know an IT manager that have his company work with Opera, why? because he likes it. No questions asked. Wise? You tell me.

md_hunt
md_hunt

I agree with the direction of your comment, that is, business users need and want a browser that will update only when they choose, so that it can be tested with the required web apps. However, this is not because IE is sticking to "standards" and the other browsers are not. The opposite is actually true. Most browsers released today use international standards as their starting point and build from there. I say most because IE has always been the exception. Microsoft, in the early arrogance especially, has traditionally shunned the "standards" and gone their own way. It is IE that remains out of compliance with industry recognized standards.

mattohare
mattohare

Not just the one specific technology.

Justin James
Justin James

You *could* get IE for FreeBSD (I *think*), and definitely for Linux... if you don't mind using IE 2. ;) I think there was IE 3 on *Nix too, but I don't remember for sure. J.Ja

belli_bettens
belli_bettens

I didn't say "The only thing they care about is security" period. I said "security updates". Last time I checked MS is still rolling out updates for IE :-) IE6 might be a bad legacy for MS but IE9 is among the most secure browsers out there (even if you don't favor it)

grayknight
grayknight

Being a web developer since the IE3/4 and Netscape 3/4 days, I remember the real browser wars and the serious headache of getting a site to even barely look like the same site on more than one browser. If you write a site to Xhtml 1.1 strict and view in IE first (if you can get people upgraded to IE8 at least that will help), it'll work great in IE and mostly be fine in Firefox, Chrome, and Opera. They all interpreted spacing slightly different and the HTML4/Xhtml 1.1 specs were too open-ended, but with a few minor adjustments via javascript for Firefox and Chrome, the page can look identical on all the browsers.

belli_bettens
belli_bettens

In the end the frameworks can all fall back on html5 at some point, no? So you don't need any framework for that.