6 ms·
Practical Networked Applications in Rust, Part 1: Non-Networked Key-Value Store
- cpursley 7y agoInteresting! I'd love to take a structured distributed systems MOOC or course in a modern language well suited for the domain like Rust, Go, Scala or Elixir/Erlang. Does anyone know if something like this already exists?
- lanekelly 7y agoMIT's 6.824 Distributed Systems course is taught in Go. https://pdos.csail.mit.edu/6.824/index.html https://pdos.csail.mit.edu/6.824/index.html https://www.youtube.com/playlist?list=PLpl804R-ZwjKCOwWpTZ21eeaBS3uBrMfV https://www.youtube.com/playlist?list=PLpl804R-ZwjKCOwWpTZ21...
- cpursley 7y agoThis is exactly what I was after, thank you!
- zinclozenge 7y agoThe company, PingCAP, that made the course in the linked article also ported MIT 6.824 to Rust as part of their talent plan. You can check it out here https://github.com/pingcap/talent-plan/tree/master/dss https://github.com/pingcap/talent-plan/tree/master/dss
- morty_s 7y agoI’m currently reading through everything. It’s pretty cool, been seeing more and more stuff like this lately. It could serve as a great second or third project for someone learning rust and the rust-ecosystem.
- PunksATawnyFill 7y agokey/value store
- foobar_ 7y agoHow hard is it to build a c compiler with garbage collection and compile all the the pre-existing code with safe garbage collection ?
- mynegation 7y agoYou don’t even need a compiler for this. https://en.m.wikipedia.org/wiki/Boehm_garbage_collector https://en.m.wikipedia.org/wiki/Boehm_garbage_collector
- foobar_ 7y agoI know about that one but can I compile mysql, httpd and all its dependencies with it enabled? I don't care if it is 100x slow.
- stormbrew 7y agosure. free() just becomes a noop. But probably they'll leak a bunch because conservative gc is kinda bad, doubly so in code that isn't made for it. (it's really a little more complicated than that in codebases, like mysql, that probably manage their own allocation and actually care about page level stuff)
- felipellrocha 7y agoI think this is asking the wrong question
- chrismorgan 7y agoYour question is utterly off-topic on this thread. But the short answer is that you can’t, it’s fundamentally impossible. Garbage collection still requires that memory access be principled, so that it can determine when something is no longer in use; but things like pointer manipulation in C scupper that.
- adamnemecek 7y agoWhy bother with this?
- sittingnut 7y agoanother rust hype article. with all that, readers of likes of hn, certainly would have a skewed view of industry.
- mcqueenjordan 7y agoYour comment isn't useful. Anything that ever becomes something was at one point nothing. Rust gets attention because it's doing new things. Important new things.
- rgoulter 7y agoYeah. www.paulgraham.com/pypar.html In Python Paradox, the author argues that it's a signal of quality that someone would take the time/effort to learn Python. (Python is new and wouldn't land them a job). Now in 2019, Python is popular. But I think it's fair to say instead that Rust wouldn't be a good choice if you wanted to get a job using a language which is popular in the industry.
- AlexCoventry 7y agoIt would be if you wanted to get a job with people who value developer ergonomics, though.
- paavohtl 7y agoFrom my experience people learning Rust are not people who are learning a language to get a job. They are usually experienced developers with jobs who know at least couple of languages, and learn Rust to expand their toolbox.
- ps101 7y agoI'm learning Rust because: 1. I want to add a low(er) level language to the ones I already know and use. 2. Though I did some C/C++ in high school, getting really into depth with C++ at the moment seems really daunting. 3. I don't need it for a job at this point so I can afford to learn a less popular language that can potentially have a future and which exposes you to new ways of thinking about code.
- civicsquid 7y agoI also worked through the courses in this series, up through Part 4. I thought it was a great way to get introduced to Rust, especially when concurrency comes into play. Having only ever written this sort of code in C/C++/Java, the way Rust required me to rethink my design to properly incorporate its concurrency model was really interesting to me. For some reason sharing "references" in a formal way felt a lot different than what I was used to, and I'm not sure why. I'd say I prefer it, perhaps because it made my design feel more deliberate.
- Scarbutt 7y agoAnother nice(more lightweight) hands-on Rust tutorial that I came across with: https://docs.rs/csv/1.1.1/csv/tutorial/index.html https://docs.rs/csv/1.1.1/csv/tutorial/index.html
- SpoofedHello 7y agoQuestion for Rust programmers, do you still use Rust for quick hacking and exploration/prototyping or reach for another tool? Rust is getting more attractive everyday, I wonder if there is something about the language that highly influences lib authors to write quality stuff or if the community has a high ratio of experienced devs.
- nixpulvis 7y agoDepending... if it's truly something quick I need to do, that is disposable, I use Ruby/shell script 9/10 times. This includes things like, restarting my computer, connecting to WiFi, checking the time in London, doing math, hitting an API. Prototyping ideas is great in Rust, since it's compiler/type system are a nice pair of helping hands. I will say, a proper first class REPL would be nice. Maybe some day.
- heavenlyblue 7y ago>> Prototyping ideas is great in Rust Agree. I tried to prototype in Python, but even with great IDE support it's hard to manage constant refactoring when you're moving fast.
- yoklov 7y agoIt depends on what I'm doing, but generally yes I'll write it in Rust unless I think it's a bad fit (e.g. if it's something that's better off as a shell script or whatever I'll just use that instead).
- morty_s 7y agoSo a couple things. The community does have experienced devs. But the language is just fun and expressive to use. IMO all the “fighting with the borrow checker” stuff is overblown. If you do get some complaint from the compiler, it is usually very easy to fix. Moreover, rust is very expressive. The functional facilities coupled with combinators make the language very ergonomic to use. I use the language for almost everything I can. If it’s something that would normally be a quick script, I will still reach for rust but not be very constrained. If the project turns into something more it’s easy to refactor and decrease memory usage etc. Testing is kind of a “first class citizen” so that plus “compilation driven development” make it a pretty hackable tool.