Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

One thing you missed about Windows is the huge amount of effort put into backwards compatibility. You can download the original VisiCalc for the 1981 IBM PC and it still runs. Note that DOS back then didn't even support directories (they were introduced in DOS version 2).

http://www.bricklin.com/history/vcexecutable.htm

Raymond Chen's blog is full of fantastic stories about Windows and the amount of effort they put in to backwards compatibility. A quote:

"Look at the scenario from the customer's standpoint. You bought programs X, Y and Z. You then upgraded to Windows XP. Your computer now crashes randomly, and program Z doesn't work at all. You're going to tell your friends, "Don't upgrade to Windows XP. It crashes randomly, and it's not compatible with program Z." Are you going to debug your system to determine that program X is causing the crashes, and that program Z doesn't work because it is using undocumented window messags? Of course not. You're going to return the Windows XP box for a refund. (You bought programs X, Y, and Z some months ago. The 30-day return policy no longer applies to them. The only thing you can return is Windows XP.)"

Some random examples:

http://blogs.msdn.com/b/oldnewthing/archive/2004/06/04/14842...

http://blogs.msdn.com/b/oldnewthing/archive/2003/12/23/45481...

http://blogs.msdn.com/b/oldnewthing/archive/2003/10/15/55296...



Actually you are wrong. VisiCalc does not run on Vista and up as Microsoft dropped 16-bit compatibility.

Nonetheless, I agree with your general point that Microsoft puts a lot of effort in backward compatibility. But so does Google with Android! What makes you think the Android API breaks backward compatibility?

I have some (light) experience with Android development (Bluetooth app, basic UI, etc), across Android 1.6, 2.0, 2.1 and 2.2, and I have for example never come across an API that broke backward compatibility. I often hear theoretical arguments like yours being made, but I have never been shown a concrete case, like "they broke X in the new version Y of Android, so I had to do Z to workaround it". In my experience, once an API call is stable and works in a given Android version, it never breaks in subsequent versions. I am sure there are some rare counter examples, but they are so isolated that they don't warrant all "Android fragmentation is a problem" articles I read around. These articles do not represent the opinion of the average Android developer like myself.


> ... run on Vista and up as Microsoft dropped 16-bit compatibility

You'd better tell Microsoft about that. They did drop it from the 64 bit versions but not the 32 bit versions.

http://support.microsoft.com/kb/926657

> What makes you think the Android API breaks backward compatibility?

What makes you think I made that claim? I will however make the claim that different Android versions have different bugs and because of that you have to test across all versions. I'm also willing to bet that if you use undocumented APIs and behaviours then you will get bitten on version upgrades - something Microsoft does not do.

And sometimes Google do annoying things. They messed around with the handling of configChanges in the manifest encoding it in non-backwards compatible ways. If you use the admob library you get forced into uses-sdk 13 which then changes your app appearance.

Here is a comment I made about versions if you want to see my opinion:

http://news.ycombinator.com/item?id=3637542


Re 64-bit: you are correct. But this still proves my point that Microsoft sometimes deliberately breaks backward compatibility.

Re bugs across different OS versions: your initial comment implied that, because Microsoft puts so much effort into backward compatibility, that app developers do not have to worry about testing across different Windows versions. This is wrong. Just like on Android, Windows developers generally need to test across different Windows versions for bugs, etc.

In other words, my point is that both Microsoft and Google put a similar amount of energy into maintaining backward compatibility. Therefore, Android development presents a similar challenge to Windows development to developers who care about compatibility. And in both cases, the challenge is not that huge... Case in point: the vast majority of apps written for Android 1.5 will run just fine on 4.0 --this trumps all arguments!




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

Search: