Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Being told to support IE6, any advice?
10 points by Azeralthefallen on Dec 31, 2018 | hide | past | favorite | 28 comments
We use React + Material Design, one of our largest clients has basically told us they are going to drop us because the people who use our app are stuck on IE6, which we don't support at all.

This never came up anytime before, or during the pilot. This only came out as we started to roll out to one of their offices.

Their primary workstations are stuck on a version of Windows 2000, because their primary workflow applications do not run on anything more modern. We are on premise for them, so i can make a special build if needed. Any suggestions or ideas? I looked and dug around and can't find anything.

Electron doesn't work on Windows 2000, and no amount of tinkering with babel seems to make it work at all.




I think you're out of luck. Hindsight is 20/20, but shouldn't their hardware and software requirements have come up long before you started development? How did you get to the point at which you were actively developing without knowing your target environment, especially if you're on premise?

At first I wrote a response suggesting a few ways you might be able to get it working on older versions of Windows, but they're just not feasible for anything prior to XP. Possible? Probably, but more work than rewriting everything, most likely.

You might be able to convince them to upgrade and virtualize their Windows 2000 programs--heck, you might even be able to get away with using DOSBox. That seems a lot more realistic than virtualizing Linux or a newer version of Windows on Windows 2000. But I wouldn't get your hopes up--anyone still on Windows 2000 is going to object heavily to upgrading; that's why they're still on Windows 2000. You can eliminate all the barriers for them and they still won't want to do it.

Edit: This might sound crazy, but have you looked into whether it's possible to make some changes to Electron to get it to run on Windows 2000? It's designed to be portable, so, in theory, you should be able to get it to run on a potato--assuming said potato has enough RAM.


Honestly we told them our requirements well over a year ago. Which wasn't an issue apparently, even when we did a pilot in their internal labs which they were running Ubuntu.

It only came up after we started the rollout, when someone from their side who was asked to write documentation about how our app would work into their workflow, realized our app didn't work at all on his station. Which lead to oh no their requirements are horribly wrong.

To me it was a communication breakdown on both sides, but i doubt i can get them to change.

I am going to give getting electron built in Virtual Box and see if i have any luck with it.


I don't think you're going to be able to go the virtualization route with Windows 2000 as the host. As the client, sure, but not as the host. You'd need at least XP.

For many contractors, Windows 2000 as a requirement would be a red flag--decline the contract and run the other way, because that's just where it starts. Chances are you're looking at the tip of the iceberg.

Since you're already committed, though, your focus should probably be on pushing them to upgrade whatever they can. It's a lot easier to run old software on new platforms than the other way around. Whatever ancient programs they want to run, they can do it on newer versions of Windows--there's guaranteed to be a way, and it'll be a lot easier than getting a modern application running on Windows 2000. Lots of people want to run old programs on new computers. Nobody wants to run new programs on old computers.

Edit: To clarify, there are great programs like DOSBox that will let you run old programs you wouldn't normally be able to run on new versions of Windows. DOSBox targets a specific niche, but it works well, and the concept is quite prevalent: people want a way to run their old programs, even if it's just for nostalgia. I would bet my life on it being significantly easier to run their specialized software on a newer version of Windows, even if it's in a VM. (Or, heck, what about WINE, since they have Ubuntu?)


You are definitely not out of luck, IE6 is not that bad, older React versions even supported it. You just need more shims and more babel plugins, so get someone who knows babel/ES3 well. Add the console shim and start working error by error.

Also, you should ask this in a JS community, because in HN you will get way too generic answers.


Don't attempt to build a SPA if you are support browsers that old (even IE8 imo). Give them a traditional server-rendered app and they'll be happy.

Since you've already built with React, the good news is that it's easy to build a React app that you deploy as a server-rendered app. Just make sure you are doing things in normal HTML, like forms, and not relying on xhr/fetch.


Being on premises even mitigates two of the major tradeoffs with server side rendering, latency and matching demand to computational power and bandwidth.


The only real option you have is to rewrite in a server side stack, PHP for example. IE6 isn't going to handle rehydration for SSR, and as you've mentioned any form of virtualization is going to be far more painful than it's worth.

It's entirely doable, the big question is - do you really want to? If this is genuinely the clients fault for not providing the IE6 requirement and asking you to work with a QA team using Ubuntu, then the costs should be covered by them. Potentially though, if the client is important enough to you, you may need to make a reduced rate offer or even take the hit yourselves. Whatever you choose, seeking legal advise may be a wise move.


Can you build a Win2k-compatible wrapper for a modern Blink or WebKit rendering engine?

And man, why aren’t they at least on WinXP?

You may have room to make an argument that this compatibility should be implemented in a separate contract/extension (that is, at extra cost) since compatibility with 20-year-old software that even MS no longer supports is not something that a vendor should reasonably expect as a requirement without it being explicitly brought up from the beginning. You may want to consult a lawyer.


Is a Docker or a VM solution possible? I admit to not being very knowledgeable here. If you can get a virtualized solution running a different version of Windows (or Linux) on these machines just for your app.

Either that or it's rebuild the app using jQuery and an earlier version of Bootstrap. For an alterative for Electron you can look into LibUI plus LibUI-Node.


That is something a coworker is looking into, the biggest problem is we are expected to have ~5,000+ users of our app internally providing them all with VM's is way beyond the scope of what we support.

Even getting our app running on premise was a nightmare, and resulted in us just buying a rack mount and having them put it inside their DC, after everything they gave us was pretty awful.


Consider perhaps a remote-terminal solution - in general I am against VDI and Citrix and such, but maybe you can find a remote app delivery mechanism that still has a Win2k client and can display the browser running remotely.

There are X11 servers for Windows that might be able to run Electron off a remote Linux machine, though watch out for problems with opening files and copy/paste.


Don't quote me on this, but I'm fairly certain it's not reasonably possible to get a proper VM running on Windows 2000. Even if you can get some form of virtualization working, it's going to be far too slow and cumbersome to run Electron.


I suspect this is going to be quite a painful thing to support. I’ve worked with IE6 in the past and even if you do get the app compatible, and get your CSS to render correctly, the JavaScript performance is dreadful. I used to find that our Dojo application when working at IBM would gradually get slower and slower without a page refresh.

I’d consider doing some static rendering from React components then fallback to a simpler client interaction. Alternatively let the client go and waste the engineering efforts of your competitor (I appreciate that may not be an option).


I am sorry to hear about this. Seems like modern browsers are very hard to come by on such old platforms...

Idea 1: AWS Appstream https://aws.amazon.com/appstream2/pricing/?nc=sn&loc=4

Idea 2: VNC to something else on premise

Idea 3: Run the app inside Linux inside QEMU (or another emulator)

Idea 4: Write your web app like its 1999

I think Idea 3 may be best for this case.


Option 5: run for the hills screaming?

(Only half-joking here. I know it sounds like it's an important client, but it seems as if there was a serious breakdown in communications on the client's part, _and_ they're stuck on obsolete technology. These are not realistic requirements.)

I suppose option 6 would be to figure out how to get the client to upgrade their systems to a modern hardware and OS, and then run the old software in a VM instead.


Option 6 seems like the most viable to me, but it's still a long shot. If they wanted to upgrade, they would've done that a long time ago. At the end of the day, they don't want to upgrade. I'm sure they could get software that does the same thing that runs on newer platforms if they cared enough.


Afaik they cannot upgrade because they are heavily reliant on a specialized piece of software that:

1. Requires a dongle attached to a parallel port for it to function. 2. The company who made it went out of business over 15 years ago.

They have plans in the future to migrate to linux, but that isn't in the card for a few years unfortunately.


If the dongle is for licensing:

1. You probably don't need it. I don't know about the legalities involved here or what the specific license is, but there's probably a trivial way to circumvent the hardware requirement, especially with a VM. Back when Windows 2000 was a thing, people were still using MD5, and nobody was using secure elements. Worst case scenario, they've got some of the actual program logic on there, and you'll have to either reverse it or replace it. Again, not commenting on the legalities here, but seeing how the software was (presumably) legally licensed and the company is long gone, it couldn't hurt to ask the lawyers whether they think it's safe.

2. You can pass a parallel port through to a VM if you really must.


Off topic, but .... Wow ... technical debt anyone?


Idea 1: Is out because they are not actually connected to the outside internet from their workstations.

Idea 2: Not viable due to the sheer number of users most likely.

Idea 3: We tried to get virtualbox to run on their machines, which we found most only have a ~4 GB of ram and it makes hosting an entire other OS a very painful experience.

Idea 4: Looks more and more likely. :(


QEMU may be lighter-weight. A lightweight linux OS and browser may be better.


Try using qt instead of electron... Qts 4.X webkit implementation is quite powerful we use it in different embedded environments (including Windows CE) you can write your own client, compile it with VS studio prior to 2008 and profit :)


Actually, it’s pretty easy to convert into a server render with react. Just try to write a new middleware, new App.js for IE6-9. Apart from css issues, you’ll have zero js to execute on client.


Is the app used in third-world countries? IE6 is insecure and only used on very old computers that can't install anything else.

I'd check that the requirement is valid before doing a bunch of work.


This setup is still the defacto standard in a lot of Factories in all developed countries, you will also see quite a lot of PCs still running Windows NT. If you have a production line the life expectancy is more than 20years with no need to upgrade anything including the hardware most of the assembly lines are controlled with really old hardware usually the hardware... The usual browser statistics do not reflect the corporate world they are some years behind... Fun fact one of the biggest Ie11 users is Japan, a rather developed country


The company isn't in a third world country they are basically reliant on an extremely specialized piece of software/hardware that doesn't work on anything more modern.

Unfortunately this is basically what i am dealt with and i don't have any real options of changing the environment.


Can you make them buy some cheap android tablets and run your software on them?


Anybody know if StimulusJS works on older browsers?




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: