Microsoft breaks ABIs and userland apps all the fucking time. Why do you think so many people complain about Vista? It doesn't run a lot of apps that worked perfectly in XP (even if you install/run them in administrator mode or in XP compatibility mode). Hell, do any of you actually remember when XP came people? People bitched about it just as much because it broke a ton of apps that worked just fine in 95/98. Windows 7 can't run some apps that Vista handled just fine.
Windows maintains stable ABIs *where it can* because Real Users kind of prefer not having half their desktop stack break every 6 months while proclaiming the endless breakage as "true innovation!"
Posted Jul 30, 2009 17:03 UTC (Thu) by mikov (subscriber, #33179)
[Link]
No, I am sorry, this is beside the point.
For one, Microsoft doesn't release a new kernel every 6 months (far from it), so the breakage doesn't occur every 6 months. I don't want to sound like I am defending them, but there are parts of their strategy that are trruly superior to the Linux model in my opinion. We cannot simply say "everything that Microsoft does is bad". Monopoly is part of their success, but a large part of it also is that they did some things right. Having a stable API is definitely one of them.
That pains me because I am Linux developer and user for both practical and ideological reasons (I am willing to suffer a little pain in the cases when Linux is inferior).
Plus, I am referring to source level API, and not so much keeping it completely static, but approaching the changes formally by versioning and formal documentation.
Not having a stable API makes life a little easier for the core kernel developers, but much harder for everybody else. Plus, in the broader picture, I am sure that it is an insurmountable barrier before "Linux" on the desktop.
Heed my words: Linux will never succeed on the desktop without a stable driver API. I wish it wasn't so.
GNU + Linux = broken development model
Posted Jul 30, 2009 17:43 UTC (Thu) by foom (subscriber, #14868)
[Link]
Linux *does* have stable driver APIs.:
- libusb for usb in userspace.
- FUSE for filesystems in userspace.
- UIO for driving arbitrary hardware from userspace
Perhaps more?
GNU + Linux = broken development model
Posted Aug 1, 2009 23:11 UTC (Sat) by Lumag (subscriber, #22579)
[Link]
IIRC stuff around netdev was backwards-compatible for ages (not talking about NAPI :)). We experienced only one major change with it - the net_device_ops.
GNU + Linux = broken development model
Posted Aug 2, 2009 8:43 UTC (Sun) by johill (subscriber, #25196)
[Link]
Multiqueue was another big change, but didn't matter much unless you used it.
GNU + Linux = broken development model
Posted Jul 30, 2009 20:10 UTC (Thu) by rvfh (subscriber, #31018)
[Link]
I just wanted to say that, Linux-lover as I am, I agree with you mikov. It seems that people are a bit too eager to break interfaces (and even Linus complained about it, though it was about the /sys filesystem IIRC).
Breaking the API when it solves a problem is the Linux way, so improvements can be made, but one should strive not to do it if it can be avoided. And one would expect these changes to be kinda obvious and documented (a proper #warning can help a big deal), or even to a have an in-kernel tool (Coccinelle can do this AIUI) provided to update your code for you! Ok, I know, "easy, tiger."
GNU + Linux = broken development model
Posted Aug 4, 2009 16:02 UTC (Tue) by nye (guest, #51576)
[Link]
I've not personally come across single application which works in XP but not Vista. The primary problem with Vista is that it's noticeably slower.
Comparing 95/98 with XP/Vista is fairly absurd. They're not different versions of the same OS; they're completely different OSes which both have very-nearly compatible implementations of some important APIs, most notably win32. In fact, come to think of it, I can't name a single win32 application that works in Windows 95 and not Vista. The only applications that have broken along the way either interact with the OS at a lower level, or are 16-bit, or actually DOS applications. That would be a bit like expecting Linux to provide perfect binary compatibility with Minix.
The only substantiated bitching I've heard has been about drivers, but you were talking about userland apps; I contend that the number of broken userland apps is vanishingly small.
GNU + Linux = broken development model
Posted Aug 4, 2009 17:43 UTC (Tue) by mcmanus (subscriber, #4569)
[Link]
I've not personally come across single application which works in XP but not Vista.
Here's a good one: http://msdn.microsoft.com/en-us/library/aa376635%28VS.85%29.aspx
Packet Filtering Functions
[These functions are available for use in the operating systems listed in the Requirements section for each function. In Windows Server "Longhorn", these functions return ERROR_CALL_NOT_SUPPORTED. The MprConfigInterfaceTransportSetInfo function and the Windows Filtering Platform API Management Functions provide similar functionality.]