←back to thread

205 points michidk | 10 comments | | HN request time: 3.547s | source | bottom
Show context
skwee357 ◴[] No.41835625[source]
As someone who is using Rust in production for a year now [0], albeit in a different industry -- webdev, I really like the language. Sure, the first steps were rough, but eventually DX became decent, and the safety guarantees of Rust allow me to have a safe mind when developing and deploying (something I can't say about other popular dynamic languages).

Having said that, I agree with one of the commenters in this thread: Rust is essentially a solution looking for a problem. It is a great language, but it fails to find its niche. Rust developers are nowhere to be found, companies are not hiring Rust developers (except if you want to work in crypto).

[0]https://yieldcode.blog/post/one-year-of-rust-in-production/

replies(4): >>41835676 #>>41835802 #>>41836127 #>>41839825 #
1. pornel ◴[] No.41836127[source]
If you wouldn't write your program in C or C++, then it's not the problem that Rust is trying to solve.

Rust has some nice high-level features and tools, so it gets used in other areas like web dev too, but in the end, it is a systems programming language. It is a low-level language, even though it may not feel like that a lot of the time.

replies(1): >>41836297 #
2. skwee357 ◴[] No.41836297[source]
I disagree.

Let's say I want to use a real type-safe language to write web applications. So rails/python/JavaScript/php is out of the window. I'm left with two big options: Java/Kotlin and C#. If I want to avoid Microsoft, I'm left with Java. And in fact, this is the industry standard for "real" web development: financial, enterprise, etc.

But Java is cumbersome. It's very `FizBazBarFooAbstractInterface` type of cumbersome. Kotlin makes it nicer, but Kotlin didn't get much adoption in the web industry. C/C++ is too low level for web development. Rust is the perfect language, in my opinion of course, to fill this niche.

Oh, there is also Go. Which is, by the way, also a system programming language. But nobody argues that Go shouldn't be used to write web services.

replies(4): >>41836494 #>>41836556 #>>41846741 #>>41850141 #
3. baq ◴[] No.41836494[source]
Please excuse me for pointing out you don't disagree with the post you're saying you're disagreeing with.
replies(1): >>41836922 #
4. creata ◴[] No.41836556[source]
Besides popularity (not denying that popularity is important!) is there a reason you'd prefer Rust over OCaml?
replies(1): >>41836919 #
5. skwee357 ◴[] No.41836919{3}[source]
Never considered. I grew up coding in C, so always wanted to come back to something similar. After being spoiled by PHP/JS, couldn't go back to C/C++. Rust offered me a modern, C-like language, so I just learned it and applied forcefully wherever I could.
replies(1): >>41837083 #
6. skwee357 ◴[] No.41836922{3}[source]
My disagreement was referring to the statement that Ruts should be used only in-places where you'd consider C/C++.
7. creata ◴[] No.41837083{4}[source]
Makes sense, thanks.
8. lomase ◴[] No.41846741[source]
Java is cumbersome but the borow checker is not?
replies(1): >>41894030 #
9. lenkite ◴[] No.41850141[source]
Why is Rust more "perfect" over Go for web-services ?
10. skwee357 ◴[] No.41894030{3}[source]
Missed your comment.

If you come from proper languages, like C, the borrow checker is not that bad. The problem is that most developers don’t even know when variables go out of scope. Sure, there are more to that in the borrow checker, and I’m far from understanding every single use case. But for fay to day web development, it’s fine.

Java on the other hand is straight up annoying. It’s super bloated, there are 101 ways to do the same thing (recent example from swing: do I do new Broder(), do I use BorderFactory? What’s the difference? When should I use each one?). And it’s extremely wordy ‘Employee foo = new Employee()’