Hacker News new | past | comments | ask | show | jobs | submit login

Random number generation has trade-offs for speed, security, and thread safety.

Most other langues with a "simple" built-in are unfit in some of these aspects, so you may end up with a footgun and still have to find a replacement.

In Rust you can choose which algorithms are used and how. And because it's a regular package, it can be improved without breaking the language.

Note that number of dependencies doesn't mean anything. Some crates are split into tiny deps for each feature, so that you can reduce binary size and compile time if you disable optional features.




That's true for libc's naive rand() which is used by Python, JS, Ruby, PHP, etc.

But stock C++ has many options for the random number generation algorithm:

https://en.cppreference.com/w/cpp/header/random

As does Java and .NET. Without any dependencies and guaranteed to be portable.

> Note that number of dependencies doesn't mean anything. Some crates are split into tiny deps for each feature, so that you can reduce binary size and compile time if you disable optional features.

In theory I agree. It just seems like one of the persistent unsolved problems in software is dependency hell (spawning the whole containerization movement), so I'd like to avoid it if I could.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: