4 ms·
> Cut down your dependencies on Linux distributions. I think the author has this backwards. Distributions don't play language favourites[1], and distributions
by rlpb 7y ago
> Cut down your dependencies on Linux distributions.
I think the author has this backwards. Distributions don't play language favourites[1], and distributions like Debian celebrate the packaging of alternatives to give users choice. The author is right in observing that most C code is shipped by distributions and not elsewhere for packaging reasons, but then later inverts the causal relation.
If good replacements for components [that are currently] written in C appear, then distributions will package them, and the author's problem will go away.
[1] Except that distributions dislike toolchains that embed libraries into builds instead of dynamically linking them, since then they can't issue a security update for a library just by updating that library; a world rebuild is required. This isn't a language or safety issue though, and could easily be changed without changing the language. For example, gcc's golang implementation supports shared libraries now.
- pjmlp 7y agoProbably someone can post a link to this, as it doesn't seem to exist anymore. The GNU project used to have a manifesto page from the early days stating that C should be the preferred language to deliver GNU software, except in cases where it did not made sense like libraries for other languages, followed with a list of endorsed alternative languages.
- rlpb 7y agoPerhaps that's because it made sense back then, but makes less sense now? :)
- pjmlp 7y agoIt only made sense in the context of cloning UNIX software and its relation to C. Regarding safety it never made sense. Morris worm is now around 30 years old and lint was designed in 1979, with the expectation that every C developer would actually use it.
- rlpb 7y ago> Regarding safety it never made sense. What suitable and sufficiently performant languages existed back then?
- pjmlp 7y agoFirst of all, contrary to urban myths, C arrived 10 years later to the scene of systems programming languages. It wasn't the genesis of them. There were already computers being developed in high level languages since 1961, most well known languages are ESPOL, NEWP, Algol subsets, PL/I and its variants (PL/S, PL/M, PL/S, PL.8,...), Mesa, Modula-2. And for those with deep pockets on the early 80's, Ada. As for performance, C was a lousy language regarding optimising compilers, it was only due to UB and lots of hard work that it actually arrived where it is today. "Oh, it was quite a while ago. I kind of stopped when C came out. That was a big blow. We were making so much good progress on optimizations and transformations. We were getting rid of just one nice problem after another. When C came out, at one of the SIGPLAN compiler conferences, there was a debate between Steve Johnson from Bell Labs, who was supporting C, and one of our people, Bill Harrison, who was working on a project that I had at that time supporting automatic optimization...The nubbin of the debate was Steve's defense of not having to build optimizers anymore because the programmer would take care of it. That it was really a programmer's issue.... Seibel: Do you think C is a reasonable language if they had restricted its use to operating-system kernels? Allen: Oh, yeah. That would have been fine. And, in fact, you need to have something like that, something where experts can really fine-tune without big bottlenecks because those are key problems to solve. By 1960, we had a long list of amazing languages: Lisp, APL, Fortran, COBOL, Algol 60. These are higher-level than C. We have seriously regressed, since C developed. C has destroyed our ability to advance the state of the art in automatic optimization, automatic parallelization, automatic mapping of a high-level language to the machine. This is one of the reasons compilers are ... basically not taught much anymore in the colleges and universities." -- Fran Allen interview, Excerpted from: Peter Seibel. Coders at Work: Reflections on the Craft of Programming Interesting fact regarding security, MIT continued with Multics, even after Bell Labs dropping out. Guess what, DoD later assigned a better security level than UNIX, thanks to PL/I being the systems language. https://multicians.org/b2.html https://multicians.org/b2.html