There is still some slight probability that even after reading
The Broken Web and
The Broken Web 2 there are still optimists about the future of the web among the throng of readers of this no-blog. After all with so many readers chances are that some of them will be in severe error. Of course I am here to help them get rid of their illusions because the sooner they see the truth the lesser the pain will be. Today I will tell you about the company that has thrown the greatest amount of shit in the fan of absurdity that we call World Wide Web, but before that let me point once again some random thing that went very wrong with the so called "web standards".
I was browsing through the "standards" docs the other day when I encountered
this quite funny part regarding the BLOCKQUOTE element. It says that BLOCKQUOTE is used to render quotations. Like most things in the HTML standards it is completely optional what the user agent will do as long as it designates a quote. The docs say that user agents "generally" render it as indented text. A few lines down one can read that W3C recommends that user agents render quotes around the content of a BLOCKQUOTE but in the very next sentence W3C recommends that user agents NOT render quotes because authors have used this element merely to indent text and not to designate quotation. These are real world "standards" for you! "Standards" that the average web developer has not read and will never read. I hope that now you see that things will not be fixed just with good will. Someone has to make a push.
There was this company, that I will call the Soft, that was about to make a push. The plan was simple. They intended to conquer the browser market and gain a complete monopoly. This way everyone will know how certain markup is supposed to render because the One browser renders it this way. Even if there were some browsers with about 1% market share they would be forced to mimic the behavior of the most popular browser. The Soft proceeded with their plan using not only superior browser technology but also unfair business practices. Within several years they managed to kill every other browser gaining more than 95% market share for their Exploder 6. Exploder 6 was actually a remarkable browser at the time and had features that the competition could not reach. Previous versions of Exploder pioneered technologies like XMLHttpRequest (the foundation of AJAX) and the IFRAME HTML element in the race to become the One browser. The smoke settled down and it looked like web developers would be able to enjoy the long-awaited peace.
However at the Soft's headquarters everyone suddenly went nuts and decided that they can close the division that developed the Exploder. (Actually they merged it with the OS division) No new version, no new features. According to the Soft Exploder 6 was supposed to be the version that everyone was going to use forever. I think that the brain of the man who took this decision was not only soft but probably liquid or even vacuum. Whoever you are I hate you. You have fucked up what the Soft achieved and brought us the pain of having multiple browsers again. You are personally responsible for all other browsers that we have to deal with now. The developers who built these browsers cannot take credit for their popularity because all credit goes to YOU.
A bunch of rebels were planning to resurrect Exploder's greatest enemy with a project called Phoenix*. They worked for years and added very special feature called tabs. Their browser sucked hard but it had tabs so people started using it. Meanwhile the Soft were pulling out surveys out of their asses claiming that people did not want tabs. Yeah, sure! Even if these surveys did happen the Soft should know better than anyone that PEOPLE DO NOT KNOW WHAT THEY WANT! After several years the Exploder team was formed again and they started working on version 7. It had tabs. However it was too late. Phoenix was gaining market share and attention. It was also drawing attention towards the dreaded web "standards". In a remarkably stupid move that can only be compared to the closing of the Exploder division the Soft decided that they should go after the standards chimera and tried to make Exploder 7 closer to the "standard" breaking backward compatibility with Exploder 6. Fast forward in the future of 2009 - Phoenix is gaining more market share, several other browsers have market share above 1%, Exploder 7 has gained a solid market share of about 45% but Exploder 6 still has like 20% and the Soft are releasing Exploder 8. Exploder 8 has ONE MORE rendering engine that is even closer to the "standards" (read: Breaks even more things). They have introduced Compatibility View that is not fully compatible supposedly due to changes in the JavaScript engine. The changes are small and reasonable but they seem to break compatibility. It seems that the Soft do not understand one basic fact - When you introduce a new rendering engine the old one does not disappear especially when your browser is bundled with an OS that you are still selling. I cannot comprehend how the Soft fell for the "standards" bullshit… at least they do not support XHTML yet.
What can we do? Basically nothing. I suspect that with time we will either have several types of sites that we will open with several different browsers or every site will have different version for every browser. Most probably the latter because it seems that we are very close to this situation right now. Look what I found in MS AJAX.NET library:
switch(Sys.Browser.agent) {
case Sys.Browser.InternetExplorer:
Sys.UI.DomElement.getLocation = function Sys$UI$DomElement$getLocation(element) {
... Skipped about 30 lines function definition for IE ...
}
break;
case Sys.Browser.Safari:
Sys.UI.DomElement.getLocation = function Sys$UI$DomElement$getLocation(element) {
... Skipped about 40 lines function definition for Safari ...
}
break;
case Sys.Browser.Opera:
Sys.UI.DomElement.getLocation = function Sys$UI$DomElement$getLocation(element) {
... Skipped about 30 lines function definition for Opera ...
}
break;
default:
Sys.UI.DomElement.getLocation = function Sys$UI$DomElement$getLocation(element) {
... Skipped about 50 lines function definition for the browser that does not deserve to be mentioned by name ...
}
break;
}
I believe that other JavaScript libraries do similar things because we have web standards you know and all browsers support them. Our best chance is using the latest version of Exploder (version 8 is pretty good) in desperate hope that one day the Soft will put the gene back in the bottle and will get 95% market share again. I hope for the next version of Exploder they will use WebKit as they hinted several times. This way they will reduce the number of engines on the market because several other browsers already use WebKit. It will also be very cool if the Soft buy Opera. Maybe someday someone will save us from the stupidity of the Soft and let us hope that they take notes.
* Phoenix was renamed before its first release