A plea to developers

As a developer myself, I still fail to understand why you’d ever want to do this, but I still see it way too often to not say again what I say regularly:  Don’t.  Bundle.  Libraries.  I don’t care if it’s C/C++, Java, PHP, Python, there is a correct and easy way to use libraries.  When you bundle:

  • You add to your maintenance burden.
  • You make it difficult or impossible for some distributions to include your software.
  • You put yourself and your users at a disadvantage at a disadvantage for security and bug fixes.
  • Somewhere, a baby seal is clubbed.

So . . .don’t!

Thank you. 🙂

Advertisements

4 thoughts on “A plea to developers

  1. rich says:

    I don’t like library bundling either, but I think we need to be honest about why developers do this, and what you’ve written here doesn’t address the whole issue.

    There are various reasons that developers might do this, and they should be addressed:

    The library isn’t commonly installed so it has to be bundled. Solution: package more libraries in distros. But there’s no good solution for, eg. Windows users, except to discourage developers from using Windows.
    The library doesn’t have a stable API: Solution: educate the library authors (not the bundlers).
    Developers want to make changes and can’t be bothered to push them upstream. Solution: educate the developers.
    Developers who just don’t know any better, or come from a culture where bundling is common (Java etc). Solution: educate the developers.

    Rich.

    • Casey Dahlin says:

      Also: Developers want to make changes, and push them upstream, but upstream won’t take them, and the developers don’t want to wait for the often years-long flamewar to conclude before shipping.

      This is what happened with Android and the kernel (though they are a distro so it’s a little different) and it’s more or less what killed Songbird.

      • limburgher says:

        I’ve seen this happen, and I’ve often wondered what sort of changes motivate this. If I need a library, I use it, and if I need something it doesn’t do, and nothing else provides that functionality, I write it into my app, or write an add-on library. I could see offering changes to upstream for includion if possibly appropriate, but it isn’t always. Not commenting on how this applies to any particular situation, because I honestly don’t know, just wondering out loud.

  2. limburgher says:

    Those are all very common reasons, with excellent solutions. So all we have to do is educate the users and move everyone off of Windows. Well, shoot, there goes my weekend. 🙂

    The most common reason I see seems to be laziness, but I suppose that falls under your last two.

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s