Rust 1.6 Released (rust-lang.org) 75
An anonymous reader writes: The Rust team has announced the release of version 1.6 of their programming language. The biggest new feature is that libcore — the Rust core library — is now stable. "Rust's standard library is two-tiered: there's a small core library, libcore, and the full standard library, libstd, that builds on top of it. libcore is completely platform agnostic, and requires only a handful of external symbols to be defined. Rust's libstd builds on top of libcore, adding support for memory allocation, I/O, and concurrency. Applications using Rust in the embedded space, as well as those writing operating systems, often eschew libstd, using only libcore." Other features worth noting: Crates.io disallows wildcards for dependencies, there are a ton of stabilized APIs, timer functions that use milliseconds have been deprecated, and the parser will warn you if a failure was caused by Unicode characters that look similar but are interpreted differently.
New version (Score:3, Funny)
They have to introduce a new version every now and then because they run out of people to recommend Rust to. A new version allows them to recommend it to themselves in times of scarcity.
I propose a more C-like fork. (Score:1)
12 months from now... (Score:5, Funny)
WTF? (Score:5, Insightful)
Since when is stability a feature? Isn't stability a basic requirement for software, especially in a programming language?
If it takes up to release 1.6 for things to become stable, I'm probably not interested.
Re: (Score:2, Insightful)
If it takes up to release 1.6 for things to become stable...
Libstd has been stable. This is equivalent to "libc" that C/C++ programmers are familiar with. This new "stability" is libcore, a minimal core library needed to compile. The GCC equivalent of this is the "low-level runtime library" (libgcc.a + libgcc_s.so.1).
This is important because many popular Rust projects targeting embedded hardware and operating systems have appeared. For these applications libstd is not desirable, and to date they've been relying on an unstable core. Now they have a stable libco
Re: WTF? (Score:1)
Re: (Score:3)
Re: (Score:1)
Re: (Score:1)
Then why the heck are they calling it version "1.6"?! Somebody doesn't understand the concept of "alpha", or "beta". Then again, Microsoft has been muddling those definitions for decades now, so I suppose I shouldn't be surprised.
Re: WTF? (Score:4, Informative)
Depends on what you mean by fail, but nothing new ever really beats C++. Sure fancy new languages keep popping up with features, but it either lacks portability or performance or control or higher level constructs or reliability or something else that C++ can provide. And eventually C++ gains the language feature anyway, but without sacrificing efficiency for it. Many languages have tried to take C++'s place, but so far none have gotten close. And even where other languages have a good hold (Java, C#, ObjC, etc), when you want an efficient library shared between those ecosystems, you'll write that in C++.
And no, C doesn't really count in the comparison, because it doesn't grow - while WG14 publishes new standards, it's still mostly C89 used in the wild, with a few extensions.
Re: (Score:3, Informative)
And eventually C++ gains the language feature anyway, but without sacrificing efficiency for it.
Yes, C++ is a great language if its about which language contains the most features. But one thing which is very bad about c++ is that its very easy to write a bad program. In rust its very hard to write a bad program, as you first have to convince the compiler (including the borrow checker) to compile it, which requires you to think about what works how. Also, rust forbids things it considers "unsafe" by default, while with C++ you still can do very unsafe things.
C++ is great because its backwards compatib
Re: (Score:2)
Why would you stop using normal pointers? The fact that you use smart pointers (which deal with ownership and lifetime of objects) is not related with normal pointers.
Because the moment you use pointers, you lose all the features of smart pointers, and this automatically introduces the opportunity for bugs to sneak in. The moment you have a pointer ptr, you can do ptr++, or do "delete ptr" and then dereference it and do other evil stuff. Yeah of course nobody except for some newbies would do this directly, but often bugs appear whose core is basically such behaviour.
False. "char" is and will always be of size 1.
Never disputed that. I just said that 1 byte is not guaranteed to contain 8 bits: http://stackoverflow.com [stackoverflow.com]
Re: (Score:2)
But one thing which is very bad about c++ is that its very easy to write a bad program. In rust its very hard to write a bad program, as you first have to convince the compiler (including the borrow checker) to compile it, which requires you to think about what works how.
If they'd stop letting idiots work in computer science, we wouldn't need new languages. Good programmers don't write bad programs; they know what they want, and they know how to implement it. Heavens, you actually have to *think* while programming? The horrors!
Out of idle curiosity, I went to look at Rust. They don't even acknowledge that processors other than Intel X86 exist. So much for that.
Re: (Score:2)
They don't even acknowledge that processors other than Intel X86 exist. So much for that.
What do you mean by that? Rust compiles to LLVM IR, which is platform independent, so it can theoretically compile to most of the platforms LLVM has as target.
There are even guides on the internet how to set it up, just google for them.
Re: (Score:2)
https://www.rust-lang.org/down... [rust-lang.org]
No downloads for anything other than x86/64 and x86/32. That's what I meant by that.
Sure, in theory, I could download the sources and recompile them for my platforms of choice. But having that as a task before I can see whether Rust is usable in my environment? No, thanks.
Re: (Score:1)
What do you use as a primary development platform that isn't x86 compatible?
Re: (Score:2)
Re: (Score:2)
According to the link (to the rust site) several of the features of the core library are still marked as unstable. So either their documentation is out of date, of the core library still isn't stable.
Re: (Score:2)
No, except for compiler plugins, you can only compile code using stable interfaces with the official 1.6 release compiler. If you are on the nightly channel, you can use unstable things too. "unstable" is basically a playground to test features of a software before it gets "officially" included into the stable part of the language.
Re: (Score:2)
Isn't stability a basic requirement for software, especially in a programming language?
Apparently not. Just as an example, Python, the darling of Slashdot, can't even seem to maintain stability between minor versions. Just so you know I'm not picking on a fad language, consider that C# and other .NET has had countless breaking changes of the years. In the world of programming, fads and trends rule the day, stability be damned.
Rust is bucking the trend. If you're looking for a reason to bash it (because no one should like something you don't like) look elsewhere. It's actually meeting your
Beware of Rust. (Score:5, Interesting)
The Rust home page makes it sound like Rust is some sort of a panacea. It leads one to believe that they'll get the power of C++, but with greater "safety".
But the more I look into Rust, the more uneasy I start to feel.
Despite all of the claims about how Rust is safer and leads to better code, the Rust compiler and standard library, both of which are implemented in Rust, are full of bugs [github.com]! Don't forget that this is Rust code written by people who ought to know Rust better than anyone else; they designed the language after all! If they can't write non-buggy Rust code, then we shouldn't expect less-talented Rust users to be able to do any better.
It's also a big problem that there's only one implementation. If you run into a bug with it, and they don't fix it promptly, then you're likely fucked. At least with C++ there are multiple high quality implementations from different vendors. You can use GCC and Clang on most platforms. Then there are other systems like Intel C++, MSVC++, and so forth. You aren't left at the mercy of a single implementation when you use C++.
The syntax of Rust is unremarkable. It's like a bad version of C++ in many ways. Its resource management approach is also inflexible and impractical, despite the claims that it's one of Rust's most significant benefits. You're typically better off using modern C++ techniques. You'll get just about the same amount of safety, but with much fewer headaches. Even C++'s standard library, which is not known for being very good, is often better than Rust's.
It took them forever to get Rust 1.0 released. They were constantly changing their mind about anything and everything. While some evolution of a programming language is to be expected, all we saw from them was spastic thrashing about. It got so bad that you couldn't write code on a Monday and reliably have it compile by the following Friday! The fact that it took libcore up until release 1.6 to "stabilize" just goes to show how bad things were. The supposed "stable" release was full of non-stable interfaces!
The Rust community gives me a particularly bad feeling. They're rather tyrannical about enforcing their code of conduct. They even have a moderation attack squad [rust-lang.org] to go after anyone they deem to be an enemy! I've never seen this kind of orchestrated control exerted over the community of any other programming language. This sets off warning alarms for me.
There's no reason to use Rust, in my opinion. You're better off with C++, or D, or Java, or Scala, or C#, or Go, or Swift, or one of the many other non-Rust languages out there. The language isn't very good, the standard libraries aren't very good, there's only one implementation, and the attitude of the community is downright frightening. I think you're better off not using Rust.
Re: (Score:2)
2. Rust has a lot of really good ideas with a lot of potential.
3. My only problem with it right now is that it seems like everything is wrapped in a promise so I end up calling "unwrap()" on just about every function call-- extremely obnoxious! This may just be a noob mistake on my part, perhaps with experience I'll learn idioms that obviate the need to "unwrap()" everything.
Re: (Score:2)
I agree, if we change "about ten years" to "at *least* ten years". Tongue only slightly in cheek. C++ took 25 years (C++11) to become, IMO, a compelling improvement over C.
I disagree with basically everything the coward said -- particularly wrt the Rust community which I think is great -- but I don't use Rust (yet), either. The things that irk me the most about Rust are the lifetime annotations, the fact that it's non-trivial to write a linked-list implementation, and a few issues that will go away after
Re: Beware of Rust. (Score:2)
Re: (Score:2)
In fact, its okay to use unwrap() if the Err case only appears on an internal error, where you'd assert() ed in C++.
Re: (Score:1)
Are you the same AC that was posting FUD about Rust [slashdot.org] the other day? A bunch of the same baseless complaints and the same reference to a "moderation attack squad".
Don't forget that this is Rust code written by people who ought to know Rust better than anyone else; they designed the language after all! If they can't write non-buggy Rust code, then we shouldn't expect less-talented Rust users to be able to do any better.
Nonsense. Being an expert in a language says nothing about how well you understand or can implement a solution for a given problem. If anything, that GitHub page should give someone reassurance that the project is actively maintained, that bugs are filed and solved (nearly 14,000 closed issues versus 2,300 open).
It's also a big problem that there's only one implementation.
Nonsense. This is called a referen [wikipedia.org]
Re: (Score:2)
I've been toying with Rust, and I'm impressed. It's not a language for every application, but it's a good competitor for many.
Of course there are bugs. Do you know how many bugs gcc has had? Gazillions. I remember sticking to 2.95 for a loooong time.
The syntax is great. Why should it be remarkable? It's compact, and as readable as any other C-like syntax. And it has some great (semantic) features. Traits, iterators, function application, it's what C++ should have done instead of rely on STL.
I haven't seen a
Re: (Score:1)
But the more I look into Rust, the more uneasy I start to feel.
Ok, this post is already a couple of days old, so it's unlikely that anyone will really read this response, but the above is a shining example of trolling and I'm bored enough that I'll feed the troll a bit, if only to bring the OP's technique to light. The hallmark of good trolling is the use of otherwise unremarkable facts in ways which are wildly out of context, disingenuous or dishonest, in order to further one's views, and the OP does it in spades. In this case, the goal is to denigrate everything abou
Re: (Score:2)
Actually, Rust looks as if it might become a really good language. Perhaps. But it's going to need better documentation. (And parts of the core library are still marked as unstable.)
So it may be awhile yet before it reaches "acceptable".
Isn't there a quote/corollary about reinventing C? (Score:5, Insightful)
We need to update Murphy's Laws for the new millennium:
* "Those that don't understand C are condemned to re-invent it, poorly."
Almost applies to every C derivative: C++, Rust, Obj-C, etc. /me ducks :-)
With apologies to Henry Spencer's "Those who do not understand Unix are condemned to reinvent it, poorly."
Re: (Score:2)
Well, I'm not so sure I agree with that. Here's my take. I've taken a recent interest in Rust and Go. I've done C programming on and off for about 20 years along with quite a few other languages. I think C++ is just a big screw-up, and I appreciate what Rust is trying to accomplish. But, I don't think Rust is ready for prime-time yet and the development process seems really slow. I like the ideas they are coming up with. I think the trouble with it is that it doesn't seem to have a strong enough backing and
Re: (Score:2)
About habits of dropping things: I still do think its very bad that mozilla dropped its XUL framework. Probably windows users won't notice as their computers are turned into tablets with a mouse, but still I would appreciate if I had some xml based way to create native-like UI, and not the usual "web" stuff.
So I hope that rust won't meet a similar fate.
Re: (Score:2)
I *never* said let's REwrite ALL our software. *That* would be stupid.
Can any of the C derivates be used for writing software? Sure, any bad language can be.
I was just pointing out the dumb re-designs.
Re: (Score:2)
Re: (Score:2)
I just think they used the word "stable" too early.
Rust really changed heavily until May 2015 when 1.0 was released, so googling for common questions is very hard, as you get presented with largely outdated answers. So its really good they stabilized it, whatever now "stable" means. But the release 1.0 (or 1.6 or whatever) compiler only compiles stable interfaces. This way, 100% of your code can be compiled with stable rust.
Re: (Score:2)
Although Unix was not originally written in C (I had to look this up [wikipedia.org]), it was re-written and ported using C fairly early. Arguably, Spencer's aphorism is as much about C as Unix. I think we can regard C-like languages and *NIX operating systems as "brothers".
Rust is a fad (Score:1)
There, I said what we're all thinking.
Scary Cargo/External libaries Files (Score:2)
The biggest issue I have with Rust is the set of external libraries that you need to install with the Cargo tool. It isn't as much that we have the tool to install only the libraries you need, but going in the list of libraries. That are suppose to be in the approved repository, there are a lot of them with descriptions that makes me worry about using them.
Obscure Programming Language 101 (Score:2)
In what ways is this programming language relevant again? My memory is a little rusty.
Re: (Score:1)
You're so right about C++ - the coding practices of today have all but eliminated the need for rust without the need to "reason" about your program beforehand to the extent rust expects you to.
Re: (Score:2)