Thursday, November 19, 2009

The fundamental problem with Open Source...

... is that—all too often—you end up with multiple platforms, multiple versions of the code, etc., as Fake Steve points out.
According to Gadget Lab, app writers have somehow just realized that the reason open source fails in customer-facing use cases (as opposed to back on the server in a locked room) is that it splits like a bead of mercury into a zillion different forms, and nobody can write apps that work across the platform because, strictly speaking, there is no “platform.”

There are just a bunch of different devices that have a lot in common with each other but aren’t quite the same. Trying to turn that into a “platform” is like trying to build a porch using three hundred pieces of wood, none of which are the same size.

This does become something of a problem when you are trying to build and maintain something as complicated—and with as many dependencies—as an Operating System (OS).

Just think of all of those different desktop Linux "distros"; think of all of those little tweaks and codebase differences that they employ and now imagine trying to develop for them.

And, as far as a user is concerned, the user interfaces suffer the same fracturing—especially as you can apply different UIs to varying distros, or even the same distros.

(In my real job, we have had enough problems developing software between different versions of Coldfusion—and that is just one server application from one company.)
Dear friends, this is only going to get worse, not better. Think about it. Every handset maker wants its device to be different. And special. So they intentionally tweak the OS to give themselves what they think of as an “advantage,” when really it’s nothing of the sort, because all it does is prevent ISVs from writing apps for them. Even if the handset makers weren’t totally short-sighted and evil, there’s the competency issue — ie, even within a single company you’ve got a bunch of different teams of engineers, and they’re all using whichever version of Android was the latest and greatest when they started out on their project, or whichever version they happen to like best, and they’re all making their own tweaks and changes trying to outdo the guys across the hall, or in the next building.

Those Open Source projects that have worked—Firefox and the other Mozilla applications spring to mind—have done so because they have had one controlling entity ensuring a properly documented and linear development path.

It's worth bearing in mind when you look around and wonder why Linux is not more popular...

18 comments:

Phil said...

"Just think of all of those different desktop Linux "distros"; think of all of those little tweaks and codebase differences that they employ and now imagine trying to develop for them."

It's not as much of a problem as you think.

The vast majority of linux distros are simply variations of much more popular ones.

For example, Linux Mint is based on Ubuntu which in turn is based on Debian.

So long as the dependencies of your program appear in the primary distro, in this case Debian, your app should work on all the distros down the chain.

But I understand your opinion, I shudder when I see crap like Hannah Montana Linux.

Anonymous said...

Living dangerously DK. Watch out for those Linux fanbois.

As Phil says it really isn't as much of a problem as you think.

The majority of my clients as a developer now embrace open source in big ways. Of course most of this is on the server, but when that server delivers web-based apps the client problems go away, particularly when using good standards-compliant browsers like Firefox. Plenty of options for RIA if that is not good enough.

After all why pay microsoft/oracle/etc a fortune when you can get the whole software stack from open source? It's free, it works, is production strength and support is pretty good too.

IanVisits said...

Coming from a mobile developer background, I still have nightmares about the "write once, run anywhere" Java platform that mobile phones came with.

For something that was claimed to be universal, it was remarkably fragmented.

Even something as simple as a ringtone or wallpaper could be a nightmare to transcode for different handsets.

Then the operators got involved and started locking down MMS platforms, or stripping out handset user agents when connecting with content servers.

I am so glad I am out of that industry (at the moment).

Angry Steve said...

The trouble with all the linux distros is when you get supposedly innocuous updates which are actually major deviations in either the way things used to be done, the way things are done, or the way things should be done.

Pushing a libc update out as a minor update that breaks *everything*, or in the recent redhat and derivatives major change in the way non root users can now install packages...

The problem is usually down to someone who does not have sufficient understanding of how things work releases a good idea in to the world, and it fucks everything up.

And don't start me on the hardware raid drivers from redhat for dell hardware a couple of years ago.

Anonymous said...

Linux may be fragmented (in fact, not nearly as much as your exaggerated claims) but developing for it has been paying me well over the odds for nearly 15 years now :)

Maturecheese said...

Speaking of open source, Why isn't OpenOffice more popular. I use it and find it just as good as MS office and yet no business's seem to bother with it. Computer courses in our colleges don't use it either, again preferring to use MS office. Perhaps there's a perfectly good reason for this but I have not been enlightened as to what that is.

Maturecheese said...

I must point out that I have no expertise or involvement in programming and am just a ordinary PC user.

Henry Crun said...

Maturecheese, I think the answer lies in what I call "inverse snobbery". As far as large corporations and government departments go, cheap is always nasty and therefore the more expensive a software solution is, the better it is.

Add to the fact that Microsoft lobbied the government and they spend gazillions on MS products and rolled them out across the civil service - there's your answer.

Gendeau said...

I've tried openoffice at work (linux code development).

Screen re-renders if you move the mouse around the screen - incessantly.

SLOW

it's a piece of shit, so much so that I forked out 60 quid of my own money to get 3 licenses for orrifice 2007.

The spreadsheet package is even fucking worse. Not compatible either.

Most of my PCs are dual boot, with the intention of moving toward Kubuntu permanently - openoffice is my current, biggest stopper.

Hopefully M$ Orrifice and Wine will work out

microdave said...

Maturecheese - possibly because they have found (as I have) that documents created in OO, and saved in MS compatible formats don't always work when opened in MS.

I agree that it's a perfectly good product if you (and all your friends/contacts) use it, but a company isn't going to take the risk of some clients complaining, when they know that virually all of them have the MS equivalent already installed.

microdave said...

Sorry, speling misteak - should be VIRTUALLY all of them....

FlipC said...

@maturecheese - Businesses use MS Office. Therefore to increase employment chances educational courses train in MS Office. As new employees are already trained in MS Office businesses use it rather than retrain. :-)

countdruncula said...

DK, if open source is so difficult to write applications for, how come there 25000+ packages for Debian, and I have over 20000 available from my repository list on openSUSE. Many, if not most, of those applications will be available in the other main linux distros. Could it be that you are, once again, talking out of your arse about open source?

purpaboo said...

"There are just a bunch of different devices that have a lot in common with each other but aren’t quite the same. Trying to turn that into a “platform” is like trying to build a porch using three hundred pieces of wood, none of which are the same size."

You haven't looked at NetBSD, have you?

davidncl said...

"if open source is so difficult to write applications for, how come there 25000+ packages for Debian"
yeah, but 24000 of those are text editors each with a user base of one. A further 950 are programming language implementations for languages like intercal, brainfuck or dead languages like awk, snobol, abc. Of the remaining fifty exactly none of them has a user interface a real user would like.
I ran FreeBSD for years. I was as poor as a church mouse.
Now I make the big bucks on cutting C# on Windows. Powershell blows sh, csh, ksh, bash, and zsh out of the water. Ain't ever going back.

Angry Steve said...

countdruncula: try getting support for them... Oh yeah, you'll get the stock answer of "the source is available". That's just not an industrial solution.

The Devil is right, and you clearly have not worked in the IT industry.

AMcGuinn said...

The interesting thing about choosing Firefox is that the mozilla foundation had "one controlling entity ensuring a properly documented and linear development path", and the result was that nobody used their product, because it was crap. One guy on the project decided to throw half of it out and do what was left a bit differently, and the result was phoenix. Gradually phoenix became more popular, all the time pulling away from the "linear development path", until eventually the product of the linear development path was pushed to a side project (still available as seamonkey), and the one-man fork became the "official" mozilla product.

In other words, it's a counterexample to your argument. Not the only one, either - egcs followed much the same path.

countdruncula said...

@davidncl: if we ignore the hyperbole and the willy waving, you do have a point. The distros, Debian in particular, do tend to throw the kitchen sink into their repos. Yes, probably thousands of packages are not used much, not fit for purpose, and don't serve much purpose. The driving point of this article, however, was that developing and packaging applications across the different distros was nigh on impossible, the "fundamental problem with open source". I still contend that this is bullshit. Take KDE and Gnome for example, both fairly complex collections of packages that appear to be compiled and packages across many distros without too much problem at all.

@Angry Steve: "you clearly have not worked in the IT industry" - au contraire, dear boy. There is of course support available for the commercial distros. In my experience, this support tends to be rather good - real, actual geeks who know their stuff, not some dipstick reading from a sheet. And whilst I am confident that no-one, ever, has had any problems with drivers on Windows, well, shit happens sometimes.