(Week 1) Completely Unsubstantiated Opinions on Open Source
For me, the words open source appear most often when looking for a solution. Some recent examples include: a new e-reader, converting mobi files to epub, and building a new keyboard. Whenever there is a software problem, there is often a for-profit proprietary solution and an not-for-profit open source solution. There can be one FOSS and one proprietary, many FOSS and many proprietary, and everything in between. For example, photo editing has (effectively) only GIMP vs Photoshop. Linux vs Windows/MacOS. Textmate/Sublimetext vs VIM/VScode/Atom/etc.
The success of open source depends on the type of problem. In general, it seems open source wins more often than closed source in three categories:
- Things that don’t make money.
- Things that software developers use.
- Things that can’t be trusted. (often overlaps with 2)
Sometimes there is an open source solution for a problem, but it doesn’t meet the standards of the closed source one. For example, GIMP has nowhere near the capability of photoshop to be considered for a professional. The same applies to Digital Audio Workstations (Ableton, Logic, FLstudio, Pro tools) vs Ardour/Audacity. No music professional will use open source to work with sound. This phenomenon plays out in all media, especially anything Adobe Suite does. Fundamentally, it seems that open source solutions exist when there is not swaths of professionals willing to pay a premium for a high quality product. This does not seem to be the case when those professionals have the ability to create their own software, as with software developers who congregate around open source solutions.
Open source wins out when there is little room to turn a profit via selling the software itself. These problems include things like converting filetypes, video playback, and internet browsers. There is no way anyone would buy video playback software when MacOS and Windows default media players do the job just fine. There is no incentive for Apple or Microsoft developers to make a large featureset for these players, so VLC is a vastly improved user experience than any propriety solution, precisely because there is no way to get people to buy it.
The last common use case of open source software are things that can’t be trusted. The most prominent example is cryptocurrency. Crypto extends open source to the logical extreme: trust no central authority and independently compete for digital currency. Any proprietary cryptocurrency will fail because it conflicts with this core principle. This is why libra failed, despite being backed by a 200 billion dollar company. (bitcoin’s market cap is approaching facebook’s) (comparing currency speculation and a profit generating company is a flawed analysis) (but you see my point).
When talking about the advantages of open source, the most common response is that the user can make changes to the source code. I believe this is totally, absolutely, completely the least important advantage of open source. I would wager that less than one percent of users actually look at the source code, and an even smaller percent of those people attempt to make changes. If the primary advantage of LibreOffice is that you can change its code, there would be zero users.
The biggest advantage of open source software is the safety in knowing the program will work for as long as there is a need for it because people with the need will dedicate developmental resources to it. This contrasts the proprietary model: function as long as it makes money.
One of the biggest downsides is that it can be difficult to build complicated systems which require full time efforts of developers that cannot be paid. These cases include things like cars, planes, hospital software, etc. It would be difficult to build some of these systems via distributed consensus as opposed to a dedicated team of developers.
I registered for this open source class because I have a project I want to contribute to, and I figured I might as well get guidance and credit for it.
Four Projects
-
Ubuntu - My main operating system is ubuntu, a user friendly linux distro. I find that ubuntu is faster, less obtrusive, and overall a better experience that windows.
-
Quantum Mechanical Keyboard (QMK) - QMK is open source firmware that lets you program a keyboard to be any configuration. It provides layers, custom lighting, and macros. I built a keyboard and flashed it with QMK and it’s super cool.
-
Lemmy - Lemmy is an open source reddit clone (still in development). This project uses Rust and Diesel for the backend, and Inferno and Typescript for the front-end. I want to work on this project for this class, implement more features, and then run my own instance on kubernetes.
-
p5.js - This is a js library that ports a java graphics library called processing to the web. It lets users create drawings and iterate very, very quickly. I find that it’s a great educational tool.
If proprietary software is shakespeare, open source is 10,000 monkeys with keyboards. I identify with the latter.
All opinions subject to change.