Most active commenters
  • skwee357(7)

←back to thread

205 points michidk | 18 comments | | HN request time: 0.2s | source | bottom
1. 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 #
2. wanderingbit ◴[] No.41835676[source]
It has definitely found a niche in the crypto space, specifically with the node clients and the underlying new cryptography libraries they use. For instance, the more efficient Ethereum devs can make their node clients, the cheaper it is to run and the more people around the world can run it, which increases decentralization. Rust makes this possible without compromising on stability and maintainability.
replies(1): >>41835749 #
3. skwee357 ◴[] No.41835749[source]
The problem is that I still see all crypto as "scam", thus choosing Rust makes a non-viable choice for career progression. But I don't care about career progression anymore, so :shrug.png:
replies(1): >>41837005 #
4. kalaksi ◴[] No.41835802[source]
I think it solves many problems regarding safety in lower level languages and with some great language features, so I can't really understand your take. Sure, C++ is more established with the benefits that entails, but that's not because of the language.
replies(1): >>41835813 #
5. skwee357 ◴[] No.41835813[source]
I don't disagree with you. My comment was merely to agree with another commenter who said that there is a catch-22: Rust developers can't find jobs, while companies who are looking for Rust developers can't find candidates, because Rust can't really find its place in the industry outside the crypto world.
replies(1): >>41835915 #
6. kalaksi ◴[] No.41835915{3}[source]
Ah, right! I think rust will find more use but it takes time. Many existing technologies and languages are probably good enough for most suitable projects with historical baggage. Maybe crypto industry is just in a good position to try new, safer languages for new projects, who knows.

Nowadays, Linux kernel also has some drivers written in rust so I'm hopeful.

7. 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 #
8. 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 #
9. baq ◴[] No.41836494{3}[source]
Please excuse me for pointing out you don't disagree with the post you're saying you're disagreeing with.
replies(1): >>41836922 #
10. creata ◴[] No.41836556{3}[source]
Besides popularity (not denying that popularity is important!) is there a reason you'd prefer Rust over OCaml?
replies(1): >>41836919 #
11. skwee357 ◴[] No.41836919{4}[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 #
12. skwee357 ◴[] No.41836922{4}[source]
My disagreement was referring to the statement that Ruts should be used only in-places where you'd consider C/C++.
13. physicsguy ◴[] No.41837005{3}[source]
There’s a guy who I work with who went to work for a crypto place that then exploded (as they all tend to do). He had quite a difficult time finding a new position, and was asked multiple times about working for a scammy company. So perhaps don’t underestimate the negative effect it can have career wise…
14. creata ◴[] No.41837083{5}[source]
Makes sense, thanks.
15. wyager ◴[] No.41839825[source]
The niche is anywhere C or C++ is used, which it excels at
16. lomase ◴[] No.41846741{3}[source]
Java is cumbersome but the borow checker is not?
replies(1): >>41894030 #
17. lenkite ◴[] No.41850141{3}[source]
Why is Rust more "perfect" over Go for web-services ?
18. skwee357 ◴[] No.41894030{4}[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()’