2 ms·
Violently agreeing with this. Both extremes hinder productivity, just at different times during the development cycles. It's easy to confuse type systems with
by klabb3 4y ago
Violently agreeing with this. Both extremes hinder productivity, just at different times during the development cycles.
It's easy to confuse type systems with correctness or clarity of thought. I've fallen victim to this myself – "oh this didn't map well to Rust's type system, I must be thinking wrong", kinda. It tickles this ocd nerve and I lose focus on the problem I'm trying to solve, often without realizing that I'm just wasting time.
I also like Go for these reasons. It's dumb and predictable, which let's me focus on the problem I'm solving. My only annoyance is really verbosity and small amounts of boilerplate.
- throwaway894345 4y agoYeah, and there is a time and place for rigorous static analysis. If you’re writing embedded code for a car which is mission critical and prohibitively expensive to update frequently (firmware updates require people to bring their cars into dealerships for technicians to update), then you probably want to verify everything you can. On the other extreme you have SaaS software where you can get a bug report, diagnose it, and deploy a patch in an afternoon and no one’s life is at jeopardy (but the rewards for rapid iteration are huge). Unfortunately, this nuance is missing from the discussion with people mostly talking about software as though it’s all mission critical / infrequently updated / rapid iteration doesn’t matter which is exactly incorrect for the general case.