Uncharted Waters

Oct 24 2018   10:34AM GMT

Open Source – or Open Sores?

Matt Heusser Matt Heusser Profile: Matt Heusser

Tags:
Java
Open source
Ruby

Open Source KeyboardHave you tried to build something new with Open Source lately?

You start with Rails. Of course, you need to leave the newest HTML, the newest javascript libraries, plus Ruby, plus the conventions and libraries. That’s fine. No problem.

The problem comes when none of it works.

Hidden Assumptions With Open Source Tools

Let’s take something a little more modern. This week I started an online course on blockchain. The course promised to further than concepts, and have us actually implementing our own crypto-currency. I was excited by this, figuring I could put examples up on github and have a working reference. After the standard fifteen minutes that is the same introduction to blockchain you’ve already heard a dozen times, I finally get into writing code. The first thing the author tells me to do, in the video, is to run an npm init script.

My macBook has no command for npm. I get an error message.

Luckily I know that npm is the package manager for node.js. The course said the examples would be in “javascript”, so I google search for a node installer (node is open source) and things work.

At least they work today.

The problem will get worse two years from now, when someone downloads the tutorial and the commands are out of date. Or the operating system is not supported. Or the JSON blob that is rendered is just different enough from what the software expects that an error appears. I know; eight years ago I wrote how to set up Selenium RC  in perl, using technoligies that no longer work nor are supported with current browsers. The page is still out there, while the entire architecture of the current Selenium (Webdriver3) is very different.

Old Tech

Look for code examples to work through the problems online, and you’ll likely see information on Selenium IDE, the browser plugin that was an “onramp” to selenium at one time. The exported code samples from the IDE will not longer compile. Meanwhile, the new, current Selenium IDE tool does not even have an export function anymore.

So you ask a friend.

The Unhelpful Friend

beware of what, exactly?Odds are, when you complain about getting the Open Source project to work in Ruby, your friend will say “That’s why you need to use Java!” Or when it won’t work on your Mac, they may say “There’s your problem, Macintosh.”

That is not helpful.

Even if they use the same core technologies, they might say they don’t use the same package manager, or the version control system. “Switch version control systems to solve your merge problems” isn’t helpful either.

Unless you can find someone who knows the whole tech stack, you are probably back to googling for Stackoverflow answers. Eventually you’ll upgrade some dependency, or change permissions on a directory, and, after hours of searching, everything will just work.

I’ve had this problem with closed-source software. I remember once my version of visual studio would take seconds to respond to a keystroke and I couldn’t figure out why, and a co-worker had the same problem a few months later. Still, those problems were incredibly rare

Still, Open Source seems to have a “getting started tax”, one that needs to be periodically re-paid if you are running a complex stack of tools that interoperate, and you want to keep them current. I’m not sure if the getting started tax is even a bad thing. Googling through error message codes seems to be a rite of passage. Some programmers lucky enough to grow up  in organizations that kept good notes, used mob programming, or had base vm or docker images to build on top of are, in a way, missing out on something.

Next time you’re struggling, forgive yourself. Instead of a pain, or unfair, a learning curve, or just a natural consequence of various versions with no commercial interest to make them interoperate, tell yourself that you are on the hero’s journey, with working software as the journey’s end, and enjoy the climb.

I’ll see you at the top.

1  Comment on this Post

 
There was an error processing your information. Please try again later.
Thanks. We'll let you know when a new response is added.
Send me notifications when other members comment.
  • dalinn
    It seems to me that none of your points has anything to do with open-source software:
    1. The instructor in the video assumed that you had gone through some foundational steps that you didn't have.  I think you'd have the same experience if the instructor said "Run [closed source] init script" without either explaining that, or sending you to another more introductory video.
    2. Documentation gets out of date.  I know that you know that this happens everywhere.  The video probably should've mentioned the versions in use.  It's easy to forget to do that if you're running the most recent version of everything.
    3. If you ask people about your problem, if they aren't familiar with the exact scenario that you're encountering, they'll give you an answer that they think might possibly help.  Again, this has nothing to do with open source, it's a well known problem in human psychology.
    30 pointsBadges:
    report

Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to:

Share this item with your network: