UP | HOME

Delegation

This is the most fundamental and the most difficult part.

How do I know something is good for real (not because some other people are saying so)?

How do I know that libc++ is good or not? Well, Google Chrome runs on it, it has libc++ as a vendeored dependency.

Google is arguably the best C++ shop in the world (MS is crap from its first days), and Chrome runs on hundreds of millions devives.

The first observation is a heuristic, while the second one is a “natural” experiment.

How do I know that the LLVM toolchain is any good? Well, Google uses it for Android, Apple uses it for iOS, these ran on billions of deveices.

Does it mean that I have to use C++? Of course, not.

Does it mean that I have to use clang++ and libc++ if I must use C++? Absolutely.

Why this is hard? Because everything is complicated in the real world.

How do you know that a drug you have just bought in a pharmacy is good? The partiular part may come from a faulty process, the particular vendor may ignore the safety measures, ingridients from a supply chain may be crappy just this time, and so on.

Without proper testing (which, of course, no one does) you cannot tell and have to “trust” and “believe”.

In software we can do neither. We must know and have a proof (not merely a test).

Same goes for food. How do you know? Well, you don’t. You may have, however, some heuristics which any professional cook will use to evaluate the kitchen, the ingredients and the dishes. This is what we do in the industry.

Yes, we just “know” that things like LLVM (and libc++), or Webkit or Mesa are OK, and things like JVM are not (otherwise they would not have the binding versioning - our shit runs only on this particular versions of the crap).

Emacs

How do I know GNU Emacs is good? Well, it still can be compiled for and runs on MS DOS. Emacs 28.2 is available for DOS (requires the DOS/4GW extender). This tells one something about the quality of the software desing and of the quality of the code.

GCC

Author: <schiptsov@gmail.com>

Email: lngnmn2@yahoo.com

Created: 2023-08-08 Tue 18:40

Emacs 29.1.50 (Org mode 9.7-pre)