Why do FLOSS developers keep ranting?

I have a theory, listen carefully.
A theory about why FLOSS sometimes sucks so bad.
Keep reading.

Many of us do FLOSS coding for the ultimate glory of just doing it. Learning, filling empty days with something to do or simply because we need to feel important for somebody else (I’m pointing the finger to you, behated [my opposite of beloved] library developers).
A rainy Sunday is still a rainy Sunday, and most of us find the couch and afternoon naps quite boring.

Here comes the problem. Developer Joe has a boring afternoon to fill, so he starts thinking about how to improve the API of his library that, accidentally, hundred of thousands users are happily using and find fine as it is.

He starts coding and messing with it and, since he’s a free mind, he doesn’t have to respect any API deprecation rules that most companies (for example) have in place for morons like him. Of course, there is no roadmap, Joe just woke up in the morning and decided to change everything. He also has the excuse that he’s not paid and doesn’t give a fuck about supporting users. He just wants to show how good he can be writing code (hoping to get hired by Google, IBM or Oracle — thank god the guy [Developer Joe is a creation of mine] knows ubuntards and doesn’t expect Canonical to hire him after a mission-impossible phone interview where the hardest task was trying to figure out what the interviewer was about to say).

So, it happens that a small change in the API, causes a small change in the ABI, that eventually, causes its shared object name to get bumped from libjoe.so.1 to libjoe.so.2. The little tiny small invisible change Joe did, for sake of speed and architectural cleanliness (OF COURSE! IT HAD TO BE DONE (sarcasm)) breaks other 35 applications and in general around 425 shared objects that were linking against it, requiring their developers to understand what Joe did, voiding all the testing their applications got until now and eventually+hopefully making the program working again with the new libjoe, spending the next two weekends (oh, they don’t have anything else to do, too).

It’s a perverse game that will never stop.

What’s the moral? Unknown people will indirectly break your application someday, and it’s not a security flaw, it’s just because they were getting bored.
Any solution? Yes, don’t use lame fuck people’s libraries.


About lxnay

the creator of Sabayon Linux, Entropy Package Manager {Eit, Equo, Rigo}, Molecule release media buildsystem, Matter Portage buildbot/tinderbox and only God knows what else...

5 responses to “Why do FLOSS developers keep ranting?

  1. lxnay note: I should have entitled this: “Why do I keep ranting?” 😉

  2. When did you start writing Ruby On Rails apps?

    But I’d say one thing at least: when the soname is actually bumped, it wouldn’t be _too_ bad… think of when the ABI/API breaks without bumps, in micro-versions…

  3. Maybe that’s why most successful OSS projects follow a dictatorial approach, like Linux and Linus.

  4. TDT

    Yes your solution is right but as you put it, people may want to use Joe library because they know that when they are bored they will have their hands full. On the other hand if that library was so important for 35 applications the owners of those applications could just fork the library.

  5. SuperKoko

    Even worst, the API and ABI may be changing while the library DO NOT bump version, so you cannot have both libraries installed at once without hacking executables with an hex editor (yes, I did it), although, ideally, you’ve to recompile everything that depends on the library, because, indirectly, you may end up getting both versions loaded in the same process, which breaks horribly.

    This happens often on eternal beta software whose major version is always 0.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

hello, twitter

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 583 other followers


%d bloggers like this: