FYi,From Lisp's perspective C is the newcomer![]()
GitHub - mighty-gerbils/gerbil: Gerbil Scheme
Gerbil Scheme. Contribute to mighty-gerbils/gerbil development by creating an account on GitHub.
FYi,From Lisp's perspective C is the newcomer![]()
So the most straightforward thing to add new languages into base would be to choose from any of languages (other than already picked clang and clang++) that LLVM project officially has in their releases. If there's none that is wanted there, simply, it's tooooo early to consider, unless FreeBSD switches (again) to different toolchain project.
If Rust is incorporated, Rust can be the candidate.
Exactly. What I meant is that if Rust in base realizes, it should be better AFTER LLVM project itself starts providing Rust frontend. Not now.That doesn't work since Rust would want a specific LLVM version, and would want frequent updates, while the C compiler does not and shouldn't be messed with needlessly.
While Rust had a growing following, you never heard too much about it until the US government recommended its usage for security purposes. Then, all of a sudden, there were articles everywhere stating everything had to be written or re-written in Rust immediately.
Exactly. What I meant is that if Rust in base realizes, it should be better AFTER LLVM project itself starts providing Rust frontend. Not now.
And it would be wanted that Rust is standardized by ISO/IEC earlier than that.
This Developer Voices episode talks about why it was critical for InfluxDB to move from Go to Rust. Developer Voices is an incredible podcast btw.
Indeed. They call them "abstractions" but really its just thin+fat bindings hell. Generators like bindgen/swig can't hope to solve this issue (an LLM might be viable in the future once the monetization novelty wears off and actual engineers start exploring the tech).The Linux kernel people seem to have to put a lot more effort into interfaces to C API than they thought. They are on it for years.
That's a good point. We have a lot of drivers, sufficient for lots of purposes, already. If that were to happen, FreeBSD will still be fine. Only newer drivers from Linux, such as for newer graphics cards, wifi, scanners, and Bluetooth would be affected. It may stop FreeBSD from using newer drivers written in Rust.if any of drivers that we need but only available via LinuxKPI start using Rust, we cannot avoid Rust for at least ports kmods. And it could mandate LinuxKPI having partial implementation by Rust.
Python is a necessary scripting language for math and science. If you mean its currently used where not needed, or that it is not needed for many typical programs, then ok. Not sure if you mean doing away with Python for most purposes including for math and science, or for a typical dependency in common programs. As for Perl, it's time for it to be replaced by Ruby.codebase clean and focused simply by not mashing in a load of ecclectic noise into the codebase and build systems. And Rust is crap to bind against, so it also helps eliminate Python, Perl and all that clutter too.
Rust is here to stay, and will have a major following for at least 15 years from now. After that, it will become niche level, but still relevant. Something that learns its lesson from Rust and other modern languages will replace or complement it, similarly to how C++ complements C. D, C# and other languages are still around, and will be as long as C is mainstream, even if they're not prevalent. Starting now though, D, C# and other older languages based on C will start declining, because modern languages already are being developed to do what those didn't solve. That momentum won't pick up, until Zig or something that learns lessons from it is at a stable point.You can find a podcast about anything so that's no indication of anything. The last I heard of Rust was when Mozilla introduced it long ago and you'd hear about it here and there
Counter-example: Digital's VMS has a whole lot of programming languages available, including Bliss (a descendant of B, the predecessor of C, which was used for what we would call the kernel), assembly, COBOL, FORTRAN, PL/1, RPG-2, and eventually C. To make sure the libraries for ALL languages were kept in good condition and always available, the development team decided that each supported language was going to use in some utilities that were part of the base (non extra cost) installation. The craziest example is that the monitor utility (sort of what ps and top do on a Unix machine) was written in RPG-2, which is usually purely a report generator language. It must have been difficult, but they did it. Why? Because they wanted to to deliver a high-quality product, the OS development team needed to keep their skills up up and keep software maintained in all these languages.... I strongly believe it is keeping the codebase homogenous which is the key thing leading to decent software. ...
Why? Because they wanted to to deliver a high-quality product, the OS development team needed to keep their skills up up and keep software maintained in all these languages.
Dogfooding is an absolute must. But I would suggest that the norm today is to *reduce* the number of languages shipped with the OS, so there is less to support. Simple cost savings (similar principle for free open-source projects too in terms of time).No, it's not mad. It's development management (software engineering management) making sure that all the languages that are shipped with the OS are well supported, by forcing themselves to use them. In Silicon Valley that's called "eating your own dog food".
OK, if the business model is to push as many languages onto customers as possible because you are the compiler seller, then this is quite a different thing. That said, I don't believe this business model can work anymore, now that most of the industry has normalized on C (for better or for worse).It was also supposedly to make product management doesn't cut any languages from support, or make the language-specific libraries non-free in future versions. The idea was that customers pay for compilers, but once they have compiled into an executable, that executable can run on all machines.
I was actually using TP-Link Archer T2U Plus in the hostap mode (to connect my iPhone, since the poor thing doesn't have an Ethernet port) for the last 2 or 3 years. I even got 30 Mbits per second out of it, which is probably the record for FreeBSD 13/14 (this issue is supposed to be patched in 15).and lost the ability to be a general-purpose AP about 10 years ago (I spent weeks debugging that). Now finally the foundation is funding an overhaul, but nowhere have I seen that the AP functionality is getting fixed
What is the exact problem? Is it that being successful with C is difficult? I.e. that much experience and training in needed?
Why are training, time-tested idioms and good coding standards not enough?
Thanks! Valid points, indeed. I was shocked when I learned (rather late in my life) that signed integer overflow is undefined behavior in C. It is easily catched in Assembly, but not in C, where you need some compiler-specific[…] No integer overflow checking, not even optional. […]
Those problems don't go away with conventions.
__builtin__add_with_overflow_checking
stuff.