knockout icon indicating copy to clipboard operation
knockout copied to clipboard

Maybe it's time to drop old browsers?

Open klimashkin opened this issue 11 years ago • 24 comments

Hello! Last two years for all projects in which I participate was strongly decided to stop supporting older browsers, and it is highly simplified code and saved a lot of time. We ventured, but everything went well, it is appreciated by users. Many libraries are now cleaning and refactor their code, rejecting older browsers, thus increasing productivity.

Maybe it's time to drop IE6-8, FF<4, Safari<5, Opera<12 in the upcoming Knockout 3.0? For modern architecture is more important execution speed and server-side support (thanks for PhantomJS)

klimashkin avatar Jun 21 '13 13:06 klimashkin

I'll second the motion to drop support for old browsers

fauverism avatar Jun 21 '13 13:06 fauverism

For us it is mission critical to have IE7 support as there is still huge legal market in US that still sits on XP + IE7. On one of our projects 75% of users are IE7 users.

epodolyak avatar Jun 21 '13 13:06 epodolyak

Those who can not get rid of old browsers can use the 2.x branch. But we must remember that users are using older browsers till sites and popular libraries supports them. It's a vicious circle. It's time to tear it up

klimashkin avatar Jun 21 '13 14:06 klimashkin

I work for a company that sells web apps to the banking/mortgage industry. A lot of our clients (every big name bank you can think of) are slow to move from older browsers... some are just now getting off of ie6, which we only officially stopped supporting in the past year. I've worked in the insurance industry previously (up until 3 years ago) and they aren't much better. Change is slowly happening but we're at least 2-3 years out from the majority of these companies moving off of ie8. I know its coming, but as a dev who's in the trenches I ask that you delay removing old browser support as long as possible.

Also I'm waiting on the pull request for older browser performance issue #824 to be reviewed and accepted. If someone could look at this it would be appreciated.

coderenaissance avatar Jun 24 '13 14:06 coderenaissance

Given that there is native support coming for observables (ECMAScript; example on HTML5Rocks), how much benefit is there to making a push to drop old browsers before the ability to natively subscribe to events shows up? The performance offerings that new capability brings will likely lead to another round of requests to drop old browsers, and then there will be 3 versions of knockout in the wild.

ehdv925 avatar Jun 26 '13 20:06 ehdv925

klimashkin, I don't agree that users are using older browsers because sites and libraries support them. Most people still using IE6 are doing so because of corporate policy, not upgrade aversion.

Many of our clients are hospitals using IE7 because of IT policy (some are still on 6!). This is unlikely to change anytime soon.

kyeotic avatar Jul 31 '13 21:07 kyeotic

It's unlikely to change because it works... ;)

tedsteen avatar Aug 01 '13 06:08 tedsteen

No, its unlikely to change. Not because it works, but because it's unlikely to change. They were on IE7 before they were our clients; supporting IE7 was a precondition.

It may sound nice to force people to upgrade by dropping support for them, but it isn't that simple. It's cheaper for them to do that than to upgrade internally. They have no end of trouble getting their old browser to work with things that it struggles with, but that doesn't matter. They have too much OTHER software weighing on the decision.

You talk about dropping support for everything under 9, but that means forcing them to upgrade not just their browser, but their OS. Most of these guys are on XP. It's just not going to happen. They could afford to write new software to work with their older browsers for less money than upgrading every computer in their system ten times over.

And I know medical isn't the only industry in this boat.

Do you know why Knockout was even an acceptable library to START using were I work? It wasn't because it was shiny and new. It was because it supported IE6. And the developers made a statement about that backwards compatibility being IMPORTANT (I think this probably has something to do with Steve being from MS, who understand the value of long-term support in enterprise software).

You want a library who sells that compatibility on their homepage to drop it because other people are? Because it is "appreciated by users"? Its certainly not going to be appreciated by users like me who require IE6 support.

tl;dr

Knockout sells itself on that compatibility, and taking it away won't get legacy enterprise users to switch software, only software firms.

kyeotic avatar Aug 01 '13 06:08 kyeotic

I completely agree with @tyrsius. Whilst I'm fortunate enough now to be working on a project that mandates a minimum of IE 9 I think this very unusual in the enterprise sector.

Prior to this I was working for a large investment bank which, only a year ago, was running XP as their corporate desktop install and IE 6 was the company wide browser. The whole company was prevented from upgrading even to IE 8 because a number of very old web applications that were used did not support IE 8 (I know, I know...).

Whilst the day will come when IE 6-8 are as forgotten as IE 3/4 are now we are not there yet. Until IE 6-8 really die in the enterprise then I hope Knockout will continue to support them. Much as I loathe IE 6-8 I think it's important to work with the world as it is, not how we wish it would be.

johnnyreilly avatar Aug 01 '13 08:08 johnnyreilly

An <ie8-fork? I still believe a "forced" (you can still stay on the older version) upgrade is a good thing in the long run, but it will probably hurt. You got a point with it being a selling point on the homepage tho.

tedsteen avatar Aug 01 '13 09:08 tedsteen

ko 3.0 only starting to develop and the release will be no earlier than 2014. Nobody is saying that 2.0 will not support the old ie, but future must go futher. If you use old browser, please use ko 2.x just as you are using it now. For you, nothing will change

klimashkin avatar Aug 01 '13 11:08 klimashkin

Oh no, this is a TERRIBLE idea. OldIE support is one of KnockoutJS' key strengths. IE7 and IE8 are going to be around, and important, for a looong time. If only because Windows XP does not support IE9 and up!! And now with Windows 8, sysadmins are more unsure than ever on when to upgrade and how.

Most of my clients are on Internet Explorer 7. They are large universities, nation-wide institutions with thousands of employees and users, etc.

I selected KnockoutJS precisely because it supports IE6 and up. That fact alone is far more valuable than all shiny new features combined. It makes it a more practical library than EmberJS, AngularJS, etc.

Us developers in the field who are creating actual real-life applications used by regular people and organizations know that dropping support for oldIE is not realistic yet. This has nothing to do with some kind of imaginary vicious cycle where supporting oldIE is somehow keeping users from upgrading. The simple fact is that large corporations and institutions are simply really slow to update, regardless of what shiny new app X supports or not. They often measure update timelines in years. Besides the main obstacle (Windows XP), other reasons for not updating include:

  • the need to support legacy intranet apps developed for IE5+
  • app ecosystem depending on lower/different security settings in OldIE
  • IE9 and up breaking certain important APIs
  • need to train users
  • not enough employee/user complaints - you tend to get complacent in environments like these - and the power users likely figure out how to bypass the problem by bringing USB runnable Chrome/Opera/etc or something like that.

Please keep IE7 and up support in for at least the 3.x cycle. Perhaps drop IE6 if it really helps. Don't make the same mistake as EmberJS etc. KnockoutJS is a pragmatic library that has an inclusive attitude towards developers/browsers. I vote to keep that strength.

chrishonselaar avatar Aug 29 '13 18:08 chrishonselaar

Also - for the huge and still upcoming Chinese market of Chinese users Windows XP, and thus IE6/7/8, is still the standard and will remain so for a long time. Also consider the elderly, and the less fortunate, who might not be able to simply upgrade to a system that can run Vista/7/8.

I'm beginning to sound like a luddite, sorry :) I like new features and optimizing for modern browsers too. But if KnockoutJS sacrifices OldIE, it will be a big blow.

chrishonselaar avatar Aug 29 '13 18:08 chrishonselaar

IE6 and 7 have a limited practical lifetime. Next April, XP support will be dropped. As soon as someone creates an attack not already patched for, companies will be forced to switch.

For now it's still relevant, but hopefully support can be dropped in 12-24 months.

brigand avatar Aug 29 '13 20:08 brigand

since Microsoft have officially dropped support for IE6/IE7, can this be reconsidered in a future release?

damiandennis avatar Oct 06 '15 07:10 damiandennis

A lot of my clients are still running IE 8. Plus @ehdv925 has a good point about native observables.

simonmurdock avatar Oct 06 '15 08:10 simonmurdock

@simonmurdock @ehdv925 – Alas, native observables do not have a read-hook, so cannot be used for computed observables (there is no way to tell what your dependency chain is).

brianmhunt avatar Oct 06 '15 11:10 brianmhunt

oh, that is disappointing :-1:

simonmurdock avatar Oct 06 '15 11:10 simonmurdock

@simonmurdock I agree.

brianmhunt avatar Oct 06 '15 11:10 brianmhunt

https://twitter.com/kdzwinel/status/652393251924746240

klimashkin avatar Oct 10 '15 08:10 klimashkin

Why not adding ability for custom build? Check how MooTools are doing it. They wrap old browsers compatibility code in markers (as comments). Then if you use a tool called "packager" on the command line, you can get a clean build w/o compatibility code for old browsers. Very handy.

Me and my team vote for dropping support for IE<11, or ability for custom build (w/o old IE).

ickata avatar Feb 02 '17 12:02 ickata

Is there a way to do a sort of polyfill to native observables that would implement a read-hook? Full disclosure: I know very little about the underpinnings of the native implementation, and I have a sinking suspicion that it's buried so naively that you can't go in and extend it's behavior...

If anyone has that level of detail, I'd love it if you shared your knowledge...

chrisknoll avatar Feb 02 '17 14:02 chrisknoll

I feel like IE9 is a reasonable minimum (especially if a 4.x were to be considered).

codymullins avatar Jul 30 '17 01:07 codymullins

maybe 2019 it's time to drop old browsers? it's would be nice to drop some kb

0xff00ff avatar Apr 20 '19 21:04 0xff00ff