So yeah, 1.26 is the most substantial release since 1.0, but there's lots more goodies coming in the pipeline. :) It just so happened that all the initiatives from last year are preparing to land at approximately the same time. For example, coming up next in 1.27 is stable SIMD: <a href="https://github.com/rust-lang/rust/pull/49664" rel="nofollow">https://github.com/rust-lang/rust/pull/49664</a> (though only for x86/x86_64 at first; more platforms and high-level crossplatform APIs are on the way).
I recently found myself inserting &/*/ref/ref mut into match expressions before I'd even seen a compiler error. My first thought was "aha, look at how experienced I am with Rust now!" Followed immediately by "I can't wait until this isn't something you have to learn to be productive with the language." And now that day has come! Really exciting for me.<p>I also need to go and find all of my impl Trait TODO comments and get to work on cleaning those up! What a good day.<p>I should also say that while I haven't read the second edition of the book yet I am excited to have some new Rust-related content to read. The first edition of the book was a really eye-opening learning experience for me (both about computers and Rust and also about how to build a community and prioritize teaching) and I can only imagine what an improvement on that is like.
So, so, so much stuff in this release! The next few are shaping up to be similar. Very exciting times!<p>As always, happy to answer questions, provide context, etc.
Everyone keeps talking about impl Trait (which is great) but I'm super pumped for ? working in main now. Was recently writing some code as I finally got back to rust and forgot about that edge and had to write a match block when ? would have been good enough (felt silly to make a method just to handle that).
The wonderful thing about Rust is that despite being fairly new and rare to get paid for working on it, it is still enticing( to most programmers I've met). The consistent effort to improve it is really paying off. I hope it gets to a place where it's `batteries included` like Python. There are some glaring holes in the stdlib I would like to see fixed sometime soon.
The post doesn’t go into much detail about how the new i128 and u128 types are implemented, so for anyone who’s as curious as I was, the RFC is here: <a href="https://github.com/rust-lang/rfcs/blob/master/text/1504-int128.md" rel="nofollow">https://github.com/rust-lang/rfcs/blob/master/text/1504-int1...</a>
"Speaking of print, you can pre-order a dead tree version of the book from NoStarch Press. The contents are identical, but you get a nice physical book to put on a shelf, or a beautifully typeset PDF. Proceeds are going to charity."<p>Which charity/charities?
There's so much long-awaited features that are finally stabilised.<p>impl Trait is HUGE. And there's tons of other stuff too. This must be the biggest single release since 1.0.
> Inclusive ranges are especially useful if you want to iterate over every possible value in a range<p>Out of curiosity, why was the (or an alternative) choice not to make the compiler understand that the 0..256 was not inclusive, and somehow correct the literal value to do what's intended? Would that have been unusually complicated or?<p>Edit: Overall, still an amazing release, this was just the bit I'm curious about :) Great work by the whole Rust team/community
As a person who started writing rust this last week, I think I might have picked the best possible time to get in on it.<p>The community is amazing, and I actually understand all these features that were released I've run into about half of the issues they fix already.<p>Rust is coming along very very nicely.
Super excited to see how much better my code will look with impl Trait and the "no need for &/ref in pattern matches" stuff.<p>Keep it up Rust team. The language is incredible! Really my only daily complaint is IDE support is still abysmally slow, in both IntelliJ and VSCode.
So freaking excited about impl trait.<p>This and not being able to do paramterized array sizes for things like SoA, AoSoA where the two things that I feel like were missing from Rust. Really happy to see the first landing(and I understand work is going on for the second).
I wrote a program yesterday in 1.25 which did some simple file I/O right there in main, didn't need to be fancy at all... and then this morning I come online and find that we now have fs::read_to_string and main can return a Result... great!<p>But I needed this yesterday!<p>Seriously though, this is an amazing release and so much stuff in here I've been looking forward to for ages. impl Trait is going to change the way I write Rust.
Hooray, congrats to the rust contributors, once again. :)<p>Personally, not a fan of the match change. But then I was already not a fan of autoderef in method calls.
Is it possible to match the end of a slice with slice patterns? Something like:<p><pre><code> fn foo(s: &[char]) {
match s {
['a', 'b'] => (),
[.. 'b', 'c'] => (),
_ => (),
}
}</code></pre>
I'm super excited about the "Basic slice patterns". I've been learning some Elixir at the same time and was blown away by the different style of programming you can write in using matching. Glad to be able to try it out in Rust as well.
Existential types are great! Although I must mention that existential types are basically the way to model OO-style information hiding. It's a great tool to have in any mature type system, although I do wonder how it is compiled. Trait objects are kind of easy to imagine: a heap-allocated dictionary of methods for that trait. I do wonder how heap allocation is being avoided in this case.<p>EDIT: I didn't read closely enough. Only a single type is allowed, so the traditional existential type construct ("trait objects") are still needed.
Oh wow, this sounds great! I've hit both the long signatures when returning iterators, and also the dereferencing song-and-dance with match, and my Rust projects have been very limited. So I think these are huge improvements that will help a lot of other newbies like me. I can't wait to start using 1.26 instead. Thanks Rust team! :-)
Congrats on the release!<p>Would the book be updated as new features are added to Rust? I see some useful things being incorporated slowly into the language...