Charles Nutter’s thoughts on Free and Open Source Software (FOSS)
I recently met Charles Nutter after a very long time at the recently concluded 10th edition of RubyConfIndia 2019 in Goa.
Charles is a pleasure to work with. He’s got a great attitude, and is fantastic at keeping everyone around him motivated, productive and on board with the important objectives. Charles, hacks stuff on the JVM. Specialties: JRuby, languages, compilers, optimization.
I had a chance to talk to Charles about some high-level questions on free and open source software . Here are his thoughts to some of my questions.
Satish>> Who are your role models and mentors in the tech world?
Charles>> This is a difficult question. The further along my career gets, the more I realize that folks I saw as mentors or role models in the past are just regular people that makes mistakes and don’t always know what they’re talking about. I feel like everyone I meet while working on open source or speaking at conferences can teach me something.
It might be more apt to talk about organizations that have earned my support, like my current employer Red Hat — sponsor of thousands of projects — and OSS organizations like Apache and Eclipse. I’ve been thrilled to see IBM embracing open source to the point of creating OpenJ9, only the second certified OSS JVM out there, and I’m starting to believe the stories about Microsoft really starting to get open source. I’m cautiously optimistic that all the major software players will keep moving this direction.
Satish>> What do you understand by Free and Open Source Software?
Charles>> There’s plenty of definitions online, but it basically boils down to this: you can freely view and modify the software’s code, build a new version of the software, distribute the modified code, and integrate the software into other projects (subject to license details). Folks like to talk about the distinction between free as in beer (no money needs to change hands to use the software or see the source) versus “Free” as in libre (few or zero restrictions on how the software or its source can be used or manipulated). The F in FOSS is the libre kind of free.
Satish>> Why are you such a big supporter of open source platforms?
Charles>> I grew up as a programmer during the 90s, when the majority of enterprise and business applications were built on closed-source systems. I remember not-so-fondly the many times I found bugs in those systems, but without the source available I had no way to fix it myself. It was also generally difficult to communicate those bugs to the software’s developers, since issue trackers typically weren’t public and user forums were typically used to ask usage questions. The software world ran on a series of black boxes, and if something failed you had to pay someone to fix it or just accept the problem. I don’t want to live in that world again (and I don’t think we ever will).
Satish>> What are the main legal issues that can arise with free and open source software licensing?
Charles>> As a non-lawyer, my experience is that most folks run amuck when it comes to code lineage: tracking the history of a piece of code to ensure it’s either original FOSS code or that it can be converted to such. A few times in JRuby’s history we have unknowingly accepted patches that turned out to be lightly-modified code from copyrighted or differently-licensed (sometimes closed-source) projects. In every case, the code was quickly found and replaced, but it illustrates how easy it is to accidentally run afoul of legal requirements.
Outside of those code ownership problems, most folks will debate the merits of a few major licenses and which one to use. Some licenses like the “copyleft” Gnu Public License require that third-party modifications to your code be provided in source form, which ensures contributions are shared but also makes it difficult to customize and embed the software in commercial projects. Non-”copyleft” licenses like Eclipse Public License or Apache Software License have no such requirement, but that also means you might never see those external improvements to your code. You have to balance your investment in the project with a desire to be as “Free” as possible when choosing a license.
Satish>> Is open source software in the public domain?
Charles>> The definition of “public domain” varies a lot from jurisdiction to jurisdiction, so it’s probably better to avoid when talking about software. You can make your code freely available under a number of virtually-unrestricted licenses that make it clear what rights a user has, rather than hoping a given locale has an appropriate definition of “public domain”.
In some sense, releasing open source software does put it in the “public domain”, but legally I think it’s a bit too messy to use as a general term for OSS.
Satish>> What are the issues for companies that use open source software?
Charles>> Of course there’s the legal questions, and I’d recommend having a chat with a good intellectual property lawyer if you’re a closed-source company looking to make major contributions to open source.
Beyond that, there’s work/life and work/education balances to maintain. Many companies will not want to pay their employees to work on “other people’s software”, even though this presents an enormous opportunity for developer growth and community outreach. Many significant others might have concerns about off-hours work, a frequent component of supporting an open-source community. Finding that balance is a challenge, but there’s many workable systems out there (e.g. Google’s 20%) that are fair to both developers and their employers.
I and others in the community are standing by to help you make this transition, and we look forward to bringing all developers into the light of FOSS!
Thank you Charles, for sharing your views with us. I am confident that your insights would help all the would-be Ruby developers. In case you have any queries and/or questions, kindly leave a note here and Charles would be glad to answer.