Culture / Development

This Week in Programming: Should Open Source Require ‘Freedom At All Costs’?

27 Sep 2019 1:06pm, by

It has been a banner week for direct action in the world of open source software, at least for one determined developer. Ex-Chef, and current Google Cloud engineer Seth Vargo, upon noticing that his library was being used by Chef and therefore, through contract, the Immigration and Customs Enforcement (ICE) department of the federal government, pulled the software from GitHub in protest and ground Chef’s entire operation to a halt. At first, Chef held its position before issuing an update that said, “after deep introspection and dialog within Chef, we will not renew our current contracts with ICE and CBP when they expire over the next year.”

Meanwhile, “code witch” Coraline Ada Ehmke took inspiration from the scenario and decided to release what she calls the Hippocratic License, which was immediately met with a slew of responses — both in support and vehemently against.

The initial license used problematic and legally vague terms like “underprivileged” and, over the following days, Ehmke responded to much of the critique, quickly altering the language of the license to remove some problematic parts and attempting to better define who would not be able to use the license – all to little success to her critics. While Ehmke attempted to better define the license by using the United Nations Universal Declaration of Human Rights as the standard of comparison, many were still unsatisfied.

Many quickly point out that the license is just one in a long line of licenses like it that attempt to police the use of open source (thereby making it not open, by definition) that have failed or merely existed with no noticeable effect. The JSON license, for example, says that “the Software shall be used for Good, not Evil” – a clause that has not, to our knowledge, ever had any impact upon its use.

Matt Asay points out the problem of moral ambiguity in such a licensing attempt, writing that what’s seen as right or wrong is “a subjective question.” For Asay, the issue also comes down to openness, likening the limiting of open source to limiting free speech, writing that “…why these licenses are almost de facto bad, however well-intentioned, is because they make open source less open. With each such license, open source becomes less so. It is hard, perhaps impossible, to dictate what can’t be done with open source software without limiting all the things that can be done with it.”

Similarly, Bruce Perens, one of the founders of the open source movement, writes that the “Hippocratic License” can’t work, again picking apart the language of the license, saying that it doesn’t meet the definition of open source and saying that Ehmke should instead fight to right the wrongs of the world in other ways.

If only the well-intentioned people of the world had staff lawyers to write these things too, huh?

This all leads to a point in my mind, best illustrated by yet another tweet:

Indeed, while this may be a difficult and imperfect attempt, should we all be working so hard to shut it down rather than to correct it and build it up? I suspect that the answer is still yes for many, because the blade cuts both ways, but just like other laws, could terms be made specific enough?

Either way, Ehmke now writes that at least one primary objective has been achieved in all of this — discussion.

Ehmke further elaborates that her goal is to see clauses five and six of the open source definition to be amended:

“…my goal was to spark conversation about the implications of the ‘freedom at all costs’ requirement for officially sanctioned Open Source software, in light of the abuses of power and civil and human rights violations of governments and their collaborators. Developers don’t want their labor being used to do harm, and the current structure of open source software strips any power from creators to prevent this from happening. We are being exploited. Human freedom is being traded for so-called ‘software freedom’.”

This Week in Programming

  • .NET Core 3.0 Brings F# 3.7 and C# 8: The release of .NET Core 3.0 includes a number of things, such as the addition of Windows Forms and WPF, new JSON APIs, support for ARM64 and, of course, performance improvements. Beyond that, .NET Core 3.0 includes C# 8, which includes nullable, async streams, and more patterns, as well as F# 4.7, which Microsoft says is “focused on relaxing syntax and targeting .NET Standard 2.0.” .NET Core 3.0 is up for download for Windows, macOS, and Linux and has also been “hardened for Docker to enable .NET applications to work predictably and efficiently in containers,” a point some of you New Stack readers may enjoy. Microsoft also calls .NET Core 3.0 “a major new release,” pointing to “a vast set of improvements […] like the massive reduction in size of the SDK, and by greatly improving support for key scenarios like containers and Windows desktop applications.”
  • A Little More on F# 4.7: A few more details on the newly debuted F# 4.7 – the latest version drops support for .NET Standard 1.6 and introduces the ability to tune your effective language version with your compiler, allowing the team to deliver preview features alongside released features for any given compiler release. For those using preview versions of .NET Core and/or Visual Studio, the language version will be set to preview by default. The F# team concludes their announcement by talking about .NET’s “monumental shift towards .NET 5” noting that F# will follow suit: “it also has a strong heritage of being used for ‘analytical’ workloads: processing data, doing numerical work, data science and machine learning, etc. We feel that F# is positioned extremely well to continue this path, and we intend on emphasizing features that can align with these workloads more.” Also of note, they mention that they intent on making F# a first-class language for Jupyter Notebooks via the .NET Kernel.
  • Learn C#, .NET for Free: If you have any inclination toward this realm, Scott Hanselman also unveiled some free C#, .NET, and ASP.NET video courses and tutorials, which he says he’s been working on for months. The courses include “nearly a hundred short videos (with more to come!) that will teach you topics like C# 101, .NET, making desktop apps, making ASP.NET web apps, learning containers and Docker, or even starting with Machine Learning.”

Feature image by Pratik Gupta on Unsplash.

A newsletter digest of the week’s most important stories & analyses.

View / Add Comments

Please stay on topic and be respectful of others. Review our Terms of Use.