5 ms·
Very interesting and timely especially since I see the following so often: > Why wouldn’t the Linux kernel team choose Ada instead of Rust? To which I say: Ad
by mustache_kimono 2y ago
Very interesting and timely especially since I see the following so often:
> Why wouldn’t the Linux kernel team choose Ada instead of Rust?
To which I say: Ada doesn't have a large user base beyond DOD projects. Virtually no greenfield projects except for DOD. Whereas there has been a Cambrian explosion of Unix kernels/tools/servers written in Rust.
More generally, these questions of the form "Why are you ignoring X?" where X is Ada or Zig or C++ are really "Why didn't you write/don't you rewrite this in Rust?" by a different name.
And my/that answer goes both ways. Notably, Roc recently has stated it is moving away from Rust. Ghostty uses Zig because Mitchell Hashimoto doesn't like Rust. But the answer is always someone has to show up and do the work, usually because they like doing the work in some language.
So -- it's okay to like the project strictly because of the language chosen. That being said -- I'm super interested in the more technical differences.
- deleted 2y ago[deleted]
- ajxs 2y agoThe history of computing has many examples of products and languages winning out over technically superior alternatives for non-technical reasons. Like Linux gaining a lot of momentum because of the BSD lawsuit. This[0] is one of my favourite comments on HN. It shows us one of the paths not taken in the evolution of operating systems. > It's okay to like the project strictly because of the language chosen. I think that the massive groundswell of interest around Rust will end up being positive overall. At this point I can't see us going back to the way things were. I can't imagine any new systems programming languages gaining traction that aren't at least as safe as Rust. 0: https://news.ycombinator.com/item?id=32604842 https://news.ycombinator.com/item?id=32604842
- bigstrat2003 2y agoThat comment was great. It's so hard for me (raised on Windows and now immersed in Linux) to imagine something so foreign to the OS paradigms I'm used to. It just goes to show how much the things you are used to can limit your thinking.
- beagle3 2y agoWindows NT was supposed to be a modernized VMS (And legend has VMS+1=WNT, each letter individually…) - and given a face similar to Win 3.1 (and then 95/98/Me and then they were unified in XP) It has a lot of the VMS features, and most of them are unused or effectively only used by malware (e.g. alternate file streams). I did not get a chance to use VMS myself, but I did use Unix (and VMS/CMS, and a bunch of other OSes) at a time VAX was still a viable alternative even for greenfield projects. My impression is that it is sort of like J/K/APL - powerful, compact, coherent, got almost everything right from a technical standpoint - but not friendly, feels foreign, and not liked by anyone who has ever used a Unix, or Windows, or a Mac - which is 99% of the relevant population since about 1985. (Added): Macs also had multiple file streams (“forks”). It doesn’t anymore, for many reasons, but the chief one is interoperability. Less is more, worse is better.
- pasc1878 2y agoRe file streams yes classic macOS did have them current macOS does not but it does not need them as you can use Bundles instead which are Unix directories that are treated as a whole by the SDKs.
- SirHumphrey 2y agoWhich goes to show why *nix won over more feature rich alternatives - the human element. Being feature rich makes the learning curve (usually) much steeper but tends to help in the long-term, while shifting the complexity in to userland means that if I don't need a feature, it needn't concern me. You trade ability for reduction of complexity - getting an operating system that you can learn in months instead of years, which - since the tech industry has been in hipper-growth phase for much of the last 30 years, was more important.
- EVa5I7bHFq9mnYK 2y agoBeing free didn't hurt either.
- 2y ago
- b112 2y agoI can't imagine any new systems programming languages gaining traction that aren't at least as safe as Rust. Am I allowed to sigh here? It's a good thought, but this is humanity we're talking about here. All it requires is some big-project, some big-corp creating some essential ecosystem with lame-language-A, and now it's got traction. And frankly, look at rust and its weird crates. Weird as in "Let's make a super-safe language, then import random stuff from unknowns, unaudited, and just hope it all works out." If rust was really serious about security, only signed crates from validated developers, with code review would be the norm. Oh but wait, that'd be "not easy".
- pdimitar 2y agoWhat's your suggestion, exactly? Vetting code is extremely expensive in terms of human time and human energy. Sadly it's not only a problem for Rust, it's a problem for every single programming language out there.
- bawolff 2y ago> The history of computing has many examples of products and languages winning out over technically superior alternatives for non-technical reasons. While this is undoubtedly true, i suspect that there are also many cases where people presume the reasons are non-technical but when examined closly turn out to have hidden technical issues.
- lII1lIlI11ll 2y ago> At this point I can't see us going back to the way things were. I can't imagine any new systems programming languages gaining traction that aren't at least as safe as Rust. Zig seems to be gaining traction. Hard to predict whether it will succeed or slowly fizzle out after the initial excitement phase though.
- dralley 2y agoIs Zig gaining traction? It almost seems like the project has gone radio silent in the past year. It's hard for a language to get traction when it's not even 1.0 and there's not much of a roadmap on how and when they'll get there.
- Galanwe 2y ago> I can't imagine any new systems programming languages gaining traction that aren't at least as safe as Rust. I don't think safety is a 1 dimensional spectrum (say from 0% to 100%). I view it more as a multidimensional thing, and tradeoffs between these dimensions. Rust invested a lot on _some dimension_ of safety, which is essentially static borrowing and aliasing. And the tradeoffs for this are numerous: Dynamic safety is either much harder in Rust (due to unsafe being vastly more dangerous and hard to get right vs say, a C program), or at the expense of performance (I.e. just Arc<Mutex<>> or copy everything). That also comes at the expense of an immense cognitive burden for the programmer. I see a lot of space for different tradeoffs on different dimensions of safety.
- oneshtein 2y ago> due to unsafe being vastly more dangerous and hard to get right vs say, a C program It's not true. Both C (clang), C++, and Rust use same LLVM compiler, so both have same constraints in the unsafe mode. C/C++ developers just not care.
- cataphract 2y agoI don't think this is true. Rust has constraints that C/C++ doesn't have. For instance, it's undefined behavior to create more than one exclusive (mutable) reference to the same object or to create one where a shared reference already exists. This is not necessarily easy to ensure. The aliasing rules in C are much more lax: you only can't have several pointers of different types pointing to the same object, except if one of them is a character pointer (ignoring the restrict keyword, which is opt-in and rarely used).
- mrcsd 2y agoI don't think this is quite the same comparison. In Rust, multiple mutable pointers to the same object can exist at the same time. So, it's similar to C in this way. It is mutable references that must be exclusive.
- 2y ago
- cardanome 2y ago> At this point I can't see us going back to the way things were. I can't imagine any new systems programming languages gaining traction that aren't at least as safe as Rust. I see Rust being used in many context where it's safety features aren't really needed or even a hindrance like game dev. Honestly the safety is overstated in importance. The amazing tooling, decent package manager, great error messages, the inclusive community, the type system that took the low hanging fruits from the academic functional programming world, are much more relevant for its success. The problem with Rust is that it made using languages without automatic garbage collection acceptable again and I am not sure if this is good. The borrow checker is a neat solution and might be a good fit for certain niches but automatic garbage collection is just vastly more ergonomic to use. We had Lisp Machines, we need to go back to future.
- the__alchemist 2y agoI'm with you - I like Rust for the overall pros/con balance, in context of with its alternatives. Safety is one thing. The tooling, error messages, type system etc you mention is another. Having mutable references as function parameters is another big one, shared by surprisingly few alternatives.
- vlovich123 2y agoSafety and the hype reels you in and the qol hooks and keeps you.
- lproven 2y agoIs that QOI or QOL, and what does it stand for?
- vlovich123 2y agoQuality of life
- zozbot234 2y agoGC implementations are widely available in Rust. You don't have to use garbage collection in Rust, but it doesn't stop you either. You just have to import some custom crate and 'implement' tracing for your own data types.
- baranul 2y ago> The history of computing has many examples of products and languages winning out over technically superior alternatives for non-technical reasons. Unfortunately, the history shows that such technically inferior languages and products winning out are also because of outright market manipulation by their corporate backers, tons of money in ads, or attacks on competitors. The elephant in the room, is to look at what's generating or paying for the hype and marketing behind recent programming languages like Rust and Zig (for example). > I think that the massive groundswell of interest around Rust... A review of the groundswell, around Rust or Zig, is its not attributable to just grassroots or genuine interest, and can significantly be the result of outright astroturfing and artificial brigading. Sadly, many people follow along with the marketing or are bombarded into submission, "must rewrite in X" or "GC all bad and manual all good" foolishness, versus actual use case and legitimate examination of language tradeoffs.
- pjmlp 2y agoAda is also used in European transport infrastructure. There are enough customers around the globe to keep 7 Ada compiler vendors in business, not many language ecosystems can claim that, in the age folks don't pay for their tools most of the time.
- randomNumber7 2y agoADA is really great. You can use it to safely blow rockets up in the air.
- pjmlp 2y agoCaused by a logic error of using the wrong software on newer hardware.
- bandrami 2y ago> Virtually no greenfield projects except for DOD OTOH, DoD (and some public sector orgs in Europe) are extremely important customers of some of the companies that directly contribute the most support to the Linux kernel in a way that no Rust project is.
- ksec 2y agoLinus doesn't like Ada. His' opinion on Ada (vs Rust): > We've had the system people who used Modula-2 or Ada, and I have to say Rust looks a lot better than either of those two disasters. https://www.infoworld.com/article/2247741/linux-at-25-linus-torvalds-on-the-evolution-and-future-of-linux-2.html https://www.infoworld.com/article/2247741/linux-at-25-linus-...