
Is IE9 a modern browser? - etaty
http://people.mozilla.com/~prouget/ie9/
======
pilif
In earlier comments, I always cautioned people about IE9 and I just didn't
trust them with actually creating a browser that works.

And while I agree with the article that IE9 is still very lacking, I also just
went through making the application I'm working on IE9 compliant including
rounded corners and shadows plus some CSS transformations. Here's the steps I
had to do:

1) don't load IE specific CSS hacks

2) don't load IE specific JS hacks

3) ?

there was no step 3.

So if you are not using all the latest and greatest features in HTML5, but try
using the essentials, you will get a very good experience while trying to make
stuff work in IE9: The features it has seem to work correctly for a change and
it has enough features to be useful in many webapps.

Of course it's still far away from being cutting-edge in feature support, but
at least the usual crap of "try to open an existing website in a new IE
version: see barely any page rendered until you add a ton of hacks" has gone.

Now, if IE9 would actually run on the (still) most-used operating system
(Windows XP), I would be really happy as I could tell people to get a very
good experience by just upgrading their browsers (as opposed to switching
browser brand).

~~~
speleding
The app I needed to convert needed several JS hacks to get IE9 working. For
example Number("") evaluates to NaN in IE9 while it evaluates to 0 in every
other browser. It's small things like that which cause hard to find bugs.

~~~
SoftwareMaven
IE9 actually gets this one correct according to the language spec, but I
assume it was a bad assumption that made it incorrect.

The Number constructor is supposed to call ToNumber on its parameter, which is
supposed to return NaN if it can't parse StringNumericLiterals, which would be
the case with "".

I think the confusion came from "" being treated as "false" in JavaScript, and
Number is supposed to return 0 if it isn't given a parameter. I could imagine
the code in the Number constructor looking like this for non-IE browsers:

    
    
      if (param)
         num = ToNumber(param)
       else
         num = 0
    

whereas in IE, it probably looks more like this:

    
    
      if (param != undefined)
        num = ToInteger(param)
      else
        num = 0

------
Silhouette
This is just a troll post getting way too much attention. Let's consider a few
facts to put it in perspective.

Firstly, neither IE 9 nor Firefox 4 has been released, and neither HTML5 nor
CSS3 is a standard, nor will either be for several years at a minimum. The
entire argument in this post boils down to not liking one experimental piece
of software over another because the author's personal preferences for
experimental features are not supported.

Secondly, when it comes to performance, IE has been getting better with every
version while Firefox has been getting worse. If you want to talk about modern
browsers in a _useful_ way, instead of about bleeding edge features that no-
one will be using on mainstream web sites for a while anyway, consider that
Firefox is the only one of the major browsers that does _not_ handle each tab
independently, leading to obvious performance and security problems.

Thirdly, the trend for Google and now apparently Mozilla to release updates
every few weeks is _not_ necessarily a good thing. The major advantage is
supposedly that it allows browsers to develop faster, but as any Linux
advocate can tell you, it's no good having a great platform if no-one is
building great stuff on top of it. For developers, automated updates every few
weeks are often unhelpful, because you're always trying to test against a
moving target. When you have to deal with inconvenient realities like
contracts and customer approvals on major projects, it's now almost impossible
to include testing against Chrome and soon Firefox because you don't even have
a stable version to use as a basis for tests. I have no problem with pushing
security patches more regularly, but they shouldn't be changing functionality
and obviously Microsoft does this for IE anyway.

Maybe I'm just weird, but I consider issues like performance, reliability, and
having a stable foundation to build on to be far more important than
supporting your own browser's take on some hypothetical future "standard",
which is just IE vs. Netscape all over again. On that basis, IE is currently
the only one of the big three that is actually going in the right direction.
It's just a shame they're not providing it on XP.

~~~
beej71
It's more than a shame Microsoft's not providing IE9 on XP. It's positively
criminal. Do you know what it's like to target IE8 with a web app that was
built for a modern browser? And XP has 60% of the market!

It has been a good... forever since MS has been a proper team player when it
came to working well with websites that run on all other browsers with minimal
modification.

This is closer than we've ever ever been in the past to having a remotely sane
reality.

So pretty please, with sugar on top, fix the fucking browser.

~~~
Silhouette
> It's more than a shame Microsoft's not providing IE9 on XP. It's positively
> criminal.

I understand the sentiment, but I don't think that kind of hyperbole advances
the debate in any useful way. Obviously Microsoft are under no legal
obligation to support an operating system first released many years ago and
when two successors have been out for a while now. It may be _commercially_
sensible for them to do so, but that depends on many other factors beyond the
preferences of the web development community.

> Do you know what it's like to target IE8 with a web app that was built for a
> modern browser?

Yes, I do that for a living, on multiple projects, and so far I have
encountered no serious difficulties in doing so. What problem(s) have you
found with running "a web app that was built for a modern browser" on IE8?

> It has been a good... forever since MS has been a proper team player when it
> came to working well with websites that run on all other browsers with
> minimal modification.

So people often seem to say, yet I find very few portability/compatibility
issues with running my web apps on any recent browser. I was surprised to find
that in the last problem that did arise, it was actually IE that was compliant
and Chrome and Firefox that were implementing non-standard behaviour. And as I
noted before, IE is one of the only major browsers that _hasn't_ been playing
silly political games with blocking useful video-related technologies lately.

> This is closer than we've ever ever been in the past to having a remotely
> sane reality.

I guess we just have very different points of view, perhaps born of different
real world experiences. In my world in 2011, we are closer than we have been
for many years to the hell of IE vs. Netscape, everything working differently
in every browser, and having no stable target for development. As I see it,
the blame for this lies almost entirely with Mozilla, Google, and to some
extent the standards bodies, not with IE.

~~~
Isofarro
[backporting IE9.0 to Windows XP]: "It may be commercially sensible for them
to do so, but that depends on many other factors beyond the preferences of the
web development community."

It's not within Microsoft's strategy of planned obsolescence. For their
continued survival they need people buying newer versions of the same
software.

~~~
pedrocr
XP came out in 2001. According to Apple, Safari 5 requires OS X 10.5.8
(Leopard), released in 2007. Microsoft actually has a pretty good track record
when it comes to supporting older versions of its operating systems. Just a
bad record getting everyone to upgrade to newer versions.

~~~
alanh
Stop the presses. Apple software like iTunes and Safari STILL RUN ON WINDOWS
XP. The difference is in how many users are on XP (50%?) vs. older than OS X
Leopard (low single digits).

Related: Firefox, Chrome, Safari, _and_ Chrome Frame are all more advanced
than IE9 and all run on Windows XP.

~~~
pedrocr
>The difference is in how many users are on XP (50%?) vs. older than OS X
Leopard (low single digits).

And the reason for that is probably that Microsoft keeps so much backwards
compatibility that the cost of not upgrading the OS is much lower than on OSX.

------
simonw
I'm pretty gutted by the lack of support for the HTML5 history API. Without
that, we're doomed to polluting the Web with broken #! URLs (ala Twitter and
Gawker) for the next five years.

~~~
Pewpewarrows
I've accepted that fact and I'll just continue to serve IE9 the same degraded
web pages without using the HTML5 History API.

Better browsers get a better experience, IE users continue to reload the full
page for each link, and everyone uses the same non-hashbang'ed URL.

Sucks for IE users, but I'll just continue to not give a damn now that it's
apparent IE9 won't be improved any more between now and release.

------
ecaron
As long as <http://crashie8.com/> crashes IE9, it shouldn't be considered a
modern browser. A modern browser requires a development team that is
responsive to large bugs (analogous to PHP and Java being modern languages
because they quickly responded to the big-magic-number bug). None of the other
"modern browsers" (e.g. Firefox, Chrome, Safari, Opera) have any crash-the-
computer bugs anywhere near the scale that IE9 still has.

~~~
noarchy
I know that page shouldn't crash any browser, really, but the crash happens as
a result of poorly-written HTML (a missing </form> tag) that IE can't seem to
handle.

~~~
ecaron
The poorly-written HTML, however, is frequently generated by larger ASP.NET-
based CMS systems (and occasionally SharePoint servers) that start the <form>
in the header and don't close it on the page. This snippet is just a shorter
example of the error, but is certainly not the only instance where this
problem rears its ugly head.

~~~
noarchy
That would be an example of yet more problems originating from MS products,
then, right? I don't see why MS can't get this right. MS has the resources to
produce a good product, but when it comes to the web, they fall on their
faces.

~~~
barista
Hey check your facts. I just tried with the RC build of IE. It never loaded
the site but the browser didn't crash and the rest of the tabs are working
fine.

~~~
noarchy
Of course I can't rule out them getting it right in future releases, and I
hope that they do. I was talking about what is out there in the MS ecosystem,
today.

------
pkulak
Whatever. The fact still remains that IE is the dominant Browser, and being
the weakest link, you have to just be happy for every feature that they add or
fix, because as soon as that happens, there's a hope of you actually being
able to use it.

If I were to say anything to the IE team it woud be, "Great job! Now keep
going, please."

~~~
wmoxam
For my sites IE is no longer the 'dominant browser', it's market share has
fallen to ~35%, down from >50% a year ago. Of that 35%, only half is IE8 with
IE 6 & 7 making up the other half.

If trends continue, IE9 _might_ constitute 10% of my total traffic in 2 or 3
years. I 'm not looking forward to supporting yet another quirky MS based
browser.

~~~
yuhong
When I was talking about XHTML, I estimated that IE8 might die in 5 years
after IE9 release. I mention XHTML because it is an area where IE has been the
weakest link for years.

------
silent1mezzo
Sadly we'll have to continue supporting inferior browsers for a long time.

Don't get me wrong, IE9 is certainly a step in the right direction for
Microsoft but it still doesn't stack up. Luckily there are a lot fewer hacks
needed.

~~~
nudge
Is there nothing to be done about this situation? I have a poll up and would
be interested to hear your views:
<http://news.ycombinator.com/item?id=2222351>

------
nkassis
Lack of WebGL support is a real bummer but realistically WebGL came to late
for the IE9 release cycle.

Also, I don't think Microsoft plans on supporting in in IE10. Afraid of the
competition with their own tech I guess.

I'm getting all my user to switch to chrome and firefox 4, I haven't gotten a
lot of complaint about it. (none actually so far)

------
Luff
Woah, am I the only one who loves the work that has been done with IE9? Their
new rendering engine is sick, Microsoft must have stolen personal from their
DirectX team to work on it. Everything is hardware accelerated, the anti-
aliased fonts look great, Flash video playback of 1080p uses just a few
percents of CPU, something that max out a whole core for me in FF or Chrome.
Same thing with moving / fading / modifying elements with JQuery.animate(),
super smooth and uses almost no CPU.

I'm still a die-hard fan of Firefox because of all the plugins, but damn I
wish everyone were using rendering engines as good as the one in IE9. I hope
FF and Chrome will close this gap soon.

~~~
sid0
On Windows Vista and 7, Firefox 4 uses the same rendering engine
(Direct3D/Direct2D/DirectWrite) that IE does.

~~~
Lennie
Even with hardware acceleration in IE9 and Firefox 4 enabled, Firefox 4 is
still faster than IE9:

<http://developers.facebook.com/blog/post/460/>

------
kenjackson
So let me get this straight... IE9 is not a modern browser because it is on
par w/ Mozilla's shipping browser?

If IE stays one rev behind Mozilla in terms of standards conformance, but
keeps up the great perf work they're doing then I think that's actually really
good. Especially considering where they were coming from.

I've been using IE9 RC (after having to revert IE9 beta -- too many bugs and
issues) and it has been near flawless. I'm not sure if its a better browser
than Chrome now... but its close enough that I don't miss Chrome.

~~~
jamesgeck0
I don't see a problem comparing the capability of Microsoft's unreleased
browser with a browser released two years ago. Although it's much more telling
to compare it to Mozilla's unreleased browser. Or Chrome.

------
djacobs
As far as I know, IE9 isn't planning to support WebSockets, either. How does
Microsoft expect to break back into the modern browser space if IE9 doesn't
even match (let alone exceed) the current offerings from Mozilla?

~~~
jokermatt999
"For the client side, WebSocket was to be implemented in Firefox 4, Google
Chrome 4, Opera 11 and Safari 5, as well as the mobile version of Safari in
iOS 4.2.[1] _However, although present, support is now disabled by default in
Firefox and Opera, due to concerns over security vulnerabilities.[2][3][4]_ "

It looks like WebSockets have issues beyond lack of support in IE. I agree on
the rest, but this isn't just MS not supporting them.

~~~
axod
Even if WebSocket didn't have supposed security concerns when used with buggy
web caches, I'm extremely doubtful that MS would have supported them.

~~~
chc
I agree with you, but at this point we're just axe-grinding. It's unfair to
fault Microsoft for not implementing it in an alternate reality where it was a
good idea to do so.

~~~
axod
It's been live, working, and providing awesomeness in Chrome for ages.

~~~
chc
But not Mozilla and Opera, and Google have said they're prepared to pull
support if the vulnerabilities become more than theoretical. I just don't
think it's fair to single out Microsoft for not implementing something that
half the browsers out there (including IE's closest rival) intentionally
disabled.

I wish we could have WebSockets, but it was not Microsoft's failure to
implement that made them unusable in the general case.

~~~
axod
> "I wish we could have WebSockets"

About 20% of Mibbit users are using websocket and have been for several
months.

It's inevitable that any security worries will be rectified (Hopefully by
simplifying the protocol rather than adding another layer of needless
complexity), and browsers will update.

MS may as well implement what exists now, even if they decide to leave it up
to the user to enable it.

------
yuhong
"The reality is that IE9 is 2 years late. Microsoft is glad to come out with
the <video> tag, the <canvas> tag, SVG, and some CSS3. Like other vendors did
years ago. Firefox 3.5 had the <video> tag, the <canvas> tag, Geolocation, SVG
in 2009. Canvas and SVG existed 5 years ago." Don't forget XHTML too.

~~~
simonw
I don't think XHTML is particularly relevant to web browsers these days. It's
still useful as a format for storing documents, but I don't see it going
anywhere as a widespread format for sending documents to web browsers.

~~~
chc
Even on sites that claim to be serving XHTML, actual adoption is pretty low.
You have to set the content type in the HTTP headers (no meta tag — the actual
header) to "application/xml+xhtml" or you're actually just serving quirky
HTML, and most sites don't bother, because HTML turns out to be perfectly
sufficient and they don't realize they're doing it wrong (+ the old IE bugs
with XHTML).

For example, look at the source for W3Schools.com. Then use Firebug or curl to
look at the headers. That is an HTML page that thinks it's XHTML. The poor
thing is addled.

At any rate, we've done without XHTML for quite some time now.

~~~
yuhong
>(+ the old IE bugs with XHTML)

Yea, more precisely the lack of support, which was exactly what I was
referring to in the OP. Particularly how it lasted for 11 years after XHTML
1.0 became a recommendation.

~~~
chc
Yeah, I know, which is why I didn't go into more detail to repeat your point.
I was just saying, XHTML never really happened.

------
KeyBoardG
I stay away from these types or articles. It is impossible to get an unbiased
flamewar starter writeup. Nor do I really care. IE9 works great for me and I
like they new rendering engine and javascript compilation to native code.

------
Synaesthesia
IE9 is a huge improvement over previous versions. The big improvement in IE9
is the attitude that MS have with the browser. Clearly good HTML5 support is a
big goal of Microsoft's, as well as speed, stability and javascript
performance.

These things were just not there before. Sure the feature set is still
somewhat lacking but they are developing at a great pace. At this rate it will
soon be a true competitor to the modern browsers.

------
markkanof
Microsoft really needs to break away from the major version number releases
for IE and go with an iterative approach like Google does with Chrome. For
something like Windows or Office it probobly still makes sense to have major
version releases because for the average computer user a new major version
number means there are a bunch of new features and that they should consider
upgrading. But Internet Explorer is a free product. I don't see the marketing
value in only releasing major version numbers. Instead they should be
constantly pushing out new stuff. At least in my opinion, that would still
provide the feeling of having something fresh and new if I was receiving a
constant stream of new features and bug fixes.

Even if they did get every conceivable feature implemented for IE9, it would
only be current for a short time after the release. It would then sit
basically unchanged for a year or more (thus seeming old and outdated) while
they work on IE10. Meanwhile Chrome would have put out a ton of new features
that are all added a few at a time.

~~~
kenjackson
Unfortunately they likely won't due to IE being big in the enterprise. This is
also why they tend to not add features in between revs, just bug fixes. And
even then they won't fix a standards comformance bug unless there's a security
issue.

Enterprise users want to be able to say, "Use IE9 to access your expense
reports, period". They don't want it to be "Use IE9.0.1.2.1.a or above" or
"IE9 shipped before 10/1/2011".

Pushback from the enterprise is probably driving this more than anything else.

They could go to a model where they have a consumer and enterprise branch. And
the enterprise branch syns up with the consumer branch on major releases. But
that starts to sound a little chaotic (but I think doable).

~~~
noibl
> Enterprise users want to be able to say, "Use IE9 to access your expense
> reports, period".

Every time people bring this up they make it sound like it's a legitimate
requirement. It's not, and the cost of supporting a given browser's rolling
release schedule in-house at these companies is miniscule compared to the
global cost to the web development industry and user productivity of having to
support three (possibly four) different versions of IE at any one time.

~~~
Silhouette
> the cost of supporting a given browser's rolling release schedule in-house
> at these companies is miniscule compared to the global cost to the web
> development industry and user productivity of having to support three
> (possibly four) different versions of IE at any one time.

That's a mighty bold claim to make without any supporting data, given that the
maths is so heavily stacked against you.

Suppose a 5,000 person company standardised on Chrome tomorrow and built their
key in-house IT systems to support it, as many have with IE over the years.
Now suppose that in about five weeks, Google push a breaking change in the new
release of Chrome, that takes out some of the organisation's key intranet
functionality. What would that company do?

Think quickly, because for every hour that key system is down and all the
staff are stopped from working, the company could have hired an extra web
developer _for an entire year_.

~~~
noibl
> Now suppose that in about five weeks, Google push a breaking change in the
> new release of Chrome

No, I refuse to swallow this particular strawman that you've been using
throughout the thread.

I'll elaborate. Web development projects should be undertaken with reference
to the current state of support across browsers for current and emerging
standards, with the expectation that such support will improve over time.
Basing your tests on the rendering characteristics of a single browser at a
single point in time is simply wrong-headed. So this 'breaking change' idea is
not just wrong but incoherent.

Obviously 'breaking changes' can happen in the context of browser UI but (a)
that has nothing to do with web development and (b) rolling release schedules
are actually better at catching those problems than epoch-making version
releases.

~~~
Silhouette
> Web development projects should be undertaken with reference to the current
> state of support across browsers for current and emerging standards, with
> the expectation that such support will improve over time.

Says who?

If you're developing a major project, for a major client, for serious money,
then there _will_ be formal acceptance tests, and if the product you build
doesn't pass those tests, you don't get some or all of the money until it
does. What kind of professional web development shop is going to make that
kind of commitment when the tests themselves aren't pinned down, or to make
any legally binding commitment that their finished product will work properly
with software that is beyond their control and not fully specified? You can't
even defend this position on the basis of Agile development practices, because
a six week cycle is still too short to get through a full round of
development, a full set of testing at the various levels required, and final
approvals, before the goalposts move again. You don't seem to acknowledge this
scenario at all, but outside of relatively small projects it is the norm.

As several of us have observed elsewhere in the discussion, the major problem
with making this kind of open-ended commitment when the target platform isn't
known yet is that sometimes support _doesn't_ improve over time. We have even
given direct examples, such as Google's decision to kill H.264 support in
Chrome.

~~~
noibl
I didn't say not to test. I said not to test only on a single browser version.

> Says who?

Do you really need a list?

> when the tests themselves aren't pinned down

Test for compliance with the standard, not compatibility with the engine. If
not enough engines support a feature for which the standard is still emerging
_don't use it_.

> We have even given direct examples, such as Google's decision to kill H.264
> support in Chrome.

Your examples don't hold water. No specific codec support should be assumed at
this point _because it's not standardised_.

------
jasonkester
This reads like the Firefox team desperately trying to sound relevant, as the
realization sets in that they're probably going to fade away from most
people's consciousness pretty soon.

Internet Explorer is, and always has been the browser that comes with your
computer. It works fine, and most regular people will never bother to change
it.

Google Chrome is the better browser that your tech-savvy children or friend
might install on your machine, and that you'll immediately notice is better in
several ways and start using.

Firefox used to hold that 2nd place, but now it's been relegated to "the
browser that people who were _really_ passionate about Firefox five years ago
still use". It was a great alternative to IE6 back in the day, but its time
has come and gone.

~~~
dstein
Firefox 4 beta is very noticeably faster than Chrome on my Mac in heavy
JavaScript/Canvas experiments. Chrome is especially a dog when in fullscreen
(2-3 times slower) for some reason.

~~~
jasonkester
Unfortunately, this seems like another example of FireFox optimizing for the
wrong thing.

To the casual user, FireFox seems "slow" because it takes 30 seconds to start
up when you click its icon. Chrome takes under 5 seconds, and is thus "fast".

Nobody but you and me care about how fast our javascript runs. The FF team is
trying to please us, while ignoring the 99% of users who'd prefer to just be
able to check their Facebook in the morning without waiting forever.

------
tlammens
They can't even let: body and/or element { width:100%; height: 100%; } which
is css 1, behave properly. While chrome, firefox en safari behave as I would
expect it to be.

Example @ <http://www.gamenull.com/> :-(

------
devongovett
I added some annotations to the infographic.
<http://dl.dropbox.com/u/534786/ie9_vs_fx4.html>

While I love the new stuff being implemented in cutting edge browsers like
Firefox, IE9 is a huge step up from IE8. Microsoft had to choose what to
implement, and choosing stuff that isn't likely to change soon makes sense for
them. We shouldn't be expecting them to implement everything all at once.
Here's to more frequent updates to IE that bring these new features once they
are more fully developed!

------
shad42
All articles from Mozilla (especially from Europe) are usually not objective,
they always tend to make some buzz around Firefox. Personally I use Chrome,
and used Firefox before.

I am not personally familiar with all stuff from MSFT, but I won't take Paul
Rouget's trolls into account to make me an objective opinion.

------
sathishmanohar
Its sad, many developers tend to use features that is supported by all
browsers, So, it may take a while for all the cool CSS3 gradients and
animations to go main-stream, just because of IE9.

------
tobylane
FF3 certainly isn't, can Mozilla just shut up and stop?

------
shimondoodkin
<http://habreffect.ru/files/a9d/72856cf6c/242622165.png>

------
suyash
Nice analysis by Mozilla..but I still would go with Chrome 9!

------
GrandMasterBirt
We need more than just a blog post, we need this out and about all over the
interwebs.

Its absolutely true, and IE9 is now catching up to firefox 3.6 (finally) and
ie10 will finally catch up to firefox 4.0 (maybe) in a year. AND the article
forgot to mention that FIREFOX - ALL VERSIONS - WORK ON WINDOWS XP, VISTA, 7,
MAC OSX, LINUX, UNIX. Which means that if you are a MICROSOFT WINDOWS XP user,
you cannot use a Microsoft browser to freaken' browse the modern web, IE8 is
the only hope. There is a lot wrong with the state of IE. And technology is
only one of those things. Nothing but technology is being addressed though.

~~~
kj12345
Right, and Firefox just switched to a Chrome-like iterative release schedule.
The main problem with IE9 is that we're even talking about a specific version.
If Chrome 9 was finalized today and a new one didn't ship for months/years, it
wouldn't stand a chance feature-wise either.

------
samic
Do you really think that Micro$oft can make something modern?! they just copy
Firefox with more Color and Graphics!! As they have done before with Windows,
Bing, VS ,...

