We discuss all things open-source, leaving Michael and Joe to hold down the fort while Allen is away, while Joe’s impersonations are spot on and Michael is on a first name basis, assuming he can pronounce it.
This episode of the Coding Blocks podcast is about the people and organizations behind open-source software. We talk about the different incentives behind projects, and their governance to see if we can understand our ecosystem better.
This episode’s show notes can be found at https://www.codingblocks.net/episode150, if you’re reading this via your podcast player.
Sponsors Datadog – Sign up today for a free 14 day trial and get a free Datadog t-shirt after creating your first dashboard.
Linode – Sign up for $100 in free credit and simplify your infrastructure with Linode’s Linux virtual machines.
Survey Says
Anonymous VoteSign in with WordpressWhich company has the best open source projects?Facebook
Google
Microsoft
Vote News We appreciate the new reviews, thank you!iTunes: @k_roll242, code turtle
Upcoming Events: Joe is presenting at the San Diego Elastic Meetup Tuesday January 19th 2021
#CBJam is right around the corner, January 21st to 24th
Subscribe to our Coding Blocks YouTube channel for all the upcoming keyboard reviews
You Thought You Knew OSS Q: What do most developers think about when they think of “open-source” software?
Q: Is the formal definition more important than the general perception?
Formal Definitions of Open-Source
opensource.org: Open source software is made by many people and distributed under an OSD-compliant license which grants all the rights to use, study, change, and share the software in modified and unmodified form. Software freedom is essential to enabling community development of open source software.
opensource.com: Open source commonly refers to software that uses an open development process and is licensed to include the source code
Pop Quiz, who created…? C: Dennis Ritchie
Linux: Linus Torvolds
Curl: Daniel Sternberg
Python: Guido von Rossum
JavaScript: Brandon Eich (Netscape)
Node: Ryan Dahl
Java: James Gosling (Sun)
Git: Linus Torvalds
C#: Microsoft (Anders Hejlsberg)
Kubernetes: Google
Postgres: Michael Stonebraker
React: Facebook
Rust: Mozilla
Chromium: Google
Flutter: Google
TypeScript: Microsoft
Vue: Evan You
Q: It seems like most newer projects (with the exception of Vue) are associated with corporations or foundations. When and why did that change?
GitHub Star Distribution Q: What are the most popular projects? Who were they made for, and why?
https://github.com/EvanLi/Github-Ranking
Who uses open-source software? There are a lot of stats and surveys…none great
All surveys and stats agree that open-source is on the rise
You kinda can’t not use open-source software. Your OS, tools, networking hardware, etc all use copious amounts of open-souce software.
Individuals Many (most) smaller libraries are written and maintained by individual authors, and have few or no contributors
Some large / important libraries have thousands of contributors
10 most contributed GitHub projects in 2019VS Code has almost 20k contributors
Flutter has 13k contributors
Kubernetes and Ansible have around 7k
Q: Why do individuals create open source? What do they get out of it?
Corporations A lot of corporate “open source” that are utilities or tools for working with those companies (ie: Azure SDK)
Many open source projects are stewarded by a single company (Confluent, Elastic, MongoDB)
Many open source projects listed below are now run by a foundation
Let’s look at some of the most prominent projects that were started by corporations. Note: many of these projects came in through acquisitions, and many have since been donated to foundations.
Microsoft Maybe the biggest? Maybe?
.NET, Helm, TypeScript, Postgres, VS Code, NPM, GitHub
https://opensource.microsoft.com/
https://en.wikipedia.org/wiki/Microsoft_and_open_source
Google Kubernetes, Angular, Chromium, Android, Go, Dart, Protobuff, TensorFlow, Flutter, Skaffold, Spinnaker, Polymer, Yeoman
https://opensource.google/projects/explore/featured
Facebook React, PyTorch, GraphQL, RocksDB, Presto, Jest, Flux
https://opensource.facebook.com/projects
Amazon Well, lots of toolkits and sdks for AWS…
Oracle Java, MySQL
https://developer.oracle.com/open-source/
Focused Corporations Sometimes a company will either outright own, or otherwise build a business centered around a technology. These companies will typically offer services and support around open-source projects.
DataStax
Elasticsearch
Canonical
MongoDB
Q: Why do corporations publish open-source software? What do they get out of releasing projects?
Foundations Foundations are organizations that own open-source projects
Foundations have many different kinds of governance models, but generally they are responsible for things like…code stewardship (pull requests, versions, planning, contributors, lifecycle, support, certification*)
financial support (domains, hosting, marketing, grants)
legal issues (including protecting the contributors liability)
Most big open-source projects you can think of run under some sort of foundation
Typically they are funded by large corporate backers
There are a ton of foundations here. including many “one-offs”: https://opensource.com/resources/organizations ** WordPress Foundation, Python Foundation, Mozilla foundations
Foundations are run in a variety of ways, and for different reasons, some even offer many competing projects
https://opensource.guide/leadership-and-governance/ ** BDFL – Python, small projects, one person has final say ** “Meritocracy” (not a great term) – Active contributors are given decision making power, voting ** Liberal Contribution: Projects seek concensus rather than a pure vote, strive to be inclusive (Node, Rust)
Apache (1999) Governance: https://www.apache.org/foundation/governance/
Org Chart: https://www.apache.org/foundation/governance/orgchart
https://projects.apache.org/
Non-Profit Company, mostly Java, tons of libraries, data
All volunteer board, 350+ projects
Projects
HTTPD, Kafka, Spark, Flink, Groovy, Avro, Log4…, Maven, ActiveMQ, Lucene, Solr,
Cloud Native Computing Foundation Kubernetes, Helm, Prometheus, FluentD, Linkerd, OpenTracing
A whole bunch of others that start with a K
Linux Foundation Linux Kernel
Kubernetes..? Ah, they’re over CNCF, and many, many, many other things
Let’s Encrypt, NodeJS (through the OpenJs Foundation)
Q: Why do corporations donate projects, why do individuals? Who really owns open-source code?
Resources We Like USA Facts – Our nation, in numbers (usafacts.org)
Tip of the Week Peacock – Subtly change the color of your VS Code workspace. (marketplace.visualstudio.com)
SketchUp – 3d model *all* of your projects. (sketchup.com)
Comentarios