9 ms·
I keep trying to learn rust but fail miserably. They do say on their website that there's a hump that you have to climb over before everything fits into place,
by djhworld 10y ago
I keep trying to learn rust but fail miserably.
They do say on their website that there's a hump that you have to climb over before everything fits into place, which is probably applicable to everything you'll learn, but sometimes I think that hump is too much of a hurdle
- steveklabnik 10y agoHow are you trying? What are you getting stuck on? I'd love to improve things.
- q3r3qr3q 10y agoI'd get excited and go through some tutorial on their website, probably the main? tutorial, bu then when you get to the lifetimes section is seemed to get really complicated instantly. I tried twice and think I hit the same problem. Maybe some more good examples would help?
- steveklabnik 10y agoMakes sense! I'm working on a second draft of the book right now, and it's making that stuff more clear. http://rust-lang.github.io/book/ http://rust-lang.github.io/book/ is the draft; the lifetimes bit hasn't landed yet though.
- rjammala 10y agoDid you go through these screencasts? http://intorust.com http://intorust.com
- cbHXBY1D 10y agoNot specifically about your book, but I would love if there was a quicker way to find methods in the docs. Right now, if I want to find the methods used by BTreeMap you have to wade through a good amount of information until you can find how to just get the keys. I'm currently on mobile where the issue is more prominent.
- wyldfire 10y agoIf I don't find what I'm looking for from the docs, I often use ripgrep on a copy of the rust repo locally to find answers.
- travv0 10y ago> I often use ripgrep on a copy of the rust repo locally to find answers I mean, that works, but it's a workaround and not a solution.
- steveklabnik 10y agoAre you missing the search bar at the top? Typing "keys" in shows BTreeMap's keys right away, even https://doc.rust-lang.org/stable/std/?search=keys https://doc.rust-lang.org/stable/std/?search=keys That said, yeah, I hear you. It can still be tough sometimes. At some point, I'd love to work with some sort of information design / UX person to totally re-do rustdoc's output. There's a surprising number of thorny problems there. But there's always so much to do...
- nnethercote 10y agoIf you click the "[-]" symbol at the top right of a docs page it collapses all the text and just shows the method signatures. Then you can click the "[+]" symbol next to any single method to get full details.
- shriek 10y agoI'm also in a similar boat but my primary thing being that I learn by doing and since it's branded as "system programming" I immediately think of big projects like kernels and drivers. I wish there were some small projects that I could do apart from just doing "project euler" that would be helpful to me. I even bought raspberry pi to learn rust but don't quite know what to do with it and rust.
- steveklabnik 10y agoMakes sense! Have you seen http://www.chriskrycho.com/2016/using-rust-for-scripting.html http://www.chriskrycho.com/2016/using-rust-for-scripting.htm... ? Maybe something like that can be of inspiration.
- nostrademons 10y agoThere are a large number of projects on Cargo that maybe-perhaps do something useful, but don't get much love in the testing/documentation/polish department since the authors tend to move onto other projects. My personal wish list: Varints: https://crates.io/crates/varint https://crates.io/crates/varint Bloom filters: https://crates.io/crates/bloom https://crates.io/crates/bloom Iron: https://github.com/iron/iron https://github.com/iron/iron All the accessories for Iron: authentication middleware, integration with OAuth2, cookie-signing, integration with templating systems, etc. Also, an omakase framework (like Django or Rails) that pulls together a bunch of useful libraries into one crate that you can just use (with good docs) and not have to wire everything up. Websockets: https://github.com/cyderize/rust-websocket https://github.com/cyderize/rust-websocket or https://github.com/housleyjk/ws-rs https://github.com/housleyjk/ws-rs Server-sent events. I don't see a good alternative for these yet. ElasticSearch: https://github.com/benashford/rs-es https://github.com/benashford/rs-es or https://github.com/erickt/rust-elasticsearch https://github.com/erickt/rust-elasticsearch or https://github.com/KodrAus/elasticsearch-rs https://github.com/KodrAus/elasticsearch-rs An easy documentation/website generator for small libraries, that pulls examples, tests, and README files out of GitHub, runs RustDoc, and generates a professional-looking website that provides all the info that you need to get started with a library, with a minimum of extra effort for the library author. Basically, automate the job of going through libraries built to scratch someone's personal itch and "productizing" them. Any of these could be a good project for a beginner, since there's already a lot of existing code to learn from, a small well-defined task, and an existing maintainer who has an incentive to help. Basically, just take a library, try to use it in a small test program (Linus's Law: "Never try to make a big important program. Always start with a small trivial program, and work on improving it"), and if anything is difficult or doesn't work right, figure out how to make it less difficult for the next person who runs across it and submit a pull request with that. As an added bonus, you can learn a lot of domain knowledge or basic CS data structures through digging through this, and that transfers to programming outside of Rust.
- lacampbell 10y agoNot OP, but as someone who theoretically would like Rust - I'll bite. Maybe my usecase is a common one. I understand memory management in C. I understand it modern C++ (destruction when going out of scope, smart pointers etc). Basically, a description and discussion of borrow-checking for people who have already used system programming languages would be really helpful. I feel like the book is targeting people who have only used garbage collected languages. Or is the memory management of rust so novel it can't be described in those terms? I find the concepts aren't very concrete to me.
- fuine 10y agoHave you tried looking at https://github.com/nrc/r4cppp https://github.com/nrc/r4cppp ?
- lacampbell 10y agoThat looks like exactly what I'm after actually. I'll read this next time I try rust.
- steveklabnik 10y agoIt's trying to be accessible to those people, but not strictly for them. I don't think the issue here is that it's for GC'd users, but that it's trying to explain things from whole-cloth, where you're looking for a direct comparison, "c does this, rust does that." I try generally to keep other languages out of Rust's docs for various reasons, but agree that these kinds of resources are useful; I wrote "Rust for Rubyists" after all! I'm hoping that others will step in and fill this gap; the repo in my sibling is a great start.
- papaf 10y agoWhat are you getting stuck on? I'd love to improve things. I feel I am getting over the hump of learning rust now and coding in rust is becoming less frustrating for me. However, one thing that slows me down is the lack of indices in the documentation. For instance, if I want to know the return type of a vector len() I go here: https://doc.rust-lang.org/std/vec/struct.Vec.html https://doc.rust-lang.org/std/vec/struct.Vec.html .. and then I have to search the web page for all instances of "len". It would be good if there was an index similar to Javadoc, Godoc or Doxygen. There might be a good reason for not having the index, but as a beginner it is lost on me.
- steveklabnik 10y agoTwo things: If you click the little [-] button, you'll get an index for that page. If you use the search bar at the top, https://doc.rust-lang.org/std/vec/struct.Vec.html?search=vec%3A%3Alen https://doc.rust-lang.org/std/vec/struct.Vec.html?search=vec... will let you go right to the method. (In this case, you have to know that it's slice::len though) Does that help? EDIT: UX is hard! Glad people are discovering this. It's the same symbol HN uses, incidentally...
- papaf 10y agoThanks, thats very helpful. I did not know about the minus sign. A polite suggestion - maybe the link marked [-], that takes you to the index, could be labelled "index".
- steveklabnik 10y agoWell, it's not so much that it's an index, it's that when you have a page with only signatures, it feels like an index. There's no redirect, just some JavaScript :)
- phaylon 10y agoMaybe 'collapse' and 'expand' would be good substitutes for the '-' and '+' at the top?
- swuecho 10y agosame feeling here. There are docs here and there, but not good. I am waiting a good book on rust. similar to Haskell, I really did not get much until the book http://learnyouahaskell.com/ http://learnyouahaskell.com/ currently, "The book" is too dry.
- dj-wonk 10y agoProgramming Rust by O'Reilly is in early release and I recommend it.
- eggy 10y agoI am having the same inertia. I have resorted to using Nim for now, and it is going real well. I would like to rewrite the Nim stuff in Rust to compare for my own sake when I have done something substantial in it.
- dagmx 10y agoHave you tried: http://rustbyexample.com/ http://rustbyexample.com/
- jokoon 10y agoA good language should be like a good game: easy to learn, hard to master. We don't care about expert cases, we only care about getting productive ASAP, which means having students hoping into a language and learning it quickly. Solving the details is easy: just teach coding discipline and enforce good practice and do code reviews, and discourage "throwable" code. Security is not only the job of a programmer, it has many many facets. In short: english is better than latin or esperanto. The more time and space you need to describe your language, parse it or the more character or syntax it requires and the longer it requires for an individual to read a program and guess what it does, the worse it is. I'm getting a little tired of the "novelty" languages these last few years. Maybe I'm more conservative and don't like the hype. To me only D is relevant and it has been there for a long time now.
- rweichler 10y agoLuaJIT + C have suited me just fine for systems programming. I don't care about security, so I find it hard to care about Rust. All I care about is lessening the burden on me as a programmer. I think Rust may be useful in cases like ripgrep, where you basically rewrite an existing, established tool or service used by many to be as performant and secure as possible. But other than that niche use-case, I don't think Rust will catch on in the long-term.
- burntsushi 10y agoAs the author of ripgrep, I can assure you, the burden on me as the programmer was lifted quite a bit! I probably wouldn't have been able to build it otherwise. (Not because it's physically impossible, but because it would have taken too much time.) It's not like I just rewrote grep. ripgrep is built on a large number of libraries that are reusable in other applications. You can see my progress on that goal here: https://github.com/BurntSushi/ripgrep/issues/162 https://github.com/BurntSushi/ripgrep/issues/162 (And those are only the ones I wrote, nevermind all of the crates I use that have been written by others!)
- rweichler 10y ago
- Skalman 10y agoFor me the hump was from the get-go. Following the book, I installed Rust directly, but then i realized that I should've installed it via Rustup. Next, I want a good editing environment, so I install VS Code and Racer, but then I find out that I can't use Clippy unless I use Nightly... and I'm not interested in using Nightly, so I'll wait.
- steveklabnik 10y agoRustup has been in beta for a while, which is why we don't recommend it in the book. Soon though!
- sidlls 10y agoI just installed the nightly tarball and used my usual editor (emacs). I'm not sure what the editing environment has to do with a learning hump. Now, coming from loose dynamic typed languages or really terrible C or C++ code bases is another matter.
- deleted 10y ago[deleted]
- staticassertion 10y agoFeel free to stop by the IRC and ask questions/ seek help - lots of people there who are willing to answer your questions. Or the rust forums: users.rust-lang.org Or the rust subreddit: reddit.com/r/rust
- deleted 10y ago[deleted]
- fizzbatter 10y agoIt's worth it, imo. I was in your boat a few months back and hated every minute of it. With that said, i'm still not 100%. I semi-regularly see syntax that makes me go "Wat is what!?", but then i sit for a moment and understand it. Rust introduces a lot of visual baggage and that seems to cause me syntax blindness.. not enjoyable. Unfortunately though, i'm back on Go. I want to be on Rust, but i had to pick a language for work and i can't ask my Team to go through what i did. Rust, despite the safety, is too unnatural for our larger codebase. Luckily i think Rust has seated itself as the language we will use if the need is truly there. Unfortunately though, not everything.. just the specific things that need it.