
Originally Posted by
Scali
Not at all. It seems you have no idea about the point I'm making. Revisions have little to do with how 'fixed' a platform is. That is more about backward compatibility.
Take Windows for example, roughly we have the following revisions in common use today:
Windows XP RTM, SP1, SP2, SP3
Windows XP x64 RTM, SP1, SP2
Vista x86/x64 RTM, SP1, SP2
Windows 7 x86/x64 RTM, SP1
Most software released in the past 10 years will run on ALL these OSes out-of-the-box. Because the Win32 platform itself is 'fixed'. New functionality is added, bugs are fixed, but there are rarely any changes that break current or even legacy software.
Yes, but those are the exceptions to the rule
Yes and no. For example, not all versions of GCC are binary compatible with eachother.
Eg, you cannot link 2.xx code to 3.xx or 4.xx code. This makes it a lot harder to distribute libraries in binary form.
Compare that to Microsoft Visual Studio, where Visual Studio 2010 can still use libraries built with Visual Studio 6 from 1998 (and perhaps even earlier).
Perhaps, I'm not even going to bother to try, because even if it were true, it would be the exception to the rule. It is common knowledge that in general packages cannot easily be used among different distributions or older/newer versions of the same distribution.
Not at all. As a developer, you target the most common version (or versions) of a library, so that you have the widest possible support.
The REAL problem however is that the libraries themselves are not a 'fixed' target. The interfaces change (both at binary and function level), breaking compatibility with older or newer versions of software.
This is different on Android, or Windows for that matter. If you develop against a certain version of a library, you don't have to worry about newer versions breaking your code, because they will be backward compatible with the version against which you developed your software.
Which is why software developed for Windows XP still works in XP x64, Vista, Win7 and Win8. Or why software developed for Android 1.x still runs on 2.x, 3x and 4x.
Only for open source, because everyone can build packages (re-inventing the wheel).
This shouldn't be a problem in the first place, since you should be able to make a single package that works on all distros. But that is exactly the problem we're pointing out here: there is no easy way to do this, because too many parts in the chain vary.
Yes it is. Becase you *can* use Android 2.0 packages on Android 4.0. All developers don't have to create a new package for their Android apps everytime a new Android version is released.
This is different from linux distros.
Don't argue with me about OpenGL. I write graphics software for a living. I've ported my OpenGL code to OpenGL ES 1.0 and 2.0, and know exactly what I had to change for it to work. Which is what I based my previous statement on.
For example, OpenGL ES 2.0 does not have any fixedfunction pipeline anymore. It can only use shaders. And these shaders use a slightly different dialect of GLSL, with keywords that regular OpenGL does not support (google around to see how people try to find solutions with #defines and such to make the same code compile on both OpenGL and OpenGL ES).
No, because Google knows the value of backward compatibility and having a stable binary platform. It is popular because it is easy for developers to develop for, and easy for users to install software for. Although it is not quite as userfriendly as iOS though, and as such, not quite as popular.