UNIX maximalism and minimalism - Other *nix-like OSes & POSIX related

Users browsing this thread: 1 Guest(s)
rizins
Registered
(21-02-2025, 04:41 PM)ckester Wrote: What do my fellow nixers think? Am I just a crotchety old C programmer who likes simple makefiles? and everything statically linked and preferably less than a megabyte after stripping (less than 500K even better)?

No I think this is essential for coreutils. As a 26 year-old C++ dev who uses a bunch of 3rd party libraries and lives in CMAKE hell, I dislike this new idea of writing coreutils in Rust and pulling 3rd party dependencies with Cargo, even though at my day job this solution solves a lot of my frustrations with corporate development.

I do think however there is some developer ergonomics that people "think" the Rust toolchain solves that we have not done a good job solving in the C++ community, and certainly not in the C community. People seem to really want "modules" see p2990r0. I have never understood this. I want the OS and/or GCC to handle C/C++ feature support with Linux package managers that append headers to /usr/include and DLLs to the correct place so that I can just do #include <newHeader>. We don't need something like PIP, NPM/JSR, or Cargo. In fact Arch Linux manages Python package installs this way with Pacman. My point being that in the Unix ecosystem we don't need this problem solved at the language level, but at the Linux distribution level. Also think of how many reports we have of malware being distributed through those services that we know of...

I think there are two main things that would improve Unix developer ergonomics in a way that would be easier to implement than Rust rewrites and would have the same effect:

1. All GNU Corutils should be formally verified for correctness with tools like Frama-C, CBMC, or Coq. Not sure which one is the best here, I just think adding one to a CI/CD pipeline would make all the people who complain about memory safety not have room to stand on.

2. We need a better pipelining scripting language compared to Bash/Sh. As a younger developer the syntax and semantics of these scripting languages seems like a hack to try and emphasize using ASCII as your form of universal data. I do think this was a good approach initially, but we need to modernize here. Windows Powershell and Nushell both pass data as binary encoded streams to other programs. This improves speed, data size, and limits escape sequence vulnerabilities. I was reading the other day about how Guido originally wanted Python to appeal to Unix hackers...Imagine if that became the default scripting shell on Unix systems. To be fair I think the ideal thing to replace Bash/Sh doesn't exist. Perl seemed like maybe the best bet for a while, but the fragmentation between Perl 5.x and Raku doesnt help create a cohesive environment that we would need. In my dream world I think something like an easier Haskell would be ideal. Functional, immutable data by default, and lazy evaluated.


Messages In This Thread
UNIX maximalism and minimalism - by ckester - 21-02-2025, 04:41 PM
RE: UNIX maximalism and minimalism - by venam - 22-02-2025, 08:18 AM
RE: UNIX maximalism and minimalism - by jkl - 22-02-2025, 03:09 PM
RE: UNIX maximalism and minimalism - by ckester - 22-02-2025, 05:00 PM
RE: UNIX maximalism and minimalism - by rizins - 30-03-2025, 01:58 PM
RE: UNIX maximalism and minimalism - by jkl - Yesterday, 02:26 PM
RE: UNIX maximalism and minimalism - by ckester - Yesterday, 06:14 PM
RE: UNIX maximalism and minimalism - by jkl - Yesterday, 08:31 PM