Why emulation is not the way forward.

So after several long heated discussions about my previous blog entry, I’ve go another kinda related point to make. Emulating Windows will not help us Win. If you can target linux and windows with the same executable, which OS are you going to test on? Thats right, windows. Ask any Java developer about write once, run anywhere. They’ll tell you to write once, test everywhere. In fact, they get bug reports on such obscure hardware that they cannot easily reproduce or test the bug. So, you’ll end up with software that (probably due to some bug in the software) works well under Windows, but fails to run under Linux. So, if you are going to have to select which OS to run these applications on, which one are you going to choose? Windows of course. So, we’ve gone to all this effort to have people develop software under Windows for users running, uh, Windows. However, it’s even worse than that, instead of developing a Linux version of their software people can say “It should just work under Linux”. So, now we don’t have a Linux version of the software, we have a Windows version that runs under Linux, where everyone complains that it just doesn’t look right. Maybe because it calls things a “Wizard” instead of a “Druid”, or maybe it refers to the “Start Menu” and “Internet explorer” in the help and/or documentation. Linux isn’t a first class citizen.

  • So, why write a business app for users for Linux? Write it for C# on windows, then those linux hippies can use it too
  • Why port random-important-app to linux? We can just get them to run it under wine.

So, I say that Wine and .NET are bad for Linux. They don’t help, they just give people excuses for not helping us.

6 Responses to “Why emulation is not the way forward.”

  1. Jonathan Purvis Says:

    Winelib is a good idea though. Then you can have a “native” Linux application that happens to use the Win32 APIs. DOSBox is also good, since it allows you to run software that doesn’t run on modern Microsoft OSes either.

    In the end though, perhaps we’re better of as a community that ignores what the commercial/Windows software world is doing and concentrates on developing software that works the way we want it to, rather than slavishly cloning existing software (not looking at anyone in particular).

  2. Perry Lorier Says:

    Winelib is kinda nice, you have a windows app that can run under Linux, but it still doesn’t “fit”, and winelib isn’t like a normal library, it still requires a lot of extra crud. DOSBox is only marginly better, as you point out noone is going to be targetting new software to it, however people are going to avoid writing good native software and instead are going to run legacy stuff. “Look at this linux stuff, it looks like it was made in 1992″

  3. Jonathan Purvis Says:

    My mother is still using the MS-DOS based accounting software she was using in 1992! I had to crack it to make it Y2K compliant, but it goes fine otherwise. While it is nice to have modern software, we must not make people upgrade every few years whether they want to or not.

  4. Aristotle Says:

    This is a point I fully agree with. </aol>

  5. Remosi's Rants » Why an interpreted language isn’t for us. Says:

    e I discuss why I think we should be targetting the native ISA instead of a virtual one. Why emulation is not the way forward - Discusses wh […]

  6. Peter Shaw Says:

    The point is: When there’s an operating system that runs both Windows and Linux executables, and there’s an operating system that can only do Windows executables, which operating system are you gonna use? What does it matter, if people continue to write Windows software, when linux is better as an operating system? They’ll end up using linux either way in the end.