Not logged in
Log in now
Create an account
Subscribe to LWN
An unexpected perf feature
LWN.net Weekly Edition for May 16, 2013
A look at the PyPy 2.0 release
PostgreSQL 9.3 beta: Federated databases and more
LWN.net Weekly Edition for May 9, 2013
so in windows you have three 'distros'. XP, Vista, Windows 7, possibly 98
each of these have several releases (plain, SP1, SP2, etc)
in Linux you have a few families of distros to support RPM distros (RHEL, Fedora, Suse) and deb distros (Ubuntu and Debian) not much worse than the windows
each of these will have more than one release version out at one time (2 for Debian, 2 for Fedora, 3 for Ubuntu + LTS versions, etc), again, not much worse than windows
who has a Mac? everyone!
Posted Nov 18, 2009 19:45 UTC (Wed) by boudewijn (subscriber, #14185)
At the company I work for, we develop an application that has binaries
available for Windows, OSX and Linux. It's partly open source, but there
are closed source plugins, and in any case, given our development model,
nearly everyone uses the binary installer anyway. I'm not sure whether the
app is within the definition of commercial software -- but there is no
volunteer work done on it.
We use Qt, of course, otherwise we wouldn't be able to develop the
software with 3 to 5 developers. And on Windows and Linux we use bitrock
to create an installer. We only target 32-bits linux, though some people
have compiled the open source parts on 65 bits linux, mostly gentoo. It
works perfectly fine on my OpenSUSE and Kubuntu systems. We have about
60,000 Windows users, about 5000 OSX users and about 300 Linux users.
Despite having a lot of automatic tests, all operating systems give us
pain: on OSX it's hard to support 10.4, 10.5 and 10.6 with one binary, and
besides, we've only ever got access to the latest Apple hard and software,
For Windows, side-by-side errors are bad. One version of Visual C++
actually creates corrupt manifests, The differences between XP, Vista and
Windows 7 are particularly time-consuming. For Linux, the biggest problem
is running the autotests: our test machine doesn't have X11... And we had
a lot of problems with different versions of gstreamer.
All in all, if you develop your commercial desktop software using Qt,
use the Bitrock installer and have decent automated tests, providing your
application for 32 bit linux as well doesn't cost a lot of extra effort.
Posted Nov 18, 2009 20:06 UTC (Wed) by mikov (subscriber, #33179)
The (only?) positive thing about Windows is that binary compatibility between OS versions is an explicit goal. While I still was a Windows developer we had no problems moving software (including our kernel drivers) between NT4, W2K and later to XP. Of course I don't claim this is universal, because our packages were pretty self contained. Also, i realize that Vista introduced more significant changes and breakages compared to, say, XP.
Posted Nov 18, 2009 20:25 UTC (Wed) by dlang (✭ supporter ✭, #313)
yes it's a goal, and yes it works a lot of the time. but it doesn't always work.
for linux systems, you can take just about any binary from one distro and run it on another distro. the .so files are all named the same way so if they are there everything works.
the cross-linux-distro problem is more a matter of how to make sure that all the right packages are there, and where are all the config files than anything else.
there are a lot of companies selling software for linux, many of them charging lots of money for their software. some of them take a hard line attitude like 'we only certify RHEL 5.0, if you upgrade to RHEL 5.1 you are on your own', but many of the recognise that the distros are all more the same than they are different and instead say 'we have tested this on RHEL 5.0, it should work on anything else, contact us if you have problems'
the companies that take the first attitude are very slow to support any new distros or releases, frequently when a customer says 'I will buy your product if you support distro X' (I've done this to a few products).
companies that take the second attitude tend to be much faster to add 'supported' distros to their list.
Posted Nov 18, 2009 21:30 UTC (Wed) by boudewijn (subscriber, #14185)
Basically, you package everything you need, Certainly all the Qt
you use, but also other libraries, we're not using the system Qt. It
doesn't solve everything: the gstreamer problem I mentioned above was
because we didn't want to package gstreamer as well, and the gstreamer on
ubuntu and gstreamer on OpenSUSE weren't binary compatible, so when we
packaged the Qt Phonon library, which uses gstreamer, we had problems. (Of
course, Phonon couldn't play mp3's on XP, but could play wav's while it
was the other way around on Vista.)
The set of libraries we package is almost the same on Windows, OSX and
Linux, by the way. On Windows we have to package the c runtime, as well,
that is the main difference.
Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds