WiringPi - Deprecated
Written by Harry Fairhead   
Saturday, 24 August 2019

Open source is wonderful - except when it isn't. The latest mini-disaster, let's not get carried away, is that the creator and maintainer of wiringPi has given up, frustrated with the way people, aka users, treat his code and him.


It is difficult to know how important wiringPi is. It provides an Arduino "wiring" approach to using the Raspberry Pi's GPIO (General Purpose Input Output) aka the electronics used to get data in and out. Personally I have never used it, mainly because I prefer a more direct approach to the GPIO which has minimal and entirely replaceable dependencies. That way I know my code can go on forever. The big problem with adopting any new approach that is open source is dependency - in the sense "can you depend on it and its maintainer". Your product may well outlive the open source libraries that you use.

Of course, you might be about to tell me that the joy of open source is that you have the source. Which means even if the project is abandoned you can carry on using it and carry on modifying it. The problem with this argument is that you probably adopted the library to avoid having to create your own from scratch and to avoid having to understand the internals. Now, cast adrift, you have the much harder task of understanding someone else's take on the "internals".

So it is with wiringPi, the creation of Gordon Henderson. This library is intended to be used by C, C++ and his own language RTB BASIC, but as it is written in C other people have created bindings for other languages - Python, JavaScript, PHP, Perl  and Ruby to name the ones that I know about. There are alternatives, however, and Python programmers in particular prefer microPython, GPIO zero and PPi.GPIO. Of these GPIO zero seems to be the most popular but wiringPi, because of its familiarly to Arduino programmers, does have a significant place and presence.

The surprise then is that a blog post appeared titled wiringPi – deprecated… Now deprecated is a strange word to use about an entirely open source project and it isn't entirely clear what it means. What is clear is that its creator and maintainer is giving up on the project. What isn't clear is what happens to the code base in the future:

"I will make a final release of wiringPi available soon – with the sources, but that’s that. No more public releases. I’ll still be maintaining it for my own uses and clients, but for everyone else, please look for alternative GPIO library for on-going projects."

If anyone feels like taking over the project and forking it I can't see any reason why not - but be careful what you wish for.

The reasons for giving up on wiringPi are clearly going to be many and nuanced, but the blog post gives some clues and you might recognize some of the complaints. First we have the problem of interfacing with the technically incompetent:

"I never intended for wiringPi to be statically linked either – and thanks to the incompetence of many people who have done just this,  I’ve had over 10,000 emails from people who upgraded their Pi and found that code stopped working because they were reliant on a system (typically some java/javascript/node or home automation or UPS thing) which had statically linked an older version. This sheer incompetence on their part has saddened and depressed me hugely."

Of course, there is the issue of people making money out of software that you have decided to give away for free, but this complaint is slightly different:

"And those who’ve stolen my software and sold it as your own? Hm. Sure – it’s hard to steal free software, but say you’re a German Pi UPS maker and you pull apart wiringPi to get just the bits you need, statically link that into your own control code, but rather than publish the code and a little “thanks” note you leave my email address it in, then the poor user who has paid you their good money to buy your kit gets in-touch with me when they upgrade their Pi…"

It is clear that open source code that can be used in marketable hardware devices is even more of a problem than code used to create cloud services that charge. However, it seems that the whole "my code is free" is a problem for its creators. You mean you aren't going to feel proprietorial when someone does this to you:

"The sad thing is that people steal GPL, LGPL and other Free/Libre software all the time. I’ve even had someone tell me to my face that they would take and re-publish my code under their name because there is nothing I can do about it. So no more."

And you are at the mercy of users who don't appreciate that you have a life outside of open source and make demands that might be reasonable for commercial software, but:

"The final straw? An individual by the name of DanielK who bleated at me for not releasing the sources for the Pi v4 version in a timely manner. I’d put up a .deb file designed for the correct dynamic linking, but Daniel pointed out

Not to be a complete ass or anything, but technically the LGPL license REQUIRES you to make the sources available when it’s released.

Great. Thanks, Dan. As I had limited capacity available at the time, I just felt that that was that. If I’m going to get emails like that for a little project then it’s not worth it anymore."

So there you are. There are lots of other small points in the blog post, but the bottom line is being in charge of an open source project sucks - unless you have a skin as thick as a rhino's and are happy to realize that you don't have to respond to users who just don't get it.

I have "friends" who say I'd be ideal as a maintainer of an open source project, but I really wouldn't want to be that guy. Open source has a problem and I don't think anyone has any idea how to solve it.

Whatever happens in the future, despite my opening remarks, I think I'd steer clear of wiringPi for new projects and, yes, I think that this is what "deprecate" means.



More Information

wiringPi – deprecated…

Related Articles

Raspberry Pi 4 Sets New Performance High At Same Cost

GitHub Sponsors - Money For Open Source

Apache Software Foundation Is Worth $20 Billion

The Commons Clause - For Good or Bad

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.



Microsoft's Cybersecurity For Beginners

A free, self-paced course about Cybersecurity 101 is on offer by Microsoft's Cloud Security Advocates. It's a 30+ lesson curriculum targeted at complete novices.

Stack Overflow Jobs Reborn In Partnership With Indeed

Stack Overflow has launched a new jobs site co-branded with Indeed. It is intended to make thousands of highly-relevant job openings easily discoverable by developers. The job site is curren [ ... ]

More News

raspberry pi books



or email your comment to: comments@i-programmer.info





Last Updated ( Saturday, 24 August 2019 )