I assure you that my software runs without bash, coreutils, etc. And can build against musl or glibc just as easily.
What your software depends on or can make use of in a different system has no bearing on the constitution of the one it runs on.
If your software is running on Linux, it is still “Linux” even if your software can also build and run on Windows, and regardless of how much of Linux it uses.
Likewise, a GNU system does not stop being “GNU” just because not all software running on it has a hard dependency on any of its GNU components, or uses only some of them (which is expected).
I guess if Stallman wanted people to use his brand name he should have made it part of the license of glibc.
See his own answers to these questions:
because not every piece of software in a Linux distribution's base install is from GNU.
But they all depend on GNU components (if it is a GNU distribution). That's the difference.
Why would I call it "GNU/Linux" when there are hundreds of other projects that make a Linux distro that are, collectively, just as important? How about X11/Linux or Firefox/Linux or LibreOffice/Linux or Audacity/Linux. Dare I even mention Systemd...
Because all of these depend on the GNU libraries and utilities. (Try removing glibc and see how much of them keep working...)
Linux and GNU are in the name because they form the base of the system. All these other projects run on top of them. That's what an operating system is.
There is no such thing as “the Linux operating system”. “Linux” is an operating system kernel. Many different operating systems make use of it. Some also make use of GNU libraries and core utilities. The intersection of these two sets is noteworthy, for historical, philosophical, and practical reasons. I call them Linux/GNU-based operating system distributions, or Linux/GNU systems for short. (I put “Linux” first, since I see the slash as denoting a top-to-bottom hierarchy, and the kernel is the lowest level, on top of which every other component runs—including the GNU C Library.)
If there is an unavoidable need to shorten that description further, it should be to “GNU”, not to “Linux”. Using “Linux” (alone) to refer to an operating system, a system distribution, or a set thereof is conflictive. “Linux” is the name of a specific kernel. “GNU” is supposed to be an entire operating system. So one can at least say that these are incomplete versions of the GNU system.
A NBSP can be inserted by pressing AltGr+Space with the nbsp XKB option. I find that actually faster than double-tapping the space key.
Sentence spaces are more common than in abbreviations and other specialized uses; so, in any case, the total amount of key presses would be reduced.
Not that it matters. There is also no key in a standard keyboard for curly apostrophe or quotes, or dashes, or primes, or many other proper typographic characters. That does not make lazy ASCII approximations right, just convenient.
But the space that should be used after abbreviations is not the same space that goes at the end of sentences. The first one is a no-break space, as a line break after a "." that does not ends a sentence is undesirable.
The rules to detect sentence-ending full stops are actually trivial if the correct characters are used.
You are looking at it from the wrong side.
The period at the end of an abbreviation is, indeed, the same character to be used at the end of sentences. But there are many space characters in Unicode; and that's what we are actually concerned with.
The correct character to use after a period finishing an abbreviation but not a sentence is U+00A0 NO-BREAK SPACE. This not only allows the computer to parse it as non–sentence-ending reliably and easily, but also prevents the period from hanging at the end of a line, which can confuse human readers into thinking that the sentence has ended.
A sentence-ending punctuation mark followed by a single space character serves well-enough as an sentence separator.
There is no need for complex analysis of any kind. One only has to use the correct character for each occasion.
In the case of abbreviations, a NO-BREAK SPACE should be used when they are not at the end of a sentence. First, because a full stop at the end of a line which does not finishes a sentence is ugly and misleading. And second, because it enables also the computer to not see it as a sentence ending, allowing for proper kerning.
If one wants the computer to do the right thing, one has to provide the right input. Doing otherwise is user error.
What's the point of following the spec if no hardware does? The goal of an operating system is to run.
What's the point of following the spec for hardware manufacturers if no software uses it?
oh, and it would not really hurt if you did have static data types.
The Cython language is exactly this: a superset of Python with static type declarations.
A conclusion is simply the place where someone got tired of thinking.