7 ms·
I'm not sure if I'm the only one that this happens to, but every couple of months I end up re-learning Rust, and because I don't really have any use of it in my
by swagonomixxx 6y ago
I'm not sure if I'm the only one that this happens to, but every couple of months I end up re-learning Rust, and because I don't really have any use of it in my day to day job (Python and Go, some C++) I end up un-learning it, and then the cycle continues.
What kind of projects are a best fit for Rust, for those who are experienced with it? Any recommendations for projects to make Rust stick?
Thanks!
- Fiahil 6y agoHigh-throughput web APIs is a pretty good fit for a rust project. Otherwise, any data system leveraging heavy parallel computations.
- cmrdporcupine 6y agoYes, I have the same experience. I've 'learned' it many times, including from back when it was really obscure and a twinkle in Graydon's eye. I am a big supporter of what it is. But at this point in my life I'm not going to be able to dedicate a chunk of time to a fresh project of my own in it. I really would just like a $job working in it. But there's a bit of a chicken and egg problem there.
- estebank 6y agoSome companies, like the one I work at (https://developer.commure.com/ https://developer.commure.com/), will hire people to work on a Rust codebase even if their prior experience doesn't include it but are willing to learn. I would say it's worked quite well for us so far.
- jlokier 6y agoI just visited your link, as I would like a Rust job. Got back a page with nothing but this: We're Sorry... Commure is unavailable in your location. We’re required to comply with US sanctions laws that restrict the use of our site in certain jurisdictions. Because of this, our services are not available in Crimea - Region of Ukraine, Cuba, Iran, Iraq, Syria, North Korea and other US embargoed countries. But hold on a minute. I'm in England! Whatever happened to the special relationship? :)
- cmrdporcupine 6y agoI also went to look and while I didn't get this error (I guess Canada is still special!) I also didn't see a jobs page. So no Rust for me!
- estebank 6y agoYou're probably looking for https://commure.com/careers https://commure.com/careers :)
- cmrdporcupine 6y agoMontreal, eh? Not hiring remote? (FWIW, I'm southern Ontario. Currently @ Google for last 8.5 years. I have had health care dev experience before, and yes, it was terrible. No React experience, but 20 years general software dev experience at basically every part of the stack. Currently doing embedded though.)
- estebank 6y agoGiven the current situation we are all working remotely, but yes, we are not hiring "remote" engineers. Having said that, please do not hesitate to apply regardless so that we can continue talking without spamming this site :)
- detaro 6y agowonder if that's a GDPR-wall gone slightly wrong (same message here in Germany)
- estebank 6y agoOh no! Can you access https://commure.com/ https://commure.com/? We are in the health-care space building tools and services to use FHIR[1] data. I'll raise the problem internally to fix our issue with the documentation site. Sadly, we are not currently hiring people outside of the US and Canada. [1] https://www.hl7.org/fhir/overview.html https://www.hl7.org/fhir/overview.html
- nurettin 6y agoRust is great for rewriting 30 year old unix utilities and internet activism.
- nicoburns 6y ago> What kind of projects are a best fit for Rust, for those who are experienced with it? Anything that you're using C++ or Go for.
- mamcx 6y ago> I don't really have any use of it in my day to day job (Python and Go, some C++) Find one of the most simple utility (probably a CLI) you have and rewrite it. I have a lot, and find useful to turn some python stuff so is easier to ship (surely Go work here...)
- oefrha 6y ago> I have a lot, and find useful to turn some python stuff so is easier to ship (surely Go work here...) That’s basically how I learned Go. The language is very simple coming from practically any imperative language, once I stopped hating on the directory structure imposed on me (Go module helped) and went through the short language tour, code basically flowed. Even got a nice productivity boost over Python when dealing with concurrency. Rust is totally different. Want to deal with a few strings? Fight with borrow checker for an hour. Want some functionality outside the practically nonexistent standard library? Frantically try to find a library, turning up either none or a bunch without clear winner. Realizing that examples are outdated. Then fight with borrow checker for another hour. After a while I ask myself, why the hell should I subject myself to this torture when I don’t need to squeeze out every ounce of performance? Switch to Go or Python, be done in an hour. esr had a similar experience: http://esr.ibiblio.org/?p=7294 http://esr.ibiblio.org/?p=7294 > In practice, I found Rust painful to the point of unusability. The learning curve was far worse than I expected; it took me those four days of struggling with inadequate documentation to write 67 lines of wrapper code for the server. > Even things that should be dirt-simple, like string concatenation, are unreasonably difficult. The language demands a huge amount of fussy, obscure ritual before you can get anything done. > The contrast with Go is extreme. By four days in of exploring Go I had mastered most of the language, had a working program and tests, and was adding features to taste. (Not saying Go doesn’t have pain points. Specifically for writing command line tools, the argument parsing story is garbage.) Oh and I did end up learning Rust to a reasonable degree, one way or another.
- estebank 6y agoI always found that esr post quite bizarre. He's the self-proclaimed best known software developer in the world, having written quite a bit of C over the years and yet doesn't see the need or benefit of differentiating between heap allocated strings (String) and string slices into them (&str)? Complaining about Rust's documentation is a bit weird because even back in 2015 there was quite a bit of good documentation, let alone 2017 and the language encourages good crate API documentation. I also find it ironic that the author of The Cathedral and The Bazaar would say: > The Rust community appears to have elected to use the decentralized nature of their crate system (which undeniably has some very nice technical properties) to execute a swarm attack on the design space around the language. Which is wonderful in theory but seems to be failing in practice. There are certainly deficiencies in the language and the ecosystem, but to me they stem from immaturity, only 5 years out from 1.0, and not from any fundamental major mistake. It always seemed to me that what happened here is what happens often with a lot of experienced people that try Rust and bounce, where they approach the endeavour as "I know how to program, this will be easy, I just have to map my already existing mental framework to the new language" and hit walls early on because Rust is different enough but they didn't anticipate it. Functional languages have similar issues, but the more "esoteric" syntax helps flip a switch in people's minds to learning mode. This happened to me back in May of 2015 and it wasn't until I picked it up a few months later that it clicked.
- gameswithgo 6y agoWhen performance and correctness are both high priorities Rust is likely a wise choice.
- ncmncm 6y ago...presuming, also, tooling maturity and ready availability of experienced, competent staff are not. If you proceed anyway, be sure candidates crossed over from C++ because, underneath the syntax fluff, they will need to understand resource management and performance cost of architectural choices. Finally, if Rust doesn't work out quite as well as hoped, they can pivot to mature tooling without loss of momentum.
- rch 6y agoI've recently started using Vector for observability data in a side project, with promising results. -- https://github.com/timberio/vector https://github.com/timberio/vector
- siraben 6y agoWriting interpreters in any language is a great exercise. And in Rust you can take advantage of ADTs, traits and unit testing to implement an interpreter of your choice. Plus there's also great parser combinator libraries you can use. Here's a very simple lambda calculus interpreter I wrote some time ago.[0] [0] https://gist.github.com/siraben/5209bfc7165c45aec18eeae852ec7d62 https://gist.github.com/siraben/5209bfc7165c45aec18eeae852ec...
- garfieldnate 6y agoI learned Rust while implementing a ray tracer. I followed the book _The Ray Tracer Challenge_, by Jamis Buck. It was fantastically fun, and was a great application for Rust!