Live data from Hacker News

Rust 0.3 released

github.com

51–57 of 57 posts

Re: Rust 0.3 released

#51
post #38
post #29

Earlier quoted context omitted.

>What are going to be your first "written-using-Rust" apps ? Rust compiler is written in rust, so that would be the first "written-using-Rust" app. Additionally afaik the work on rust-based web-browser (engine) has began, so that would be second (major) project for rust.

I have been working on a web framework stack: http://github.com/erickt/mre

The elasticsearch thing makes it so niche and impractical though :\

Re: Rust 0.3 released

#52
post #35
post #34

Earlier quoted context omitted.

Why not D?

Because, faced with the fact that C++ makes an octopus by nailing extra legs onto a dog, D decided the right thing to do was to staple-gun them onto a cheetah instead. D, at the end of the day, is C++ with cleaner syntax . Yes, you've gotten rid of headers and some of the syntactic ambiguities, but things that were mutable are still mutable, templates are still templates, hard-to-solve threading problems are just as…

This is why I'm excited to pick up Rust. I feel like Go makes it very easy for me to get running and churn stuff out with a simple syntax but Rust seems to be bringing in more of the "new" in CS and I want to give that a shot. Rust has surplanted my interest in D and this comment is pretty much exactly why. When I look at D I see a lot of C/C++ type things that make me go "Wait, I thought this was D and not C++ improved".

Re: Rust 0.3 released

#53
post #35
post #34

Earlier quoted context omitted.

Why not D?

Because, faced with the fact that C++ makes an octopus by nailing extra legs onto a dog, D decided the right thing to do was to staple-gun them onto a cheetah instead. D, at the end of the day, is C++ with cleaner syntax . Yes, you've gotten rid of headers and some of the syntactic ambiguities, but things that were mutable are still mutable, templates are still templates, hard-to-solve threading problems are just as…

D has extensive support for transitive data immutability, and function purity. (This is quite unlike C++.)

Re: Rust 0.3 released

#54
post #44

Earlier quoted context omitted.

It's precisely not the need to explore a lot of new ideas. Rust is taking tried and true paths to something new :-)

Ah, but I think it's important to distinguish between ideas that are new in research and ideas that are new in industry. God knows that pattern matching isn't a particularly new concept, but I sure hadn't heard of it before Rust; see also the popularization of list comprehensions due to Python via Haskell. So I think what the grandparent is implying is that even if Rust doesn't end up as a world-shattering language,…

Exactly, for example, now thanks to the FP concepts that have been added to .NET in the last versions, I am able to do cool FP stuff while coding boring enterprise applications in C#, without having to ask permission about it.

Or make use of F# for Windows scripting, using as excuse to the boss that it is part of Visual Studio.

Re: Rust 0.3 released

#55

Earlier quoted context omitted.

What in particular do you not like? To me the proposed stuff on the roadmap fixes the problems I see (changing "::" to ".", camel case for type names, "alt" -> "match", => after pattern matches, #debug to debug!, removing argument modes -- no guarantees that we implement these of course, they need consensus), but I'm curious as to what your thoughts are.

I hadn't seen the roadmap changes. They address a lot issues I had, especially the argument modes. I'm sure camel casing will be controversial, but it makes sense given that Rust's primary audience is Mozilla, where camel case is the enshrined naming convention for its C++, Java, and JavaScript code. Python's standard library is an ugly example of what happens when the language community can't settle on one conventio…

because symbolic operators are more visually distinct than alphabetical ones.

Re: Rust 0.3 released

#56
post #35
post #34

Earlier quoted context omitted.

Why not D?

Because, faced with the fact that C++ makes an octopus by nailing extra legs onto a dog, D decided the right thing to do was to staple-gun them onto a cheetah instead. D, at the end of the day, is C++ with cleaner syntax . Yes, you've gotten rid of headers and some of the syntactic ambiguities, but things that were mutable are still mutable, templates are still templates, hard-to-solve threading problems are just as…

> things that were mutable are still mutable

`string` is immutable. You can use immutable everywhere if you like. C++ doesn't even have transitive const.

> templates are still templates

With constraints, unlike C++.

> hard-to-solve threading problems are just as hard to solve

Have you looked at D 2.0? Globals are thread-local by default, unlike C++. Implicit sharing is disallowed, unless immutable.

> region pointers

It's early days (perhaps I don't fully get region/borrowed pointers yet) but D's `scope` parameter keyword seems very similar. It prevents an argument escaping the function call.

> lack of nulls

This is the big one. Unfortunately D doesn't seem to have an answer on this. I understand Rust uses option/sum types for this, which seems like a great idea.

Re: Rust 0.3 released

#57
post #34

Earlier quoted context omitted.

Why not D?

D's garbage collection is global, and either off or on (and a lot of D libraries leak memory like crazy if it is off, so in practice it has to be on most of the time) Rust's per task GC seems like it should allow more flexibility, and I'm hoping it would be usable in the High Frequency Trading arena, for example.

> D's garbage collection is global, and either off or on

That makes it sound like you can't use GC and manual memory management together; you can - std.container uses manual memory management internally for max efficiency.

Post reply on HN