2009
09.10

So Adam King said he wouldn’t get a balanced response to this.   Since it’s his first post that, despite being woefully simplistic, doesn’t seem entirely like cut+paste trollage I thought I’d give a reply.

First up:

The UK has “free healthcare” in that when you go to a doctor, you don’t pay anything. Their services are financed by the government, through taxes.

Speaking as a resident of the UK I like our ‘socialist’ healthcare.  It’s one of those things that a first world country simply should provide, alongside an Army, Police Force and Fire Service.  Either they are all socialist or none of them are.  I am not speaking from a ‘Socialism bad whaarrgarbbblll’ perspective here.

Why can’t this extend to software?

Because it doesn’t need to.  The problem you have concocted this plan to solve does not exist outside your head.  Medical bills can bankrupt even well off people through no fault of their own.  Windows is cheap, it’s not going to destroy families as they need to buy Windows.  Plus there are plenty of cheap offers for people if they look – Office for home users is significantly cheaper than for businesses.

Here’s a great and revolutionary idea – people pay money for the software they want.  That way you don’t make the poor even poorer subsidising the middle class and businesses demand for software – after all Microsoft already has socialist pricing for this very reason – you would make software more expensive.

Software is a purely capital expense. There is no problem reproducing something written in software. Why should dozens of ISVs exist that basically invent small variations of the same wheel? This is pointless.

To illustrate this point, consider this: Take 100 programmers and product managers, divide them into 20, and put them each in their own room, and tell each group to write an office suite.

-or- Take those same 100 people, and tell them to work together.

Which will result in a better product in the end? This is no contest.

There is one thing you didn’t think about in your proposal – Who says that the ‘ISG’s official OS is going to be Linux?  Who says that the release license is going to be the GPL?  As your example above  it is better to all unite and work on one thing rather than work on multiple developer-starved projects.  Which is obvious.

Linux is legendary for it’s fragmentation though.  The only thing that actually appears to only have one main version is the kernel itself, while for every other significant component there exist dozens of versions and forks.  The FOSS movement has proved itself unable to form any sort of cohesive force, settle on any standards or even write a stable API/ABI.  Software isn’t even compatible between distro versions, let alone cross distro compatible.  There is a good chance anything written now will be broken in a years time by someone changing the API for something again.  Compare this to Windows – or even BSD – where if you got some software made for Windows 95 there is a very good chance it’ll actually work on Windows 7.  Yet the FOSS crowd haven’t even got a standard package format (tar.gz, deb, rpm, portage, etc, etc) yet whinge that MS has their own document format.  Seriously, until the clusterfuck that is cross distro compatibility is fixed MS can have .doc and nobody has the right to say anything.

If in the very unlikely chance that the ‘ISG’ was actually created though I can bet you the OS base would not be Linux.  It might be BSD but I reckon the most likely contender would be the company with the most advanced technology, hardware compatibility and capabilities to handle a project of this magnitude – which would be Microsoft.  After all no country in the world would ever fund people who think that ‘Gimp’ is a good name for a piece of software.  They would go with the most established, professional, capable and proven group – a list which Linux is at the bottom of.

I see this as the real way forward for the software industry. Just like education: software is really important for our future, and is universally useful for almost every human fields of endeavor.

The problem with this is exactly the same problem with FOSS, which is coincidentally the same problem with all overly socialist and communist countries – you’ll have no competition.

The reason Photoshop is king of the hill, and Creative Suite is pretty much an industry standard, is not because Adobe are an evil monopoly, it is because they have been constantly striving to make the best software they can to gain their marketshare.  The thing with your ‘solution’ is that once this magical socialist OS + software was made there would be no pressure to cater for their audience, no threats for failure, bugs and poor code.  Nothing new and inspiring would ever come along.  Microsoft are at their best when they have competition – IE sucked until Firefox, Office stagnated until OOo – which spurred MS to redo the whole UI.  The iPod and iPhone came from nowhere and set the bar ridiculously high for everyone else – without competition at best you would only ever get marginal improvements.  There would never be any radical leaps in usability, design and functionality as there would be no competition to spur it on.  I’ve already covered this with regards to Gnome and their entire failure to innovate for years – since there is no concern of going bankrupt, they have no real pressure to improve anything.

Gimp sucks, it’s unarguable, yet there’s never any effort to improve it.  Occasionally you hear of some half-assed attempt at fixing the GUI that never goes anywhere but why should they bother – it’s not like their job is riding on it’s success – so who cares if nobody uses it?

So in summary it’s:

  • A solution seeking a problem.
  • Overly expensive and unfair on the poor and the old.
  • Will lead to worse quality software.
  • Will almost certainly not be based on Linux or the GPL.
  • Will cause hundreds of thousands of job losses.
  • Is just a plain bad idea

Balanced enough for you?

15 comments so far

Add Your Comment
  1. I don’t know about software note being compatible across versions. Alot of the bigger projects take binary compatibility very seriously. Gtk hasn’t broken theirs more than once this decade. Qt breaks its more frequently (a commercial product) but all of its versions are easily parallel installable. Even projects that have historically not cared (such as ffmpeg whose stated policy was import our source into your project) have moved towards compatible releases.

    Lets also not forget that most of the core system components, while not necessarily stable across distribution boundaries, change very little internally. See the above about Gtk. libc/++ don’t change very much either. The result being (and I wish I could find the requirements page) software like firefox requires kernel v 2.2 and a libc that was released back around 2000. And, because no post defending linux is complete without a WorksForMe(tm), this also means that I was able to install a Skype package built for Ubuntu 8.04 x86 on Ubuntu 9.04 x86_64 and have it work correctly even with the cluster!@#$ that is pulseaudio (although I may see a twinkling of light at the end of the tunnel). Yes, Linux does actually have 32-bit emulation that works. And, as I said, there is always the old standby of dumping all your dependencies along with your application in /opt if you are afraid of breakage. Just because it isn’t the “preferred” way of doing things, doesn’t mean it doesn’t work.

    The result of this being is that Linux doesn’t fragment as much as you claim it does, and realistically, supporting Linux in any meaningful way for a commercial product probably means supporting Ubuntu, Red Hat (or Fedora), and maybe openSUSE on x86. Most everything else is derivative or custom appliance distributions. Unless your application for some reason is invoking deeper magic at a really low level in userland, everything will probably be just fine. The one exception I could think of to this would be a Photoshop type application that needs to capture from some input device. If you put the effort into a “Linux” port of an application, it can’t be much more work than supporting XP, Vista, and 7.

    Also, stop complaining about installer formats sure, there is tgz, rpm, deb, and so on. But you can get always get away with dumping files in /opt. And if I remember everything correctly, for windows, there is Nullsoft, Inno Setup, InstallShield, WiX, Advanced Installer, and I’m sure others. All of which, work completely differently, i.e. Nullsoft executes a script, while WiX uses declarative XML.

    That being said, yes his ISG is a retarded idea mostly because nothing that overreaching ever works out the way you think it should and leads to terrible bureaucracy and inefficiency.

  2. “Take those same 100 people, and tell them to work together.”

    Something open source developers are typically incapable of doing. 100 programmers = 75 different projects scattered on a 5 year time line, 70 of which are dead on sourceforge, most of those being in the “planning” stage, the rest barely compiling, crashing a lot, and having less features than notepad.

    The other 5 being partly maintained forks of each other (half because of names being copyrighted and half because of highly inflated developer egos), running slow as molasses on a high end core i7 box, being a poor clone of MS Office 4.3 (a 15 year old, 16 bit app which ran fine on a 386 and Win3.x) with half the features.

    Yes, I really want my taxes increased further for such garbage.

  3. Kerberos,

    I have tried, many times, to explain the same thing to people here in the US, that we have socialized police, fire departments, military, schools, road repair, etc.

    These people are against socialized health care, though paradoxically, they would benefit from it.

    They don’t seem to mind members of congress and the military receiving it.
    With politics (just like the Linux zealots) the most uninformed are the most vocal.

  4. “And if I remember everything correctly, for windows, there is Nullsoft, Inno Setup, InstallShield, WiX, Advanced Installer, and I’m sure others. All of which, work completely differently, i.e. Nullsoft executes a script, while WiX uses declarative XML.”

    How does that matter again? Regardless of what the installer was authored with, you get a setup.exe app which you just run, on *any* version of Windows, and it works just the same (click I agree, next a few times, then finish). I can be on XP Home, Vista Enterprise or Win7 Ultimate, and it works just the same (regardless of OS is used or what particular app created the installer)

    With Linux, you don’t just use your .rpm on Unbuntu (yes, I do know about alien) or .deb on RHEL, nor use different distro’s repositories as-is.

    For example:
    Opera for Windows, 1 installer that works across *all* OS versions, from early Win9x to Win7 x64.
    Opera for Mac. 1 installer (universal binary) that works for everything. Or an alternate intel-only one if you prefer… But the first works across *all* macs as-is.

    For Linux? Depends. Pick either: Linux x86 64, Linux PowerPC or Linux i386. Ok, picked the last. Then there are 15 different distros with different installers. Ok, picked Ubuntu. Which version now? Because that’s 5 different installers… And that’s for v10.00 only, repeat everything for every new build… It looks like there are several dozens of installers for one OS.

  5. Well, at least with the entire socialized software thing, the Freetards have dropped the mask and are openly advocated Communism. Welcome to irrelevance, guys.

  6. “I don’t know about software note being compatible across versions.”

    So what about the constantly moving target that is the sound API causing even relatively new apps to break? And this is just the tip of the ice cube, lets not forget the differing filesystem layouts and the horrible dependancy mess that comes with even tiny little apps.

    Fact is the distros can’t even agree on a package format and fs layout (and standard libraries), forcing anyone distributing software to have to package it multiple times for all the variations. And this is for the sub 1% market. Windows, with 90% marketshare, only requires 1 installer for just about every version of Windows ever made.

  7. Kerberos got pwned by Declination.

  8. “That being said, yes his ISG is a retarded idea mostly because nothing that overreaching ever works out the way you think it should and leads to terrible bureaucracy and inefficiency.” – Declination

    Wait, what?

  9. “How does that matter again? Regardless of what the installer was authored with, you get a setup.exe app which you just run, on *any* version of Windows, and it works just the same (click I agree, next a few times, then finish). I can be on XP Home, Vista Enterprise or Win7 Ultimate, and it works just the same (regardless of OS is used or what particular app created the installer)”

    Consider the fact that the the canonical way of installing packages uses the Windows Installer toolkit, which is effectively a custom database built into windows. It supports a whole bunch of really cool features, many of which are indeed more advanced than linux package managers. My favorite among these is advertisement. The entire package management features in windows are based around the .msi format and invoked through msiexec. Yes, some .exe packages unpack themselves and launch and msi installation. One of which I noticed doing this is actually the OpenOffice installer. However, most of the other installer toolkits don’t support the msi format and perform custom actions on the registry and the package database themselves.
    You can see this at work if you were to happen to launch several installers at the same time. msi packages will error out telling you to finish what you were doing first, however, traditional exe packages will continue without complaint.
    The end result of this is that developers have to pick and installer and hope they can make it do what they want. If you pick nullsoft you have to jump through hoops to support automatic repair in the way that msi packages can. Its not quite as complex as multiple package formats, but all of the installers out there that are simpler than trying to author an msi yourself or using WiX (which is a good forsaken thing that involves typing Mbs of xml) you are effectively using a different feature set which might be incompatible with the official way. This leads to things like uninstallers leaving files/shortcuts behind even though msi tracks everything it installs. Its not as complicated as distro packaging for multiple distros. Its developer complexity that’s still there.

    Oh, and as I said before, Opera went overboard on their linux packages as I said. They could have gotten away with a .bin file that upacks into /opt and does a little bit of version checking to figure out the correct places to put .desktop files. Opera was kind enough to provide all those packages and as a result they also get the benefits of package management and easy upgrades when new versions come out, but, if you’ll notice on that same desktop page they offer a single download that supports:
    [x] Ubuntu 9.04 Jaunty Jackalope, Ubuntu 8.10 Intrepid Ibex, Ubuntu 8.04 Hardy Heron
    And I’m willing to be it continues working on 9.10 as well. As a result, they built one package back around 8.04 and it keeps on working for them mostly because the debian/ubuntu respostories are littered with “compatibility dummy packages” that preserve dependencies when things are renamed.

    My question for you is did you use their download page from linux box? It takes you to the distro you using.

  10. linux cross-compatibility and backward-compatibility is a myth.

    the SOURCE-CODE of the applications are backward-compatible, but the binaries ? hell no. every single different version of the libc seg faults the application if it’s the wrong one installed, every version of the kernel breaks the application, etc.

    the fact that it’s only the source code that is compatible isn’t really a great feat IMO.

  11. Even the source isn’t all that backward compatible, with the rate at which subsystems change, mutate, are purged and replaced.

    When source needs to be altered or rewritten to work, there is no source-level compatibility.

  12. [citation needed]
    If this where the case why would you even bother writing an application like alien to convert across distributions. There would be no point since the resulting conversion is guaranteed not to work. You might want to tell that to Google too. Google Earth runs on linux. Yes, it is a bastard hybridization of Wine oddities, but it still has to interface with libc somewhere or it wouldn’t run. They distribute a single .bin file that installs.

    Just in the same way linux users who claim a BSOD every day haven’t used Windows since the 90s, you clearly have not used linux since the 90s either.

  13. I should have clarified -I was refering to the kernel API, that whole bit about subsystems should have given that away mind you. You know, stuff like in-kernel hooks disappearing, the audio subsystem as a whole, the situation with DRI some years back, the fact that GregKH makes it clear that there’s ‘no need’ for backward compatibility, nor to maintain a stable API.

    Way to go, I’m talking source, you argue binary files, and even invoke Wine (which provides a relatively stable ABI), and could very well be a static build to begin with.

    Yeah, keep arguing something completely different and feeling all smug about yourself.

  14. When my dick is hard I expect immediate attention from a head nurse.

  15. I’m only an inch long down there.