bubby.me

guhnoo

Philosophy

GNU only recommends distributions that offer only free software. Non-free software isn’t even an option to the FSF. This sounds reasonable at first glance, however it seems ironic that allowing user freedom includes disallowing many programs and firmware to even be installed.

What is this video even..? It’s on the main page of gnu.org. I assume it’s for the purpose of seeing the impracticalities of non-free software, but the method in which it’s conveyed draws much more attention to the “cool graphics” and action instead of the theme of the video (in my opinion at least). larp!

Documentation

lack of man pages….

While it can be understandable that GNU would want to have their own documentation system, GNU texinfo, I don’t want to install GNU emacs specifically to read documentation for GNU tools and libraries.

Tools

This example is stolen from cat-v, showing how annoying GNU’s build “system” is when scaled. courier FAQ. My main issue is due to the fact that the dependency tree for GNU’s auto* software is a circle, and is therefore an utter nightmare to try bootstrap on a new machine with few other tools (an experimental linux distribution, for example).

Emacs could have its own section but I’ll keep it brief with a teaching of Master Wq


One night there was a storm, and Master Wq’s house collapsed. The next morning
he began to build it again using his old tools. His novice came to help him,
and they built for a while and were making good progress. As they worked, the
novice began to tell Master Wq of his latest accomplishments.

“Master, I have developed a wonderful Vim script to give all sorts of useful
information about a document. It counts the words, the sentences, the
paragraphs, and even tells you what kind of document it is using the syntax
highlighting rules. I use it in my pipelines all the time. It is a thing of
beauty, and I am very proud. Truly, Vim is the greatest tool!”

Master Wq did not reply. Thinking he had unwittingly angered his master, the
novice fell silent and continued his work.

The novice finished aligning two beams and had positioned a nail ready for
beating into the wood, but found the hammer was out of reach.

“Would you pass me the hammer, master?”

Master Wq handed the novice a saw.

At once, the novice was enlightened.

Emacs can be:

  1. window manager
  2. web browser
  3. email client
  4. media player

To name a few.

echo comparison gist

cat comparison meme

Code

The following examples are just to show the complications GNU code has and how it can affect a program’s readability (what the f*ck is the coding style???). And possibly (usually not somehow) performance.

This libc comparison shows the differences between musl, uClibc, dietlibc, and glibc. Essentially green = good, orange/yellow = meh, and red = bad. Just looking at the first 3 categories, it can be seen that glibc is much.. much larger in size, and seems to have many issues with resource exhaustion compared to musl.

While the performance is usually better for glibc, the actual code is horrendous. Comparing to musl’s implementation, it should be fairly obvious how much nicer musl’s code is when compared glibc. Going away from linux libcs specifically, OpenBSD’s implementation also shows how simple the code needs to be. Note this is essentially the same as musl’s, just without the __GNUC__ compatability macro(?) musl has.