5 ms·
I wouldn’t call Rust easy to develop in.
by kaba0 3y ago
I wouldn’t call Rust easy to develop in.
- mcronce 3y agoI would
- cmrdporcupine 3y agoIt's like skiing (or maybe riding a bike for the first time.) Steep learning curve then becomes somewhat instinctual and fairly routine and trivial and fun. Until you get into the tricky terrain, and then it will put up resistance. But usually for your own good.
- neoCrimeLabs 3y agoRolling with the analogy, I think learning rust a lot more like snowboarding, and C/C++ is more like learning to ski. I fell a lot more learning on snowboard than on skis. Skis had a much quicker early learning curve, and made me feel over-confident. Several times I found myself on trails too steep for my skills, and the skis made me have to work hard to recover. Most of the techniques I learned as a beginner didn't work beyond green trails, and blues, blacks all required new, harder, techniques. With snowboarding, because I fell a lot more early, my confidence slowly grew. Meanwhile the techniques I was learning on the greens, and the tool in general, that were HARD to learn on the greens were actually EASIER on the blues, and continued to work on the black-diamonds. Granted I also had to learn new techniques on the harder trails, but the beginner techniques and the slower development made me MUCH more confortable across the whole mountain much faster than skis. Double-blacks are more like unsafe rust. :-D
- cmrdporcupine 3y agoYeah, fair, I often make the same point about snowboarding vs skiing. Skiing is "easy" to pick up but difficult to master. Most people on the hill are just backseating it down in bad form, like they learned in their first week. Getting good form is ... a lifelong effort. Snowboarding is brutally hard to pick up at first, unless you hate your tailbone. I have never really tried, I'm too old for that kind of pain. But I'm a telemark skier, so the worst of both worlds :-) Maybe telemark is like advanced C++. But probably more like Haskell.
- arethuza 3y agoIsn't that the same for most languages once you move beyond vanilla Java/C#/Go etc.?
- cmrdporcupine 3y agoRust has "opposite" call semantics from what most people are used to, trained since they were new programmers. Sort of. It takes a while to think like the borrow checker and get used to the way arguments get passed around. It's like using C++ and doing std::move for every non-reference argument.
- alternatex 3y agoSounds like the transition from OOP to functional. It feels opposite before you become comfortable.
- shpongled 3y agoI would as well. I've also placed in the top 100 of advent of code before... using Rust :) I think once you get familiar with it, it is just slightly slower to write than python.
- duped 3y agoI use it professionally and can't disagree more with this statement.
- shpongled 3y agoI also use it professionally, for both web apps and HPC algorithms. Are there some things faster to write in python? Sure. But I find the mental overhead is significantly less (for me) in Rust, and overall dev time is about equal, since I typically hit far fewer bugs and spend less time reading docs in Rust. I can't remember the last time I hit a footgun in Rust. Seems I hit one every week in python. We recently migrated a ~10k SLOC Django JSON API server to axum/sqlx (Rust). I couldn't be happier - faster to ship new features, faster to refactor, fewer bugs, and response times got about 10x quicker.
- duped 3y agoI work a lot on async code with data structures that need interior mutability and it's kind of a pathological case for borrow checking. Everything is effectively wrapped in Arc<RwLock<_>> which adds a bunch of noise to method implementations.
- fleventynine 3y agoI agree with this statement if my data structures map cleanly to Rust's preferred single-ownership, which most problems in my domain do. Sometimes I do run across problems that are difficult to express in Rust without resorting to interior mutability, and it can slow me down to figure out the best way to model my data.
- shpongled 3y ago