- EDITL Lemmy-UI deleted my !@#$#% links because I used the standard Markdown of less than and greater than symbols for a link.
1.)
2.)
::: spoiler My comment on a deleted post
These are my opinions, probably not shared with others and surely not the end all be all to 'why not Rust?'
Rust is hard. Rust is slow to iterate with and compile. Here's a highlevel overview of the things you'd need to learn to effectively understand Rust code; not even speaking to learning enough of that to write it. Rust gets touted as secure, and it is more secure than other low level languages like C/C++. That does not make it invulnerable to exploits. It gives a false sense of security to developers who think My app can't be hacked, it's written in Rust!!. While Rust is better at memory management and protecting against run time errors related to memory issues, that doesn't make it 100% safe. That removes almost one class of potential exploits, not all of them, and can't protect the developer against other developer created issues. Rust code is still written by people. People still write insecure code even in Rust. Computers are dumb as hell; but fast. People are smart as hell, but SLOW. Combine the two and you get stupid things faster; not smarter things better.
- Rust development is hard, hard to learn, very hard to do right
- Rust is not suited for a web application. Would you tell someone to go write the web application and web page in C/C++? Nope. There's a reason for that. Not suited to it. Square peg, round hole
- There's always exploits being discovered. Rust handles some things better, but uhhh.. Go look at some Lemmy Rust code. Definitely still has vulnerabilities; Rust won't save you from yourself.
Something like Golang is much better choice for development of a web service that has sane API handling. By the time to add in more error handling, more type checking, more passing around of this function or that data, and more checking it on the sender and receiver side...etc. By the time you're writing Rust safely and correctly; it is much slower than what you may be lead to believe.
Go is primarily designed for speed of development (including compilation times), rather than speed of execution. Go programmers tend to value clear code over fast code. Why does a microsecond longer matter for a website? Maybe in some backend PLC land there's a damn good use for that performance. For a networked web application; it's a pointless metric. That is not going to be your bottleneck.
Rust is hard to understand just reading it let alone determine why it's doing something.
Rust
fn does_what(n: u64) -> bool {
match n {
0...1 => false,
_ => !(2..n).any(|d| n % d == 0),
}
}
Golang
func doesWhat(value int) bool {
for i := 2; i <= int(math.Floor(float64(value)/2)); i++ {
if value %i == 0 {
return false
}
}
return value > 1
}
Not talking about the functionality merits of the two, but in comparing the _code itself. One of those is much easier to determine what's going on and what it should be doing versus the other. I don't feel like fighting my code. Programming is a tool to help. If it takes more work to use the tool to achieve your goal, it's the wrong tool. Rust is the wrong tool for web development.
:::