Live data from Hacker News

Ask HN: Will Rust ever become a mainstream systems programming language?

news.ycombinator.com

61–70 of 291 posts

Re: Ask HN: Will Rust ever become a mainstream systems programming language?

#61
post #27

I had great hopes for Rust as the future of systems programming, but they've decreased over time. Parts of the language are just too cute. The borrow checker was brilliant. Any future language that doesn't use garbage collection will have to have one. That was the big advance in Rust. But the object system (yeah, they're called structures and traits) is too weird. The enum approach to variant records is too weird. Th…

> The half-functional style is too weird. The widespread use of closures for simple stuff is too weird. There's too much unnecessary originality. Trying to port something from another language to Rust is difficult because Rust's ways of doing things are so different from other languages.

This. I've spent some time researching Rust but it's just ugly language for me, really. When I read D everything is so clean, so readable. When I need to read/write Rust, it's just not enjoying for me. There are people that will enjoy it for sure, that came for example from Haskell.

Create language like Rust with D like syntax, no GC, no additional indirection, RAII, less strict rules or possibility to turn off some of them and I am sold.

Re: Ask HN: Will Rust ever become a mainstream systems programming language?

#62
post #22
post #10

Earlier quoted context omitted.

> Ridiculous - if you need segfault protection, you're a bad programmer. Let's be honest, you don't segfault unless you're doing something idiotic. I've caused segfaults in the runtimes of three major languages in the last year by running code that, from a user perspective, is completely fine. I don't think the developers of those runtimes are "bad programmers".

I think the bad programmers are ones who state "segfault protection" as a feature of Rust because they read it on Rust's site. I genuinely don't think these features of Rust are really all that useful (they're being disingenuous; acting like C++ is some primitive language where you segfault every 5 minutes). Even Bjarne would probably agree. He talks about the same issue at his "The Essence of C++" talk. Someone asks…

> I genuinely don't think these features of Rust are really all that useful (they're being disingenuous; acting like C++ is some primitive language where you segfault every 5 minutes).

Nobody said that C++ code segfaults every 5 minutes, and accusing people of being disingenuous for saying things they never said is, well, disingenuous.

The claim is that memory safety problems are serious problems in C++ code. It's been found that memory safety problems are the leading overall cause of software security vulnerabilities [1].

[1]: https://insights.sei.cmu.edu/sei_blog/2014/08/performance-of...

Re: Ask HN: Will Rust ever become a mainstream systems programming language?

#63
post #36

It does keep rising in popularity, but is that coming from folks actually using system languages like C, C++, Ada, and Forth? I'm guessing only a portion. There's a difference between a web developer using Rust enthusiastically for hobby projects and a seasoned C coder switching to Rust for a professional job. In fact, a lot of the projects I've seen in Rust (ex: Dropbox) are commonly being done in Go as long as the…

Rust is the first language since C++ that can improve/not hinder runtime speed while making development safer, so I definately see its future. The only problem is that the compiler is very slow now, so it doesn't scale to large code bases, which is a no-go in my company. Hopefully the Rust team understands that this is not only a would-be-nice to have feature (I see learning the borrow checker as a smaller problem)

Compiler speedup is in the roadmap.

Re: Ask HN: Will Rust ever become a mainstream systems programming language?

#64
post #46
post #27

I had great hopes for Rust as the future of systems programming, but they've decreased over time. Parts of the language are just too cute. The borrow checker was brilliant. Any future language that doesn't use garbage collection will have to have one. That was the big advance in Rust. But the object system (yeah, they're called structures and traits) is too weird. The enum approach to variant records is too weird. Th…

I don't know why you're calling all of that stuff "weird". I have to assume it's simply because you were never exposed to another language that had stuff like it. But you're definitely wrong about that keeping Rust from going mainstream - just look at Swift, which has a very similar trait system (called protocols), enum variants with associated values, an arguably weirder error system, widespread closures, and half-f…

Swift is mainstream because Apple replaced Objective-C with it for iOS and said that it's new standard for writing apps. How much of Swift is written out of Apple ecosystem? Not much.

Re: Ask HN: Will Rust ever become a mainstream systems programming language?

#65
post #27

I had great hopes for Rust as the future of systems programming, but they've decreased over time. Parts of the language are just too cute. The borrow checker was brilliant. Any future language that doesn't use garbage collection will have to have one. That was the big advance in Rust. But the object system (yeah, they're called structures and traits) is too weird. The enum approach to variant records is too weird. Th…

> But the object system (yeah, they're called structures and traits) is too weird. It's equivalent to writing C++ with: * No structural inheritance (i.e. no inheritance of data) * Inheritance only from pure virtual interface classes * MyCppPureVirtualClass * pointers in various interfaces Except that traits are also usable for static dispatch as in templates/concepts. This isn't the most common style of C++, but it's…

I can't think of much real originality in Rust. It just brings together "exotic" features from lesser-known languages.

I think you're right. Except for the borrow checker, which was a major breakthrough.

Re: Ask HN: Will Rust ever become a mainstream systems programming language?

#66
post #64
post #46

Earlier quoted context omitted.

I don't know why you're calling all of that stuff "weird". I have to assume it's simply because you were never exposed to another language that had stuff like it. But you're definitely wrong about that keeping Rust from going mainstream - just look at Swift, which has a very similar trait system (called protocols), enum variants with associated values, an arguably weirder error system, widespread closures, and half-f…

Swift is mainstream because Apple replaced Objective-C with it for iOS and said that it's new standard for writing apps. How much of Swift is written out of Apple ecosystem? Not much.

Apple didn't replace Obj-C. They added Swift alongside it. Literally nobody is being forced to switch, and all of Apple's frameworks are still written in Obj-C (they can't be written in Swift until Swift has ABI stability).

Yes, Apple's weight helped Swift tremendously. But people are switching from Obj-C to Swift because they think it's better, not because Apple's making them.

> How much of Swift is written out of Apple ecosystem? Not much.

Not much yet, because the Linux support is still missing a lot, but it's being filled in quickly, and a lot of people seem to be excited about being able to start using Swift on Linux.

Re: Ask HN: Will Rust ever become a mainstream systems programming language?

#67
post #5

Most C++ developers won't easily develop systems in Rust because of lack of well-known libraries and a stable ecosystem(profilers, static analyzers, concurrency tools, many skilled and mediocre developers, etc). C++11 and subsequent versions have a good amount of memory safety(though not as safe as Rust). Rust is a modern language with very good concepts and features. It's quite complicated to learn. My answer is it…

Like... Cobol... 'cause all those reasons are vanishing and will vanish.

Those who need Cobol use them(Core banking applications).

Rust is better than C++, but it's not extremely better than C++.

Re: Ask HN: Will Rust ever become a mainstream systems programming language?

#68
post #27

I had great hopes for Rust as the future of systems programming, but they've decreased over time. Parts of the language are just too cute. The borrow checker was brilliant. Any future language that doesn't use garbage collection will have to have one. That was the big advance in Rust. But the object system (yeah, they're called structures and traits) is too weird. The enum approach to variant records is too weird. Th…

> But the object system (yeah, they're called structures and traits) is too weird. So you praise Go for having structures and interfaces, but you criticize Rust for having structures and interfaces because that's "too weird". > The enum approach to variant records is too weird. Why? Because of the keyword? Swift uses that keyword too! > The error handling is too weird. What would you rather see? > The half-functional…

>> The error handling is too weird.

>What would you rather see? Exceptions

Re: Ask HN: Will Rust ever become a mainstream systems programming language?

#69
post #16
post #12

I would say unlikely, for the simple reason that Rust is just really hard .

C++ is hard, too. So is C, to write correctly. Hasn't stopped either of them from literally powering almost every computer in use. Rust's complexity is equivalent to, but distinct from C++'s. I prefer it over C++, and I'm one big fan of the latter.

Rust is a paradigm shift; "...to write correctly" most people don't start off the bat with correct IMO. The learning curve is steep with rust.

Re: Ask HN: Will Rust ever become a mainstream systems programming language?

#70
post #27

I had great hopes for Rust as the future of systems programming, but they've decreased over time. Parts of the language are just too cute. The borrow checker was brilliant. Any future language that doesn't use garbage collection will have to have one. That was the big advance in Rust. But the object system (yeah, they're called structures and traits) is too weird. The enum approach to variant records is too weird. Th…

> But the object system (yeah, they're called structures and traits) is too weird. So you praise Go for having structures and interfaces, but you criticize Rust for having structures and interfaces because that's "too weird". > The enum approach to variant records is too weird. Why? Because of the keyword? Swift uses that keyword too! > The error handling is too weird. What would you rather see? > The half-functional…

If Rust doesn't differ from Go, from Swift, from Ruby, from JavaScript in these regards then perhaps, as was pointed earlier, Rust didn't know when to stop. It seems to violate the Law of Parsimony. I like Rust's borrow checker and that's pretty much it.

Sometimes I think CRust would be a good idea, the minimal ideas that I like from Rust just layered on top of C as a linter.

Post reply on HN