7 ms·
Put more time into it at the beginning and save a lot of time later Rust is ideal for that if you have the opportunity to use it
by kitkat_new 6y ago
Put more time into it at the beginning and save a lot of time later
Rust is ideal for that if you have the opportunity to use it
- tudorgirba 6y agoWhat exactly would you put time into? And in what way do you see Rust having any meaningful influence on how one can figure a system out?
- kitkat_new 6y agoit's about reducing maintenance costs - Rust reduces how much you have to figure out later
- jokethrowaway 6y agoThe down-votes on your post are probably by people who are not happy with the status of tooling / debugging / IDEs for rust - but I totally see your point. A lot of time spent maintaining / understanding the codebase is time spent thinking about edge cases and about what can go wrong. I had a similar experience with Haskell, but in Haskell you also have to think about laziness and what the computer will actually try to do, which complicates things a bit.
- vasilakisfil 6y agoI use Rust everyday in the past 15 months. The programming language is just a very small part of the whole picture. Usually you integrate with many 3rd party systems that don't always provide all the guarantees they claim (so you get many edge cases) and understanding these things is not trivial. If it was only for understanding the code it would be easy. And actually having worked with both Rust and Ruby, the easiness of binding.pry and debugging is unbeatable. Rust gives you guarantees how the code behave, but when you have input from external sources (user input or external service input), it's much easier to understand what's happening (=debug) in a dynamic language.
- tudorgirba 6y agoThat is an interesting take. In fact, I argue that people should always choose a technology by how easy it is to figure a problem out two years into development. If you find Pry useful, I'd be curious what you think about Glamorous Toolkit.
- alpaca128 6y ago> it's much easier to understand what's happening (=debug) in a dynamic language. I would argue the opposite. It's easier to understand what's happening when you know at a glance what datatypes are involved, whether they're used by value or reference and how each case is handled. When I last worked with Python it was rather time consuming to fix bugs that crashed a script at some point after 10 minutes of processing, caused by code that would have thrown a clear compiler error in some languages and would have been fixed in seconds. And when I look at e.g. a Rust function signature I immediately see what kind of data is used as arguments and what's passed back in the result. Meanwhile in JavaScript you just need to forget a symbol in a check and suddenly it won't know the difference between "false", "null" and "undefined". You are right about integrating third-party systems, but I still prefer the approach where possible issues are discovered as early as possible.
- valenterry 6y ago> whether they're used by value or reference Or even better, if both is the same. That's the reason why, as much as I like Rust, I would never use it for a project where performance is not critical.
- pdimitar 6y agoRust is absolutely amazing and made me a much better programmer. But programmer ergonomics don't seem like a focus of their team currently. I can only hope for Rust 202X edition that can introduce new syntax / deprecate another and make certain things clearer (even if that means explicit with a little writing here and there). Lifetimes and traits in particular need a lot of upfront investment to grok intuitively, and the fact that some core aspects of the language are implied can later hit your assumptions really hard and confuse you for a while. At least that's happened to me, maybe I am just dumb and mediocre though.
- tannhaeuser 6y agoThe (unrelated topic)-to-Rust-fanboyism hop count is strong on this subthread. The amount of brain wankery you initially put in your architecture is inversely proportional to onboarding time for new staff. This problem is no stranger to Java (and Rust, it seems) projects.