Earlier quoted context omitted.
Simple put: Go ISN'T a true systems programming language because it simple does not work for every and ALL type of systems. Yes, it may work with some type of systems, but this does not make it a systems language. If you don't want to accept this fact , then you have bigger problems or you reality is narrow. Maybe this can help you see through your bubble: https://github.com/CppCon/CppCon2017/blob/master/Presentatio.…
oh, i see. so you were pointlessly making a some kind of fallacy argument. no "true" systems programming language, indeed.
Why did we choose Rust to develop TiKV?
201–206 of 206 posts
Re: Why did we choose Rust to develop TiKV?
#202Earlier quoted context omitted.
"A storage layer should be IO-bound, and should hardly trouble the CPU; the choice of language really should not be a determining factor." This used to be true, but it's out-of-date now. You can now get a network pipe in to a system that a rather beefy multi-core CPU using a user-space TCP stack can barely keep up with, let alone do any real work, and if you can scrape up the PCI express lanes, putting a few of the l…
> You can now get a network pipe in to a system that a rather beefy multi-core CPU using a user-space TCP stack can barely keep up with. I'd love to learn more about this. Can you please point me to some links that elaborate on this point with benchmarks? Thanks much.
https://lwn.net/Articles/629155/ https://lwn.net/Articles/713918/ https://lwn.net/Articles/719850/
The block layer has gone through somewhat similar issues as some storage devices started approaching RAM speeds.
Re: Why did we choose Rust to develop TiKV?
#203Earlier quoted context omitted.
Right, but what you did not get was undefined behavior. That is the real difference, not that Rust "discourages" unwrap(). unwrap() panics, while unfortunate, are well defined.
In reality, this doesn't make a difference though ;)
Re: Why did we choose Rust to develop TiKV?
#204Earlier quoted context omitted.
In reality, this doesn't make a difference though ;)
Halting in a defined manner vs. continuing computation while undefined conditions prevail are fundamentally different outcomes. This is indeed a difference.
Re: Why did we choose Rust to develop TiKV?
#205Earlier quoted context omitted.
Halting in a defined manner vs. continuing computation while undefined conditions prevail are fundamentally different outcomes. This is indeed a difference.
Computation doesn't continue, it segfaults.
Re: Why did we choose Rust to develop TiKV?
#206Earlier quoted context omitted.
Computation doesn't continue, it segfaults.
You simply cannot know that and your assertion reveals a lack of understanding. Computation may continue indefinitely, unintentionally distributing your private keys or doing some other heinous thing forever, without any sort of MMU trap. Undefined means undefined, not 'segfault.'