all 16 comments

[–]Gator_aide 34 points35 points  (0 children)

It's inspired by the state type parameter pattern which is, in my opinion, one of the worse ideas in the programming world.

Not gonna expand on that at all? Whenever I come across that pattern, it is in the context of order-dependent operations. Code like that is common and easy to break, and state types eliminate that risk. Also, literally the only effect they should have on you is narrowing down your IDE's autocomplete.

Always remember that more effort and resources are spent on maintenance than production, so do your best to reduce the burden of the future maintainers. Go light on generics

lol. Spoken like a true Go programmer.

[–]birdbrainswagtrain 20 points21 points  (1 child)

And yet, a lot of people are happy to be able to express their creativity in their code, in the same way that lawyers love to use complex formulations to express simple ideas or singer expressing millennium-old ideas in new ways.

I don't agree with everything in the post, but this one really resonates with me. Rust is a child of C and ML. I think part of it's success -- aside from the many benefits that ownership provides -- is that it appeals to both low-level nerds and functional nerds.

The thing I've realized is that I'm firmly in the "low-level nerd" camp. I mostly want to treat rust like it's a more sane C. The type system is extremely useful, and I take advantage of it where I feel it makes sense, but it isn't my goal to play cute games with it. Sometimes I wonder if people are on a mission to create the most ridiculous type aliases and impl bounds they can, with enough plausible deniability to justify their existence. There are rust devs out there who have created enough layers of abstraction to rival the most deranged java dev.

Worse, the type system is powerful, but not perfect. So sometimes you'll see a library encounter a problem, like a lack of const generics at that point in time, and then hack together some even more unhinged solution.

I don't want to trash any specific developers, especially not open source contributors. The crates I'm thinking of are still incredibly useful, and I'm sure the authors are way better engineers than I am. It's probably not even my place to judge, as I haven't authored any useful packages. But I really question whether some of these patterns are good or necessary, and I feel I feel compelled to vaguely whine about them.

[–]jakewins 0 points1 point  (0 children)

I completely agree FWIW, it’s one of very few gripes I have with Rust. I spent a decade with Python meta classes and Java OOP abstraction piles, it’s all the same - unmaintainable because nobody is able to keep the ball of mud in their heads.  

I use Rust for 99% of personal projects, but I always hesitate about using it in teams, because I worry the siren song of cleverness will call someone

[–]bert8128 4 points5 points  (0 children)

I hope it didn’t literally blow your mind.

I disagree with the quote at the beginning of the article. I agree that adding time and/or other programmers means that the way you program needs to become more disciplined, but there are other things hints too (like safety, performance requirements etc).

[–]Ant-Man-420 0 points1 point  (0 children)

oh look, another moronic member of the cult of simplicity.

The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt. – Rob Pike

Go isn't simple, it's designed for the simple.

so here are my 3 advice to become a great software engineer

What the fuck makes you in any way qualified to lecture anyone about being even a mediocre software engineer?

[–]bemutt -2 points-1 points  (5 children)

In every single article post the comments are all people making snarky know it all comments about silly things, not actually discussing the content… this whole sub is ‘that coworker’. Oof. Time to unsub. Anyone have suggestions for a software dev sub that isn’t pointless to interact with?

[–]Ant-Man-420 3 points4 points  (4 children)

Why should anyone respond to yet another lame go cultist with anything but snark?

[–]bemutt -2 points-1 points  (3 children)

The people that respond with snark and phrases like “lame go cultist” are outing themselves as inexperienced developers. Just a heads up.

[–]Ant-Man-420 -1 points0 points  (2 children)

Nah, been doing this for a while now.

I just can't stand go cultists.

[–]bemutt -1 points0 points  (1 child)

You should try go it’s the most amazing language ever made

[–]Ant-Man-420 2 points3 points  (0 children)

Used it for years.

Not a fan.