15 ms·
Announcing Rust 1.0
- alfiedotwtf 11y ago\o/
- biftek 11y agoCongrats Rust team, and perfect timing, got some vacation next week and plan to build some things.
- istvan__ 11y agoGood news everyone! :) I really hope this language gets traction.
- EugeneOZ 11y agoCongrats! Thanks to all who worked on it!
- dennismp 11y agoCongrats Rusties. I've just begun playing and it seems worth the time investment.
- wldcordeiro 11y agoRustacean* :)
- deleted 11y ago[deleted]
- dman 11y agoRustafarian
- steveklabnik 11y agoThe community generally doesn't like that name, as it has awkward, appropriating connotations.
- jerf 11y agoWhat, and Rustacean doesn't? When we Uplift our Cetacean friends, is this sort of awkward appropriation really how you want to meet the newly-conscious masters of 3/4s of the planet? (Cough.)
- steveklabnik 11y agoAs an ex-sorta/kinda-its-complicated-vegan, this comment makes me smile, for sure :) The purist REST crowd also has used "RESTafarian" for years, and they're almost indistinguishable when spoken...
- twic 11y agoI parse 'Rustacean' as appropriating crustaceans, not cetaceans. I'm rather less worried about annoying them, because i eat enough prawn toast that i'm already on their shitlist.
- EugeneOZ 11y agoPretty cool name with good connotations (like Bob Marley's music).
- Dewie3 11y agoDid any rastafarians complain about that name, or raise this concern? On the other hand, I can't imagine there are many rastafarians lurking on tumblr.
- yellowapple 11y agoFerrous Oxides.
- hillsarealiv3 11y agoIronborn!
- logn 11y agoGriswolds
- twic 11y agoRustics.
- deleted 11y ago[deleted]
- atonse 11y agoCongrats to the team and thanks for your hard work! I'm not a Rust developer but it's definitely piqued my interest in doing more native development without being afraid of introducing buffer overflows and other security exploits.
- cyber1 11y agoSuper!
- steveklabnik 11y agoThank you so much to all of our community and contributors. It's been a long time coming, but I'm really proud of what we've done together. I'm finally going to get some real sleep tonight, I think.
- deleted 11y ago[deleted]
- rjammala 11y agoCongrats!
- verandaguy 11y agoAwesome! Now to get the STL docs up to speed and fix them up so that they're less ambiguous to newcomers!
- steveklabnik 11y agoThe STL docs? And what specifically is ambiguous? (and thanks :) )
- verandaguy 11y agoWell, when I started learning (around Beta 2, I'm by no means an expert yet but eager to get there!) a lot of the docs about both I/O and type conversions/type casting could've used some work, just to name two features...
- steveklabnik 11y agoOh, the "T" was confusing me, you mean the standard library docs? And yeah, there's certainly a ton of weak points. We landed a _lot_ of Rustdoc fixes that make certain things better, but there's still a ton more to write. I've been mostly focusing on the longform docs. I just wanted to make sure that I know where people are having problems, so I can know where to focus my efforts. Thanks.
- verandaguy 11y agoAre there any ways the community can give back, and help work on the docs? A wiki maybe?
- steveklabnik 11y agoThe docs are all in-tree. I love community contributed docs, that's how I got started :) Just like any GitHub project, just send us a pull request!
- lambda 11y ago
- spotman 11y agoVery cool. Going to try to learn some basics this weekend! Exciting times watching (from a spectators points of view) the evolution of Rust to this point. Sounds like more exciting times ahead.
- alfiedotwtf 11y agoThis has to be the fastest post to rise to #1 on HN I've ever seen!
- BinaryIdiot 11y agoI thought 1.0 was announced a few weeks ago. Am I going crazy? I mean it's awesome news I'm just confused. Edit: looks like I'm going crazy. It seemed so vivid too like I actually started checking out the rust documentation and was looking for a book to pick up. Unless everyone is messing with me...
- mdup 11y agoSeveral beta versions have been announced before, but this time, we're talking about the first stable version.
- brohee 11y agoIt went through a pretty standard alpha and beta release cycle, you must think of one of those announces.
- Nadya 11y agoIt seems you might be suffering from the Mandela Effect. Do you remember it being the Berenstein Bears or the Berenstain Bears?
- gtremper 11y agoThis is blowing my mind. I remember Berenstein Bears as well.
- BinaryIdiot 11y ago> Do you remember it being the Berenstein Bears or the Berenstain Bears? Um.......yes? Crap.
- deleted 11y ago[deleted]
- istvan__ 11y agoIt reminds me of a prank when one of our co-workers left her computer unlocked, one of us sent an email to her from her own account saying "This is a reminder, you were taken by aliens, I am writing this to you so you can remember." She is not technical, so se freaked out a lot. Anyways, Rust 1.0 is released today, so your work of digging into the documentation is not wasted. :)
- iamthepieman 11y agoThanks so much to everyone who contributed to this milestone. Rust is one of the few pieces of new technology that has made me want to drop everything and dig in to it. It's also one of the few open source projects that has actually gotten me to contribute.
- izolate 11y agoWell done! I'm generally against shoehorning languages into environments where they don't belong, but I can't wait to try using Rust for webdev.
- steveklabnik 11y agoYou might enjoy http://arewewebyet.com/ http://arewewebyet.com/
- 15155 11y agoNo mention of non-blocking IO or a concurrency model that isn't 1:1 with OS threads. What's the plan on those fronts if they won't be in 1.0?
- steveklabnik 11y agoThat they'll be coming in later releases. IO is a library concern in Rust, not a language concern. There are already crates that offer some of this, like mio.
- tormeh 11y ago>x is a library concern in y, not a language concern. The end user doesn't really care. The line between the standard library and the language is usually invisible.
- 15155 11y ago> IO is a library concern in Rust, not a language concern. It often is a language concern: no async/await in the compiler or language-assisted yielding/scheduling means difficult or impossible concurrency model. With Rust's borrow checker, IO (already unsafe C FFI) + callbacks are hard to write in a pleasing and safe way.
- lambda 11y agoYou're right, that site should be updated with those as other parts of the ecosystem that aren't yet mature. There's work on non-blocking IO at https://github.com/carllerche/mio https://github.com/carllerche/mio, which is looking like one of the more promising approaches, as well as https://github.com/carllerche/eventual https://github.com/carllerche/eventual which provides higher-level abstractions over it. There has been some discussion of adding some language support for something like async/await/yield from other languages, but nothing concrete in the near future on the language front. So, there's usable third-party libraries for it (at least, if you're on a Unix like platform), language support is in the realm of "it would be nice someday".
- Arnor 11y agoAwesome! I assume you intentionally released this on a Friday just to eat up everyone's weekends :) Thanks for the hard work. As I dig in, I'm hoping that Rust will fit in the "useful and safe" sweet spot in Simon Peyton Jones's diagram here: https://www.youtube.com/watch?v=iSmkqocn0oQ https://www.youtube.com/watch?v=iSmkqocn0oQ
- steveklabnik 11y ago> I assume you intentionally released this on a Friday just to eat up everyone's weekends :) Hehe, we didn't choose it for any specific reason, but when we started to do the six-week cycle, it landed on a Friday. I like shipping on Friday for a number of reasons, but there's good reason to pick any particular day.
- not_with_retard 11y agoYou should _always_ be shipping on the first day of your own work week, so you can handle emergency cases should any arise.
- burntsushi 11y agoI actually liked it for selfish reasons. I got to stay out way past my bedtime and geek out about Rust at the Boston meetup. :D
- deleted 11y ago[deleted]
- pjmlp 11y agoCongratulations to everyone on the team!
- alexnewman 11y agoA real game changer although I wonder if there's still some minor breaking changes I'd like to see
- alexnewman 11y agoConsider how nice it would be is if when you matched (a,a,a) it checked to make sure they were equal. Probably can't do that for (_,_,_) It's a breaking change, but who would mind?
- madez 11y agoWell, do you mean equality by value or by memory location? I also hope they are not too conservative in the beginning, because we might have to pay for mistakes for a long time.
- alexnewman 11y agoYea perhaps it's just not as easy as haskell. But I was trying to make the meta point that not breaking compatibility between releases can be a bit subjective.
- FreeFull 11y agoEven if equality was by memory location in the case where the tuple contains pointers, one would still have to work out how equality would work for tuples of non-pointer types. For example, would (NaN, NaN) match (A, A)? If the implementation makes use of ==, then it wouldn't, and if it uses bitwise equality it would.
- deleted 11y ago[deleted]
- dbaupp 11y agoIt's not a breaking change.
- nightpool 11y agoWhy would that be a breaking change?
- outqin 11y agocheers LOL
- nodejsisbest 11y agolol cheers
- Animats 11y agoGreat! I just downloaded and installed it, and my programs still worked! No more "cargo clean; cargo update; cargo build; cargo test;" every day! At last.
- untothebreach 11y agoinstall my `cargo-do` utility and it can be `cargo do clean, update, build, test` instead ;) github.com/pwoolcoc/cargo-do
- mariusmg 11y agoAny IDE support for Rust ?
- iagooar 11y agoVim + rust.vim works pretty well ;)
- MrUnderhill 11y agoThere's also Racer[1] (semantic completion engine), and it sounds like Valloric is open to making it work with YouCompleteMe [2]. [1] https://github.com/phildawes/racer https://github.com/phildawes/racer [2] https://github.com/Valloric/YouCompleteMe/issues/1297 https://github.com/Valloric/YouCompleteMe/issues/1297
- doublextremevil 11y agohttps://visualstudiogallery.msdn.microsoft.com/c6075d2f-8864-47c0-8333-92f183d3e640 https://visualstudiogallery.msdn.microsoft.com/c6075d2f-8864...
- yellowapple 11y agoEmacs has a rust-mode IIRC.
- PudgePacket 11y agoPair it with racer for auto completion https://github.com/phildawes/racer https://github.com/phildawes/racer
- farresito 11y agoHi! You are in luck! Today, this was posted: http://blog.piston.rs/2015/05/14/Visual-Rust-0.1/ http://blog.piston.rs/2015/05/14/Visual-Rust-0.1/
- hillsarealiv3 11y agoWindows only?
- GolDDranks 11y agoCongratulations to everyone involved!! Exciting times!
- kibwen 11y agoI would like to take this opportunity to formally apologize to the HN community for that time back in early 2012 when I predicted that Rust 1.0 would be released "in about six months or so", and later proceeded to proudly proclaim that 0.4 would be the last release with major breaking changes to the syntax. I hope you all can find it in your hearts to forgive me. :) But at long last, we did it, and it's almost too good to believe. But as much work as it's been just to get to this point, the real struggle begins today. Months and years of brutal campaigning, compiler engineering, and careful language design lie ahead. If you've yet to take a look at Rust, please do, and report your findings so that we can better prioritize our efforts for the near future. If you like what you see, there's plenty of work to go around and a welcoming community should you decide to dig in and join us. And if you don't like what you see, that's fine too; Rust is not the language to end all languages! We're just here to make the world a little safer, however we can. Hopefully today is but the first page in that story. :)
- drbawb 11y agoIt seems like just yesterday I was getting all misty-eyed over losing my friend the `~` sigil. rust-story builds on 1.0, though, so I think I'll be able to forgive you. ;^) Congrats on the release!
- barosl 11y agoThat's funny, because I started hacking Rust just because the `~` sigil and friends were gone. :-) Before that, so many sigils in Rust scared me and kept me from learning it. Rust still has a bit many sigils nowadays, but it's definitely cleaner than before!
- drbawb 11y ago>so many sigils in Rust scared me and kept me from learning it. I had just started seriously learning rust a few months before they started moving owned pointers into `std`. So I felt somewhat betrayed by the removal of the sigils. It seemed like all the hard work I had spent learning the various pointer types would end up being useless! Of course that fear was ungrounded. I very quickly came to understand that what I had actually spent time learning was ownership; and _that knowledge_ is still perfectly relevant, even today in rust 1.0. All that was really changing was the removal of some arcane syntax which had only served as a stumbling block in my quest to learn Rust.
- deleted 11y ago[deleted]
- habitue 11y agoIt mentions the rust 1.1 beta, but doesn't link to it. Where is the list of changes in 1.1?
- steveklabnik 11y agoAs per https://internals.rust-lang.org/t/release-channels-git-branching-and-the-release-process/1940 https://internals.rust-lang.org/t/release-channels-git-branc... , there's a branch: https://github.com/rust-lang/rust/tree/beta https://github.com/rust-lang/rust/tree/beta I don't think we currently have a changelog or anything: we were mostly focusing on this new, stable branch this time around. You're right that making a changelog now would be super helpful, I'll add that to the list for next release. Thanks!
- iagooar 11y agoThis is so huge! Rust is going to be the first time I am going to learn a programming language from the day it is born (until now it was tough to learn Rust, given the changing APIs ;). I see a bright future for Rust. Thanks to Mozilla and the whole community for making it possible.
- nashashmi 11y agoI wish there could be a site started by the very beginner's to document the learning and adventures one gets from this. I wish it could have people of various expertise, from those never having learned a single language to those with several languages under their belt. I would have a fun time learning alongside them. It will be just like high school all over again.
- yowmamasita 11y agoThe book "The Rust Programming Language" is really solid and everyone learning the language should read it.
- exacube 11y agoIt's always exciting reading Rust posts on HN, so very happy about a stable release!! I can't help but feel the language has a very steep learning curve, however; doing something like making an event-queue-with-callbacks is very hard to write out in Rust if you're a beginner with just the current docs. I think Rust will benefit greatly if their docs compiled some articles on how to write typical systems-related code (for me, I would love to see how to implement task queues with callback mechanisms).
- aembleton 11y agoWhy does a simple "Hello World" create a 578KB binary? Is it packaging a lot of extras that aren't needed for such a simple program?
- steveklabnik 11y agoIt statically links the entire standard library by default.
- nly 11y agoHello world in C++ is 1.3 MiB when linked statically. $ cat helloworld.cpp #include <iostream> int main() { std::cout << "Hello world" << std::endl; } $ g++ -std=c++14 -Os -static helloworld.cpp $ size a.out text data bss dec hex filename 1294232 29692 92936 1416860 159e9c a.out The majority of this is bloat from GNU libc though, using diet libc would yield better results $ cat helloworld.c #include <stdio.h> int main() { puts ("Hello world"); } $ gcc -std=c99 -Os -static helloworld.c $ size a.out text data bss dec hex filename 725706 7572 9080 742358 b53d6 a.out
- kevinnk 11y agoAs I've pointed out in a previous thread, virtually all of it is from a) iostreams and b) glibc. If you don't statically link glibc (as is the case the vast majority of the time) it's much smaller. Edit: You made my point for me in your edit :) Leaving my original comment for posterity.
- lambda 11y agoIt is possible, with a little manual hacking of the linker and some trickery with storing strings in ELF headers, to get Rust to produces 151-byte executable. Yes, a simple "Hello World" winds up statically linking a fairly sizeable standard library, in particular anything dealing with strings has to involve a certain amount of UTF-8 manipulation and the formatting and I/O have a lot of features and thus likely fairly large code size. But for the most part that's just fixed overhead, and you can opt out of using the standard library if you want and produce smaller executables.
- bliti 11y agoLet me begin by saying congratulations to the Rust team and supporting community. I've been following Rust when I realized it would make for a good language to try with robotic controls (due to all the safety stuff). Stupid question time: What does this release mean for the embedded / control systems community? Will you be recommending any specific boards / micros / libraries from now forward? If so, which?
- mastax 11y agoThe story for rust in embedded contexts is not quite finished. There are dozens of people writing kernels in rust, there's zinc for arm microcontrollers and I've seen projects for raspi and PSX, so stuff works. It's not great yet, though. Once the allocator api is added to the stdlib it'll be much easier to use the standard library in embedded contexts. There's probably other stuff I don't know about but I know for sure that this is a priority for the near future.
- bliti 11y agoThank you for the insight. I was not aware that the allocator api was not yet in the stdlib for embedded. I'll have to wait a little bit more then.
- krzysz00 11y agoMy current approach to the heap problem (I'm working on a toy Rust kernel) is to compile the allocator portions of the standard library (liballoc) with a configuration flag that makes them use a particular set of external functions as the low-level heap allocation machinery. Then, my kernel provides these functions, and all the nice stuff (Box, Vec, etc.) "just works". IF you're curious, the relevant code is at https://github.com/krzysz00/rust-kernel/blob/master/kernel/malloc.rs https://github.com/krzysz00/rust-kernel/blob/master/kernel/m... . The functions that start with "rust_" are the allocator interface
- bliti 11y agoVery interesting. Thank you for sharing. Would it be too much to ask for more?
- przemoc 11y agoNow that Rust reached v1.0, I may finally look into it without the fear of wasting time to learn stuff that will change within next months. (It's quite sad, though, that recently released Debian Jessie won't have it in its main repositories.) Allow me to ask some questions, because I cannot easily find the answers and they're IMHO crucial for wider Rust adoption: 1. What CPU architectures/platforms Rust currently supports? 2. What's the state of cross-compilation support? Most of devs have workstation on i386/amd64, but some of us may work with ARM, PowerPC and other architectures. Rust's memory safety seems appealing for embedded solutions, but can it be used there already? BTW The install page is not well-thought-out. http://www.rust-lang.org/install.html http://www.rust-lang.org/install.html Unless I hover on the 32-bit/64-bit links and read addresses they point to, there's no way to tell whether it's for x86 or ARM for instance. And installation via piping script that is being downloaded to shell is something that shouldn't be present at all.
- steveklabnik 11y ago1. In a sense, anything LLVM supports. Some stuff is more first-class than others, of course. We test every commit on x86, x86_64, and ARM. 2. Exists, but isn't particuarly easy. The biggest hurdle is getting a copy of the standard library for the target platform, then it's pretty easy. It's gonna be a focus in the near-term.
- przemoc 11y agoThank you for such a prompt answer. EDIT: Quick googling revealed that Rust doesn't work with musl libc yet. It will be really nice when it will be fixed.
- steveklabnik 11y agoThere is actually preliminary support: https://github.com/rust-lang/rust/pull/24777 https://github.com/rust-lang/rust/pull/24777 Making this work well is a very high priority.
- deleted 11y ago
- discardorama 11y agoCongratulations to the team; it is nice to be around when a language is born. I remember when Ruby was born, and most people (that I knew) were like "Huh? Why Ruby, when we have Perl?". I haven't followed Rust much, but as a total n00b: what are some practical reasons why one would choose to learn Rust? What features does this language have which others (pick: C, C++, D, etc.) don't have? What does it do better than the aforementioned languages? (Please don't take these as a challenge, but as a desire to learn more). Thanks!
- steveklabnik 11y ago> What features does this language have which others (pick: C, C++, D, etc.) The shortest answer is 'memory safety without garbage collection.' C and C++ don't have 1, D doesn't have 2. D is working on 2, but then it won't have 1. Secondary reasons: newer, better, more standard tooling, (in some cases, not others: IDE support, not nearly as good. Build system and sharing code? Way better.) Similar concepts in a more orthogonal package. Lack of legacy baggage. Easier (hopefully) for non-systems programmers to get into, as the compiler is there to help. It really depends. Reasons those languages are better than Rust: adoption, ubiquity, more tutorials and a bigger community.
- nercury 11y agoThe introduction in book (linked in announcement) actually explains exactly this, very nicely. It sounds like this: Rust is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. It improves on current languages targeting this space by having a number of compile-time safety checks that produce no runtime overhead, while eliminating all data races. Rust also aims to achieve ‘zero-cost abstractions’ even though some of these abstractions feel like those of a high-level language. Even then, Rust still allows precise control like a low-level language would.
- Veedrac 11y agoRust manages to fight neck-to-neck with C++ on speed and runtime overhead ("fast" and "effectively none") whilst giving both safety and some really nicely made abstractions. The one everyone mentions is that Rust gets memory safety without garbage collection. But there are cooler things, like being able to implement units in the type system. Rust also gets safety right in the sense that its defaults are good - its primary random number library has ChaChaRng and IsaacRng instead of a Mersenne Twister, for example. The sensible library design goes everywhere, from Rust's functional roots, high-quality zero-overhead iteration protocol (none of the mess that C++ gives you) to simple things like a well-designed composable hashing standard. Even stuff like comparing C++'s move, copy and constructor semantics are much nicer in Rust, and in most cases even lower overhead: everything is a memcpy and is implemented automatically. I can go on. Rust is one of the few languages that IMHO gets string handling right, and has good unicode support from the outset. It's easier to write error-proof filesystem code than any other language I've used. Threading isn't a mess. There are disadvantages, such as Rust being one of the hardest languages to learn. Generics are both pervasive and difficult - they're clean unlike in C++ but they're also uncomfortably explicit. There are lots of nonlocal typesystem effects, largely due to the thirst for safety. But it's a good language. Definitely one of the most exciting I've seen in a while.
- borrowwhatnow 11y agoCongrats! I've been excited about Rust for a while now, and this gives me a good reason to look into it a bit more. A quick question, though, if it's appropriate in this context: It seems to me that the borrow checker disallows behavior that I (perhaps naively) wouldn't be concerned about. For example, if I have this C snippet: { // Safe C int *ptr = NULL; int val = 42; ptr = &val; } Everything is hunky-dory. Translating this to Rust results in this (I think): { // Malformed Rust let ref: &i32; let val = 42; ref = &val; } Now the borrow checker tells me that "val" doesn't live long enough, because the reference comes to life before the value. It seems like this should be safe behavior, because the reference isn't bound to the value until after the value comes to life. Can anyone shed some light on this for me? I'm all for safety, but this in particular seems like something that I should be allowed to do.
- koenigdavidmj 11y agoI'll assume you meant 'ref = &x' in your example. But what happens is that variables leave scope in reverse of the order in which they came in, so ref lives for slightly longer than val. This happens so that the order of destructors can be guaranteed.
- borrowwhatnow 11y ago> I'll assume you meant 'ref = &x' in your example. I did, thanks.
- Veedrac 11y agorefs don't have destructors. This happens because borrow scopes are always lexical. This is a bug, see https://github.com/rust-lang/rfcs/issues/811 https://github.com/rust-lang/rfcs/issues/811.
- nightpool 11y agoBug =/= language feature that we want that hasn't been implemented or designed yet, FWIW. Right now the borrow checker is currently performing to spec, but the spec is just a little too restrictive in some cases.
- hillsarealiv3 11y agoIs there anywhere I can download a Rust tutorial in kindle format? I'd like to start learning Rust this weekend. EDIT: To answer my own question: http://killercup.github.io/trpl-ebook/ http://killercup.github.io/trpl-ebook/
- crudbug 11y agoI always disliked - "let and let mut". Personally - "val and var" are more intuitive.
- pcwalton 11y agoThe reason is that "let" takes a pattern, and mutability is an attribute of each pattern binding, not the let statement. let (mut a, b) = (..., ...); // a is mutable; b is not
- crudbug 11y agoMakes sense, but my brain fires wrong visual signals when I see "mut". If the whole point is to name a memory address - mutable or immutable. Why not have a special name for the address itself ? e.g: a = immutable, #a = mutable.
- simias 11y agoThat would make refactoring painful I suppose and it's unlike anything in the language. In general the rust devs have tried to get rid of as many sigils as possible anyway so your proposal is very unlikely to gain traction.
- crudbug 11y agoI know, just a suggestion. I should design an "uber-lang" to sit on top of JVM / CLR / LuaJIT / Rust ! :)
- steego 11y agoYour brain should fire wrong signals when you see mut. I think part of the design of mut is to discourage you from abusing mutable variables. (Personally, I prefer F# forcing you the type mutable). I'm glad they didn't give it a special prefix because not only would it add unnecessary noise, it would make refactoring tedious. I'd rather give the compiler my intent once, and let it figure out if I violated my own intentions. One thing I like in the F# toolset is the syntax highlighters will highlight mutable and reference variables different colors. It's a matter of time before Rust developers have that (If they don't already).
- apaprocki 11y agoIf you haven't played with Rust yet and are looking for some puzzles to help motivate you to learn, we've updated our Bloomberg CodeCon[1] site to support Rust 1.0. You can login and click the "Challenger Series" to get 17 problems of varying difficulty to solve in Rust. [1] http://codecon.bloomberg.com/ http://codecon.bloomberg.com/
- djhworld 11y agoThis is cool Wish the problems would come with a sample datasets though For example, the first problem "gloves" says you have a limit of 1024mb memory, 2s runtime, 100,000 max dataset size How are you supposed to test that, without going through the motions of generating the data yourself? EDIT: I do realise you're supposed to use the online editor thing and submit the answers to your server for the code to be judged, but I loathe writing code in my browser, would be nice to test offline in my own editor!
- gjm11 11y agoRequires Twitter or Google+ login. (For me that gets an instant back-button, and the fact that one can't see any of the actual content of the site before logging in makes it worse. But I expect there are good business reasons for it. Anyway, I mention it here because it may save a click or two for others who share my prejudices.)
- apaprocki 11y agoIf you don't want to login you can get most of what you're looking for here -- the content used for the finals (questions) along with the solutions. http://codecon.bloomberg.com/2015-finals http://codecon.bloomberg.com/2015-finals
- SamReidHughes 11y agoI'd like to give special thanks to Daniel Micay, whose contributions are a major reason Rust is even remotely tolerable.
- Psyonic 11y agoCongrats! This is awesome. Been waiting for 1.0 to really start digging into Rust. Now's the time :)
- chucksmash 11y agoVery exciting! I've worked through the tutorial in the past and enjoyed Rust very much but since then have just been passively following progress on HN. Looking forward to actually building something with it now.
- azdle 11y agoFor anyone that hasn't played around with rust yet, this is why I'm excited about rust: https://github.com/Azdle/hello-gtk.rs/blob/master/src/main.rs https://github.com/Azdle/hello-gtk.rs/blob/master/src/main.r... That is a GTK GUI application that makes HTTP requests in under 40 lines of code. Don't get me wrong I love all the safety gaurentes and what not, but just being able to write quick simple apps that would usually be a pain to write in C is a game changer for me. A lot of this is down to Cargo (the Rust package manager, very npm-like imo) and all the great rust libraries that already exist. I'm super excited to see where this goes now that it's 1.0, people can stop worrying about breaking changes in the language and just get down to writing libraries to do everything.
- sho_hn 11y agoI agree this is a very good thing by itself, but let's be clear that the extremly poor programmer ergonomics of the GTK-via-C stack have been superseded by nicer kit long ago (even within the GTK community).
- GarryManson 11y agoSeems like theres no good reason for rust to do this when vala can -- and better, it just compiles to the same C
- madez 11y agoVala has reference counted garbed collection, while Rust doesn't need that. Also, Rust verifies, among other things, the absence of data races.
- GarryManson 11y agoThat's not much good when you're just talking to ahitty GObject APIs that - guess what! - use reference counted GC and have lots of race conditions. You gain nothing
- 11y ago
- GarryManson 11y agoWhat's the hype for? Yet another language claiming to be safe with tons of gotchas and unsafeties. If you want safety, just use ada. C++ is good enough for the rest of us.
- pcwalton 11y agoAda does not have memory safety guarantees when you use dynamic allocation and references without a GC. Rust does.
- oldmanjay 11y agoI'm going to admit upfront that I'm a bit of a rust fanboy but I still have to ask - did you really make an account just to shit on rust on its birthday?
- SamReidHughes 11y agoIf you want to vapidly denigrate Rust I'd recommend something like, "Pssh. After years and years of wild goose chase, all we get is your basic fleshed out language built around having lifetime types? You can't even make abstractions over monads and lenses. No f128 type?? What's the point of reliable software if you can't use it to calculate hyperspace jumps?"
- tomjakubowski 11y ago> No f128 type?? Ooh, that's a stinger. It would be like shipping a C standard library with "strcat" but not "strncat".
- shmerl 11y agoCongratulations!
- kamaal 11y agoCan somebody explain for what kind of use cases would this be helpful to use?
- steveklabnik 11y agoAny time 'it matters'. There's lots of stuff that we build, and we say things like, "Language X is slow, but it doesn't matter." "Language Y uses a lot of memory, but it doesn't matter." This is very, very often true. But every once in a while, it really matters. That's when you want something like Rust. When the details are important. When you need full control, but you'd like a compiler to help catch your mistakes. When a garbage collector has too much overhead. When you need to write something inside of Language X or Y, instead of a C extension, you can use Rust. Basically, anywhere you'd use C or C++, Rust is a great fit. Elsewhere? Maybe, maybe not. Depends.
- robertfw 11y ago> When you need to write something inside of Language X or Y, instead of a C extension, you can use Rust. Are there any examples/discussion/information for interacting with rust from python, like you would a C extension?
- steveklabnik 11y agoI devoted a whole chapter of the book to Ruby/Python/node embedding: http://doc.rust-lang.org/book/rust-inside-other-languages.html http://doc.rust-lang.org/book/rust-inside-other-languages.ht... A Ruby gem in Rust was one of our earliest production uses.
- barosl 11y agoThere's a wonderful presentation on this topic: https://www.youtube.com/watch?v=3CwJ0MH-4MA https://www.youtube.com/watch?v=3CwJ0MH-4MA
- madez 11y agoRust is a systems programming language that runs blazingly fast, prevents nearly all segfaults, and guarantees thread safety.[1] So, if you care for low memory usage, execution speed or safety guarantees especially for hard-to-debug kind of errors, then Rust might be interesting for you. It offers low-level access like C or C++ but excels with vastly improved security. So, I'd take that step, and say that where C or C++ is used right now, you might want to use Rust in the future. [1] http://www.rust-lang.org/ http://www.rust-lang.org/
- tyrick 11y agoGreat job. I look forward to coding something over the weekend!
- jchoksi 11y agoI was looking to see what UI and database bindings were available as crates and came across the crates.io web site. It would be useful for people new to Rust to see what existing libraries are available and one way would be to have a link on the www.rust-lang.org site's font page pointing to crates.io site.
- ewillbefull 11y agoAlso see: https://github.com/kud1ing/awesome-rust https://github.com/kud1ing/awesome-rust
- jedisct1 11y agoAwesome!
- rukugu 11y agoJust today I looked at beta release , congratulations and looking forward to using Rust
- madez 11y agoI think the release of the first stable version is an appropriate time to ask how the collaboration with packaging teams from major distributions is going. Can you give us some information on that?
- FreeFull 11y agoThere is a Rust package in Arch Linux's community repo, but it's still on the beta version, and there is no cargo package yet.
- namelezz 11y agoCongratulations to the Rust team. I have been waiting for this.
- cjdrake 11y ago+1, Congratulations Rust Team :)
- fsloth 11y agoAnyone succesfull getting any glfw stuff on windows to build dependebly yet?
- akulbe 11y agoI'm on a Late 2013 Retina MacBook Pro, running 10.10.3, with the latest stable toolchain. It would not compile. http://pastebin.com/bifK665u http://pastebin.com/bifK665u I set --prefix=/usr --enable-debug No dice. I also tried to build from source in a VM on that same machine. 32-bit Ubuntu 14.04.2 (3GB of RAM), latest stable toolchain. Again, didn't compile. Core dump.
- pnkfelix 11y agoThat is strange; I bootstrap regularly with `--enable-debug` and have not seen an arithmetic overflow during bootstrap (at least, not for a long time). It would probably be best to carry on a conversation on a formal bug report; did you file one at the url it listed?
- lcnmrn 11y agoRust is nice, but… Why can't anybody made a language with the exact syntax of Python, but compiled? It doesn't need extreme safety features or other buzzwords.
- SiVal 11y agoIt's ridiculous of them to downvote you instead of providing an honest answer. This is a good question that I think a lot of Python fans might wonder about. One of the many great things about Python (and other "dynamic" languages) is how flexible it is in so many ways. Instead of forcing you to be more explicit, make more decisions, and lock more things down in advance, it lets you get away with telling it to figure out a lot of things for itself while the program is running. This kind of flexibility isn't free. It does a lot of things indirectly, it makes decisions for you and, if they turn out to need changing, it makes those changes as, and so on, while it is running, which requires a lot of computation. You actually could compile Python, but keeping the "exact syntax" presumably means keeping all of Python's capabilities to be flexible at runtime, so compiling would require essentially building a lot of the Python interpreter right into your compiled app. This, in itself, would just change the packaging and wouldn't buy you much in terms of performance. A lot of clever people are looking for ways to speed up Python without removing features, but it will probably never be possible to make Python as fast as Rust will eventually be, nor to make Rust as convenient as Python.
- FreeFull 11y agoHave you looked at Nim, perhaps? I haven't used it, but at first glance it certainly seems more Pythonic than Rust.
- drewm1980 11y agoYou might be pleasantly surprised to learn that python by default caches the parsing results between runs. If it makes you feel better, you can think of it as ~partially compiled :) But there is an inherent trade-off between having a lot of flexibility at runtime, and having aggressive code specialization and optimization at compile time. Well, I suppose you could combine those into one language, but you couldn't do both on the same piece of code...
- 11y ago
- gtirloni 11y agoWould it be possible to achieve near-Rustiness with modern C++14 and tons of warnings/errors enabled?
- the_why_of_y 11y agoMozilla has several million lines of C++ code. Do you think they would invest substantially in creating an entirely new language with a new ecosystem and from-scratch Servo rewrite if their C++ code could be made secure with C++14 and tons of warnings?
- gtirloni 11y agoIs that a no?