The Importance of OS Backwards Compatibility 380
gbjbaanb writes "Raymond Chen (of ancient Microsoft heritage) has a blog where he describes some of the things he's worked on, as well as oddments of obscure code and design decisions in Windows. Regardless of what anyone thinks of Windows, it is informative and often thought-provoking. Recently, Raymond posted an entry about backwards compatibility, and why it is such a big deal for large corporations. Something that I have read about on Slashdot regularly (where Windows is criticized for bothering with it at all), I thought readers would be interested in exactly why Microsoft spends so much effort on backwards compatibility, and by inference, why it is an important topic for getting Linux adopted by big business."
Omelette? (Score:3, Insightful)
For a tasty omelette, add cheese, tabasco sauce, and ground black pepper.
Re:Omelette? (Score:5, Insightful)
Re: (Score:3, Funny)
Re:Omelette? (Score:4, Funny)
Linux fall very short on backwards compatiblity (Score:5, Insightful)
Quite true (Score:5, Interesting)
Backwards compatiblity (Score:5, Insightful)
In an enterprise Environment isn't always as simple as upgrading to the latest bleeding edge Linux, downloading the newest software versions, compiling, installing, uploading your configs and scripts and everything works flawlessly. That's the point TFA was making. Unless your distro is 100% backwards compatible (ok, 90% compatible, there are always problems) back to, say... the 2.2 kernel many corporations won't take Linux seriously as a solution because the cost of debugging the problems that accompany each upgrade because of broken compatibility issues would be prohibitive. Today some Enterprise grade Linux distro's offer this kind of a guarantee, at least up to a point. So if you have ever wondered why people shell out all that money for RedHat SuSE and Co and their Enterprise quality distributions when they can download Slackware for free, that's **one** of the reasons why. While they may not be on the bleeding edge technologically or perform as well some other distributions, the stability and continuity these Enterprise distros offer reduces costs appreciably.
Re: (Score:3, Insightful)
in what environment could a process so agonizing and fragile as this ever be called "simple?"
You didn't work on any Windows Upgrade (Score:3, Interesting)
Major upgrades at microsoft breaks a lot of stuff. The main problem is their philosophy of backward compatibility which manage to accumulate both the bad side of backward compatibility and non compatibility.
Most of the time, Microsoft tries to assure compatibility by keeping around old APIs over and over across each generation of products, but each time fixes bits to keep up with modification of the underlying technology. You end up with a Windows XP wich is "somewhat" c
Re: (Score:3, Interesting)
I'd lake to know where you got that 70% figure from. Seriously; the number of applications that actually broke with XP SP2 is tiny.
With open source ... (Score:2)
-b.
With open source the same problem exists (Score:5, Insightful)
I am looking into a problem we have here where my software works fine with GD 2.0.23. If I upgrade GD to 2.0.28 (compiling from source, not using binaries) my code stops working. Everything compiles fine. Everything links fine. Just doesn't work.
Look at the FOX toolkit. The interface completely changed from 1.X to 2.X. No backwards compatibility. I need to re-write all of my source to handle the new interface.
Re:With open source the same problem exists (Score:4, Insightful)
Notice that even though it would be convenient for you to be able to upgrade GD- it's not required. You have an eternal license to it (Assuming it's under an OSS license, which I don't know for sure as I have no idea what GD is
Re: (Score:3, Insightful)
Re:With open source the same problem exists (Score:4, Interesting)
Something breaking between 1.x and 2.x is expected. A lack of compatibility is expressed right there in the version number. Major projects will keep each major version going independently for some time. You should continue to see bug fixes in the 1.x line even though 2.x is out, provide demand and interest is there.
It's also open-source, so you're free to keep your own development and bug fixes going if you can fund it yourself.
Re: (Score:3, Insightful)
Microsoft still doesn't get it right (Score:5, Insightful)
Even after billions and billions of development dollars Microsoft still breaks lots of applications on their major releases. I've been working on a server 2003 system that we've had to tweak and fiddle with for over a month to get a couple of applications to work properly, and we're still working on them. There are a couple more that will not work and have to be abandoned. These are older applications, so that could be the problem, but they were running on server 2000. No one can tell me that they are 100% compatible, because they are not.
Which would I rather do, try to get a program to work that is proprietary on a proprietary system or open source on an open source system? Hmmmmm. Let me think.
Also, if you want an open source application be backward compatible, send a little money to the authors. I bet you'll get a much better response from them than you would from a company that charges you an arm and a leg for a proprietary application. Try getting Microsoft to make a change to their system! Even large companies have to usually take what they get pushed on them from Microsoft.
Re: (Score:3, Insightful)
Do you know what this means. That in most cases those apps were not coded properly. Let's ta
Re:With open source the same problem exists (Score:5, Insightful)
Not possible - no one supports that old version. If there are any important fixes (not just security, anything) they are always for the latest version. Open source people don't bother supporting older versions...
This argument isn't even worth refuting, it's so obviously childish.
Re:With open source the same problem exists (Score:5, Funny)
Nonsense. Just use Debian.
Re: (Score:3, Informative)
Re:With open source ... (Score:5, Insightful)
Dependencies! Dependencies! Dependencies! Dependencies! Dependencies! Dependencies! Dependencies!
I'm a broken record on this subject, but I've had quite a few nightmare compiles on Linux that have resulted in me abandoning it on my laptop in favor of Windows. At least there the software I want to use works. They have *got* to fix that problem if Linux is going to become a mainstream desktop product.
Re:With open source ... (Score:5, Insightful)
Note, that this is mearly an issue for third-party packages for your os. Everything that comes with the os can follow whatever rules is best suited for it, as the whole thing is developed together. But I see no advantage to having to track down and install a dozen seperate library packages in order to get a particular app installed, esp. if those libraries are use _only_ by that app. Also, the worst offense a package can commit is to require major updates to packages that are included as part of the os. If the os ships with a supported version of libfoo-1.7.2.so, then the app package should be compiled against that version and not against (and requiring) libfoo-1.7.5.so (or worse, libfoo-1.8.x.so), instead if it actually requries functionality that is only present in the newer lib version, then it should ship with a private copy either statically linked, or installed in the app's lib directory. Because if something else uses that lib, chances are it will need libfoo-1.7.4.so, and be incompatible with libfoo-1.7.5.so (even though minor version increases shouldn't break compatibility, but it happens anyways).
[
Re: (Score:3, Interesting)
Re: (Score:3, Insightful)
Also, even open source apps have that issue, when you are downloading pre-built packages. MythTV is an example (of coures, it is an unfair example as it is still considered beta). I would rather download one RPM that has the needed shared libraries in a private directory or have most of them statically compiled in this case. That way it would be easy enough t
Re: (Score:3, Informative)
Looks like I'm arguing against it.
Those who do not understand package management are doomed to reimplement it, poorly. Although you do make a point:
Perhaps, but most distros now support adding third-party repositories, and even if you don't, when you download a .deb file manually, it's still going to pull in dependencies when you install it.
Ultimately, I see compiling things statically as being kind of like offering a WinZip Self-Ex
Re:With open source ... (Score:5, Insightful)
The truth is that compiling a program (under ANY platform) IS rocket science level stuff as far as computers are concerned. Yes, a programmer does it in his sleep (as do most Linux daily users). But Joe CEO and Jack employee can click next all day but the moment he has to type
Compiling source to a binary IS complex stuff despite what any mainstream Linux supporters might think. And having to re-compile something EVER, WILL keep it from being accepted main stream.
I've even heard people say "well all ya gotta do is just make your own kernel and there ya go, piece of cake". As easy as that might sound for the Linux guru, that is exactly equal to telling a driver to build their own car. Plenty of mechanics out there that can do it, yes, but EVERYONE isn't a mechanic nor should they be. People who build their own kernels and compile software are the mechanics of the computer world and shouldn't expect all computer users to be mechanics.
I for one do not ever want my bosses to be as 'smart' as us I.T. guys are. Why then would they have any use for me if THEY know how to compile a kernel? If the world was so enlightened as some people seem to want it to be, then a lot of people would be without jobs because their skills wouldn't be needed.
Don't get me wrong though, I'm not saying one way is the end all better way, I'm just saying that as long as the corporate world is run by people who just 'want it to work' (which will be forever) software that requires the user to do the programmers job will not fly. All my servers are Linux servers, but that's only because myself and the other techs here are skilled at making them work. I wouldn't DREAM of putting Linux on our desktops. Are you crazy?! Will YOU then be the one who baby sit every soccer mom who comes to work for us and teach them how to use it for free?
If products could be packaged such that they get compiled during install, but in the background with the user being none the wiser, then it might fly. Like say your installer went out and did all the work on its own of gathering the required libraries while the user only ever saw a wizard with a next button.
My two cents, take it or leave it...
Re:With open source ... (Score:4, Insightful)
If products could be packaged such that they get compiled during install, but in the background with the user being none the wiser, then it might fly. Like say your installer went out and did all the work on its own of gathering the required libraries while the user only ever saw a wizard with a next button.
I think modern package management is weak on every platform, but by combining several into the OS would bring the benefits you crave. I'm a huge fan of OpenStep/GNUStep/OS X where applications are folders ending in ".app" with a specific structure. This allows for multiple binaries for different platforms in one "file" that can just be copied and run anywhere. There is an increase in size, but given modern hard drives it is tiny, especially since all resources can be shared rather than duplicated. And having those resources separate is great for those of us that want to grab a song or image used in some game we have. The portability and lack of an installation step is really, really nice, especially for novice users.
To get back to your specific point, I see no reason why source code and build instructions cannot likewise be included in this package. Add a little "build custom binary" option for each application and you have the ability to do just what you ask, but without the drawback of having to wait for an install process. In fact, the OS could automatically schedule the compiling of a custom binary the first time a program is run. There is no need for a wizard at all. Drag the program where you want it and double click. There's no need for dependency checking either since needed libraries are in the package. I really think this level of simplicity would benefit everyone.
I'll say not even all programmers (Score:4, Insightful)
Speaking as a programmer, the interesting and challenging part is the _programming_ part. The tweaking of algorithms, the thrill of learning some new technique, etc. That's the fun part. The compiling itself is _not_ the exciting part. Sitting and watching Joe's Own Toy Program (TM) compile is about as exciting and watching paint dry. Tracking down the dependencies for it is even less exciting.
In fact, I'll even go ahead and say that anyone whose great feat was compiling some 3rd party program, probably isn't really a programmer to start with. There are a ton of people who just like to pretend they're oh-so l33t because they can run someone else's build script. Maybe they even configured (through the nice supplied GUI) and compiled (by running the commands supplied in the readme) a _kernel_. Wow, that makes them sooo great computing gurus. Not. That's to programming what script-kiddies are to real security experts. A sad joke.
And even as programming goes, the fun is doing the things _I_ want to do, learning the things that _I_ find interesting at the moment. Maybe I'll toy with this great new algorithm or language I just heard about, or maybe I'll mod a game just for the sake of seeing if I can get to the ballistics code, or whatever. Whatever tempts me at the moment. But that's a personal, subjective and transient thing. What tempts me tonight might be (and usually _is_) a whole other thing than whatever program Tom couldn't be arsed to finish, or Dick couldn't be arsed to test, or Harry couldn't be arsed to port. I want to do _my_ stuff, not debug Tom, Dick and Harry's programs just because they happen to be OSS and on my computer.
Basically just like a literature buff might choose to spend the evening reading the novel of _his_ choosing instead of coming over to help the neighbour's kid finish a school essay about War And Peace. Sure, he certainly is qualified to help that kid, but it's not necessarily what he'd choose to spend the evening with.
In the end what I'm saying is that what I want from a computer is no different from what Jack Random and Jane Average want. I want it to just work. Whatever I choose to do with it, whether it's programming my own toy app or watching a DVD or playing a game, I _don't_ want to compile the IDE/media-player/game/whatever first, and that goes double for pointless track-the-dependencies games. If I chose to do X tonight, then anything else that gets in between me and X (like having to first compile some other stuff) is just a waste of my time.
Re: (Score:3, Insightful)
Re: (Score:3, Insightful)
a "luddite" rebels against technology that threatens her employment. your soccer mom simply wants to get the weekly financial reports out on time so she can get home to her kids.
she has every right to expect tech that "just works."
Huh? (Score:5, Insightful)
Pure and simple, Microsoft has protected their market share by remaining backwards compatible, and will continue to do so for that reason only. A company like Apple can afford to ignore backwards compatibility to some extent, as this actually drives greater revenue from their loyal customer base buying new software. Microsoft though, cannot afford to give their corporate users a chance to make a migration decision.
If Microsoft eliminated backwards compatibility, thousands of companies would be in a position where they needed to include the cost of migrating software in the upgrade decision. All of a sudden, Linux would become a viable option for these corporate clients, which Microsoft can't afford. For example, my company currently has over 900 16 bit applications that we haven't touched in ~10 years. Almost all of these run fine under XP and the beta versions of Vista, so upgrading to Vista will be a cheap option. However, if Vista didn't support these 16 bit apps, we'd have to spend years of time and Millions of dollars upgrading
For this reason, Linux advocates (and many others) would love to see Microsoft remove backwards compatibility, but from a business standpoint Microsoft just can't do it.
Re: (Score:3, Interesting)
Re:Huh? (Score:4, Interesting)
Do small in-line hardware firewalls exist? Just with an incoming and outgoing RJ45 socket and a hardware circuit that only allows data through to or from a single ip (or range)? I can see many businesses could use these.
Re: (Score:2, Insightful)
Since they are a business, in it to make money, NOT to make cool technology, that is the only correct decision for them to begin with.
A company like Apple can afford to ignore backwards compatibility to some extent, as this actually drives greater revenue from their loyal customer base buying new software.
Aha? Apple invested a lot of time and efford into making at le
Re: (Score:3, Insightful)
As compared to the upgrade path to OSX, where non native apps wrong like a slug in emulator mode?
Flame away here, but Microsoft has been fairly good with their backwards compatibility. At least as good as OSX, if not better.
If a law firm for example continues to insist they should be running Word Perfect 5.1 because that's all the
Re: (Score:3, Informative)
There are some real gems in there and if you are serious about software development you should probably just read the whole blog. Doesn't take that lon
Standard data format (Score:2, Insightful)
Helps if you plan ahead... (Score:2)
Blog's interesting;submission gave me a WTF moment (Score:2, Insightful)
Perhaps I misunderstand, but is the submitter trying to say that Linux should learn from Windows in this area? Backwards compatibility is one of Linux's strong points, and Windows' performance in
Re:Blog's interesting;submission gave me a WTF mom (Score:2)
Do you have an example of a 27 year old program that can run on a current install of Ubuntu, without having to do anything else? I'm looking at Visicalc on Windows XP Professional right now.
Re: (Score:2)
vi, emacs, ls, grep, yacc, lex, tex... hella lot of the code is ancient.
Maybe you mean a 27 year old binary? It would be pretty difficult to find a 27 year old binary in the Gnu world, since it's easier to just recompile the binary for whatever system the binary is supposed to run on. Before decrying 'but that's too much hassle for a user' remember: This doesn't have to be done by an end user. I use a all of the above software, and whole lot more, without ever having recompiled the stuff. I install
Re: (Score:2, Funny)
Emulation (Score:2)
Do you have an example of a 27 year old program that can run on a current install of Ubuntu, without having to do anything else? I'm looking at Visicalc on Windows XP Professional right now.
Linux (and indeed Windows) can run quite a lot of old software through emulation, including tons of 27 year old games, Visicalc (using something like dosemu+freedos), CP/M programs under Z80 emulators, and Windows programs under Wine (not that any of those are 27 years old).
In fact emulation is possibly a better
Re:Blog's interesting;submission gave me a WTF mom (Score:2)
Re:Blog's interesting;submission gave me a WTF mom (Score:2, Insightful)
Hmm.. you sure about that?
I seem to recall a few issues with this...
ie, multithreaded applications built for 2.4 may encounter problems on 2.6 unless you set some specific environment variable.
Or.. how about the nice compatibility between glibc versions?
As long as you can recompile your software, Linux provides excelent backward compatibility, but that is a non-option for many situations.
Re: (Score:2)
Tell that to a Gentoo user!
The only problem is that in the Windows world almost everything is closed, proprietary, binary only. And I'm extremely glad that Microsoft has to spend huge amount of resources trying to prevent things from going crazy. They created this sick ecosystem!
And open source is the solution to it.
What the ... ? (Score:2)
Yeah, and you'll also see posts by people who don't understand all sorts of basic concepts.
Why complain about them? Why even bother to mention them at all?
Whether you need backward compatibility has never been in doubt. You simply cannot expect your customers to re-enter all their data every time you issue a patch.
The question is whether you should bring the old bugs forward for the sake of "
Compatibility freak? (Score:2, Funny)
Retro chic
Tweak the hardware
Old-school sleek
Burma Shave
billions at stake (Score:5, Interesting)
There is a bit of a "you rub my back..." going on when Microsoft maintains backwards compatibility. While MS is still the 800-lb Guerrilla, they have an audience with which they collaborate to some degree to make billions of dollars. MS holds the reins, but the team would refuse to pull at all if Microsoft cut them all of at the compatibility pass -- that would guarantee a stampede to find alternatives in OS implementations.
I don't think many are aware how hard Microsoft has to work to maintain compatibility... I once talked with one of the MS engineers -- he said much of the OS code has preamble code to run through a giant "case" statement to accommodate and make allowances for either bad or incorrect coding by outside developers, or bugs in their code that don't execute correctly for the outside software. It's a lot of baggage to carry around, but it's baggage worth billions of dollars.
Interestingly (to me) is I don't think Linux's big task yet is to maintain backwards compatibility with Linux programs (though that would be nice, and seems to mostly be a given anyway), I think the bigger task for Linux is to maintain backwards compatibility with Microsoft programs, specifically legacy Windows software. Unless and until that hurdle is cleared, Linux will always be #2, or #3, etc.
(Sorry for the paragraph of metaphors.)
Re: (Score:3, Funny)
Please tell me you meant gorilla?
Re: (Score:2)
It's the data! (Score:3, Insightful)
update treadmill (Score:4, Interesting)
(Also from an ancient Microsoft experience.)
Microsoft's continued existance has ALWAYS depended on cash cow products such as MS-DOS, Word, Excel and Windows. The only way that a product goes from concept to cash cow is through multiple releases which are sold to end users, offering the vital feedback to improve the product and market preparation to need the product. The only way a cash cow does not turn into a dead cow is through multiple releases which are sold to end users, offering newer features for devotees and fixing some of the most egregious integration problems for enterprises. Without new versions, people grow out of a product. Users adopt a new methodology entirely, or adopt a new product from someone else.
An update treadmill necessarily requires that the updates keep coming. Users cannot adopt a new update unless it is nearly seamless to synchronize and integrate with the other treadmills they are running.
Two ways (Score:5, Interesting)
One is to include all of the old stuff in your new OS, the other is to continue to support the old version, or possibly emulate it on the new version.
It seems that backwards compatibility significantly impedes progress. Why not continue to support the older versions, but separate them from the new stuff? Our computers are fast enough to run Windows 3.1 in a VM, much faster than it would run on the hardware it was designed for.
Better yet, include a copy of the old software in the new one, with a built in emulator designed to run it.
It's important to maintain backwards compatibility, but it's just not a good excuse for bad design decisions in new softare.
Re: (Score:2)
At the risk of stating the obvious, continuing support for an old product has nothing to do with backwards compatibility. Now obviously, you can continue to work on old systems to keep something running but that is no way related to backward compatibility.
That would be like MS advertising:
The Xbox 360 as 100% backward compatible with every game ever made *
* - mo
Re: (Score:3, Insightful)
Another example - you have a network share mapped on your native OS. You double-click a file in the netwo
a couple questions (Score:2)
this is a bit confusing to me. is he saying they have the source code of the apps and the install scripts or that they have the 'source code' of install scripts only? and if so- wouldn't that just make sense? Are there people out there running some kind of binary install scripts that they can't read themselves?
my next question is this -
This is a good thing (Score:2)
I love the fact that Windows and Mac and Linux exist. I wish that Amiga and Be could still be serious choices. Because more choices is better.
Backwards Compatibility is the ONLY option (Score:4, Insightful)
Now, if you happen to write code for fun, like me, then you are of course free to chuck it all out and start again. The Fun Factor outweighs the cost, since the cost is free. So govern yourselves accordingly, if you want to make money, then do as little as possible to develop the code, if you are in it for love and glory then do it for yourself.
On the other hand.... (Score:2)
It is very useful if you can, occasionally, break backward compatibility. With time, it becomes apparent that past decisions were a mistake. Being able to correct some of those mistakes, and do it in a reasonably clean way, makes for a better system.
So I wouldn't say that backward compatibility is a rule. After all, lot at MS with dotNet. dotNet 2.0 is not bac
Compromise (Score:2)
Backwards compatability a must (Score:4, Insightful)
If you loose backwards compatability you run into the same problem that all the smaller OSs have in getting the corporate world to adopt them on a larger scale. An IT manager may be able to convince the bean counters to give enough money to do the OS swap, but try asking them for the money to have to swap every application you have as well because the old ones won't work anymore. Then on top of that try getting the funding and the authorization for the time to retrain all your employees on new applications that they are not as familiar with. Beyond that, productivity will go down for a while until people get used to the new systems even with training. Now if the new system is truely more efficient (from a worker bee point of view in time to complete a task) this may eventually pay for itself, but do you really think most upper managers are going to be that patient before firing the IT manager for screwing over the entire company's productivity rates? If you do then you are dealing with much more patient managers than I am used to or just folling yourself. That is the true cost of loosing backwards compatability, especially when a large number of your key applications are built in house, then you can't just go purchase the new version that will run on the new platform with minimal retraining needed. For companies that develop a lot of thier own applications in house, you have a lot of down time until the IT departments can recode to whatever new standard the new OS requires.
Home users are better and worse off in some senses. While a lot of home users will probably just buy the new versions of major software (office software, email, etc.) when they purchase a new computer that still adds a lot to the cost of a machine. For the more technically savvy people out there (this is
I was one of the people that MS picked up on a 6 month contract for the extra support load when XP SP2 came out. Take it from someone who was there, the biggest complaint (especially from corporate customers) was when it broke compatability with old apps they were using. I heard a lot of people (and people I knew personally) say that they would install SP2 once the compatability issues were fixed when they eventually swapped to a newer version of the key app that they couldn't live without. Now MS did fix some of those issues with patches shortly after SP2 came out, but imagine that problem scaled up to replacing an entire OS without regards to backwards compatability. I know everyone around here likes to bash MS, but they are not nearly stupid enough to piss off thier corporate customers that badly. They know that would be the fastest way to push people away from Windows in a heartbeat, or at least to insure that not many people bithered swapping to the new version instead of just staying with what they already had that works.
I've never criticized Windows for compatability (Score:4, Insightful)
I do make fun of them for not being able to stabilize and secure some of the old code, though I understand it's tough when the code is old, complicated, and crufty, and a lot of old programs require "bug for bug" compatability.
I think the solution for them is deprecation. Old interfaces that are stuffed with crufty code, and which were often insecure by design anyway, should simply be made unavailable for new applications. You have an old app that wants to use it, fine. You want to code a new app using OLE or ActiveX or what have you? Tough. Eventually software gets replaced, and eventually you wouldn't have any software using the old systems and you could disable them. Sadly there's still plenty of new development using ActiveX and other crap, so MS both shows no interest in doing this nor may they be able to.
Now how does this apply to Linux? In Free Software Happy Land, you have the source to all the software on your system, so with the ability to recompile you don't need binary backward compatability. Being able to link your source code against new libraries can fix a lot of the problems with having to support really old binaries. There's still the issue of interface compatability (which is tied up in binary compatability in the Windows world), but a lot of the interfaces are stable.
This isn't Free Software Happy Land, though, we're talking about businesses. Personally I think that adopting Linux should also come with adopting some of its philosophies, in particular that having source code is much much better than not having it, so if you aren't getting source then it had better be much much better than the program you can get with source. Linux does not have a strong history of binary compatability, and I'm not sure it's best for Linux to start establishing such a history. Business may not like it, but maybe they need to adapt to Linux not the other way around. Who knows, they might figure out that they like getting source code from their vendors and accidentally discover a better way to do things.
How do you explain the travesty that is Vista? (Score:3, Informative)
Re: (Score:3, Informative)
Free upgrades (Score:2)
Backwards compatible as a Marketing Term (Score:2)
Best case scenario for most sysadmins is backward compatibility is the equivalent of a broad fallow field with landmines randomly placed. Everything else is just arguing how many angels fit on the head of a pin.
I will argue that backward compatibility is something a PHB throws out when she/he wants to say no to something without having to specify their concerns. It's not a reason why the purchase order is cut for your company versus your competitor.
Compatibility? What about VB? (Score:4, Insightful)
Shame they don't do that with other products. They discontinued the VB language (forget about VB.NET, not the same!) and left thousands of companies in the lurch. Millions of dollars were invested in writing VB products around the world and many of the companies do not have the finances to completely rewrite their products again in a new language. I suspect that many of them are keeping quiet since making a big noise about it would frighten both customers and investors.
I was therefore happy to hear that Java is going open source. Perhaps we can now consider it "safe" to use.
Re:Compatibility? What about VB? (Score:4, Interesting)
So we also decided the best thing was to rewrite things component by component, or at the very least write all new components in C# and use INTEROP. However, we found interop to be absolute hell. After I left the company they hired a
I suppose that as long as you stick to developing using Mono and as long as Microsoft do not shut Mono down in the future in some legal attack, developing with C# is safe. Obviously if you develop using Visual Studio you will end up using all sorts of things that won't work with Mono. Even so, the fact the Microsoft dumped a language that so many people were using does not fill me with confidence.
Obviously Microsoft has a lot of momentum but if I were in charge of a business I would sooner choose Java than
Scale Models (Score:3, Insightful)
Backwards compatibility, even if not extensive enough to make all installed MS hosts (including WinCE) into a single platform for the largest imagined application scale economies, is enough to create the illusion of those benefits. Which keeps people buying and building MS at the large scales which actually do deliver those lesser, but still extremely competitive, scale economies.
Am I the only one who's thinking about this from.. (Score:3, Insightful)
Opportunity for a Winetasting? (Score:3, Interesting)
Windows API support in linux (ala Wine) not only CAN be done, but it's EASIER for older, frozen, versions of Windows, which are no longer moving targets.
Seems to me that a "tested and seems to work" compatibility list for older Windows commercial apps versus an API emulator/kernel/library version number would provide:
- IT departments with an opportunity to migrate and a starting point for doing their due-dilligence checking
- API emulator project members the feedback they need to find and fix any mis-emulation that is blocking such a migration
- Linux evangelists a selling point
- Management the wake-up call that it is now POSSIBLE to migrate away from their addiction to Microsoft and other proprietary software, and
- Stockholders a hammer to use on management. B-)
Re:Windows Backward Compat? (Score:5, Informative)
Absolutely. Probably the best in the industry. You can still run Visicalc on any Windows machine.
Re:Windows Backward Compat? (Score:4, Funny)
Re: (Score:3, Interesting)
Re: (Score:2)
Re:Windows Backward Compat? (Score:4, Insightful)
Only if you ignore IBM. Their customers spend huge sums on very large, capable machines and expect a huge ROI (banks, oil companies, gov't institutions) so there is old JCL and Cobol running on mainframes going back to the 70's. If it doesn't run natively, you can always run it under VM.
I for one haven't found any useful applications I can run prior to mid 90's.
Re: (Score:2)
Re: (Score:3, Insightful)
Re: (Score:2)
Forward compatability (windows using software written for later versions), unsurprisingly, sucks.
Re: (Score:2)
Re: (Score:2)
I'm guessing that good old FAT-12 (floppy) filesystem from the 1980's is still supported in Vista, right?
FAT-32 and the more-than-eight-letter-filename system from Windows-98 (95?) is also supported in Vista.
But I guess, almost everybody still supports lots of old stuff...
I think Linux still supports the old Minix partition type
The latest & greatest VMS release can still read & write old VMS hard disks from the 1980s also.
Thomas
Re:Windows Backward Compat? (Score:5, Funny)
Re: (Score:2, Interesting)
FYI: the hardware architecture has gone through 2 addressing mode changes since then - from 24, to 31, and now 64 bit addressing.
Re: (Score:3, Funny)
Re: (Score:2)
What you certainly don't want to ever do, though, is looking under the hood of Windows. That's where they failed completely. To support this backward compatibility and because they did a lousy job of designing their system, Microsoft has to drag along gazillions of quirks and hacks.
Re: (Score:2)
FUD, FUD, and more FUD (Score:2, Insightful)
Re: (Score:2)
Re: (Score:3, Insightful)
I disagree. There are tons and tons of old DOS programs that are still at work today in many, many businesses. I user several, myself, along with a few 16 bit programs. Not using something simply because it's old is pretty dumb. Do you just throw out old things once they get too old, even if they're still working?
Re: (Score:2)
Vista is already split into 7 different editions, why not a "Compatible" edition for users who wish to have that feature?
Re: (Score:2)
Prior to that, yes. Many 'Classic' Macintosh applications could run just fine under the Classic compatablitly layer. Unfortunately that layer has been dropped. There are third-party workarounds avalible though. And G4-G5 Macs are still for sale from Apple at discount.
Apple has done very well in backwards compatablity. Not as well as Windows, but then Windows hasn't managed two archetecture ch
Re: (Score:2)
Actually yeah it does, unless it's doing something really wonky. I had occasion to run a few 16 bit freeware programs at a job awhile back, and I was amazed at how well they ran.
FUDmeister! (Score:3, Insightful)
Well that's a good argument, isn't it?
Stop being stupid - most 16 bit windows software does NOT run on windows XP.
Really? Are you just flat out lying in order to accomplish something, or are you really that clueless? Would you like to see a screenshot of what I have running right now, my intelligence-challenege little friend?
Re: (Score:2)
Re:I admit to have not RTFA, but (Score:5, Insightful)
Er, have you ever worked in software or IT? Microsoft place the highest emphasis on backwards compatibility, running 16 bit software in virtual machines and 32 bit software natively. I'll ignore your inane comment about IT management, since you sound like you're just making stuff up anyway.
Can you explain the precise mechanism of this Unix binary backwards compatibility you're talking about? I work with Linux every day and have since 1998. I'm pretty sure if I grabbed a version of, say, Postgresql from those days and tried to launch it now, it wouldn't work, nor would it even compile. Same with any gui desktop app or driver. I haven't worked a lot with AIX or HP-UX since the '90s, but I'd be pretty surprised if a CDE app from 10 years ago just fired up without any problems.
Re: (Score:2)
http://www.sun.com/software/solaris/guarantee.jsp [sun.com]
Re: (Score:2)
It works as designed, that you happen to not like how it is designed does not make it 'broken' (tho maybe it makes the design 'broken')
And speaking of open source, I am building a new bsd box to migrate users to since the original admin missed a year of upgrades and the pieces cannot be upgraded now without serious downtime.
Don't know what BSD you are talking about, but I have done such upgrades without major downtime, it
Re: (Score:3, Insightful)
Seriously, you've got a point. An honest OS vendor guarantees backwards compatability only using published, official programming interfaces. Application vendors turn around and find some obscure undocumented library call that makes life easier for them, and use it everywhere. When the OS is upgraded, the app breaks and "backwards compatability" gets shat upon unfairly.
A major problem though, is that many of these applications are niche products which makes them a