Avatar

fuck_u_spez

fuck_u_spez@lemmy.fmhy.ml
Joined
1 posts • 31 comments
Direct message

Not really, the way you write, leaves a fingerprint itself, so with a little bit of AI it’s possible to link personal/identifiable profiles with pseudonymous/anonymous ones.

permalink
report
parent
reply

Yeah this was my initial reaction way back when I first heard of Rust as well (sometime around 2015 or so I think). TBF it’s definitely not on the same level as e.g. Haskell. But it’s generally I would say less verbose than go (or at least has verboseness where it makes sense compared to go IMHO).

A good article about this: https://matklad.github.io/2023/01/26/rusts-ugly-syntax.html

The generic system is also (way) less powerful compared to Rusts (The trait type system/type-classes is really a nice Haskell-inspired thing, that I don’t want to miss anymore). Also the lack of sum types and proper pattern matching makes go more verbose IMHO.

permalink
report
parent
reply

That’s actually where the title is coming from…

permalink
report
parent
reply

It’s all about experience IMHO, just start small projects (and in my experience ignore all these “design patterns”, I learned quite a lot of patterns, but I’m not really using any of them nowadays, maybe sometimes intuitively, (as this thread shows, “dependency injection” which can be a fancy term for generic function parameters).

Well maybe learn them, but take everything with a grain of salt, I think. Intuitively thinking is often better (with the drive to do it better). Try to write code such that it’s easily readable exactly focused on the problem that it’s trying to solve, not anything fancier (this is actually a very simple but effective Mantra). Otherwise it often leads to overengineering (all these “design patterns” for example…), or premature optimization. (E.g. something like the popular book “Clean code” is IMHO full of antipatterns, like the examples are definitely not something I would do, they are inefficient, boilerplate, and often make the code unreadable).

permalink
report
parent
reply

Yeah that’s my point, I don’t see a use for factories here, because it’s possible to just use generic parameters (whether it’s constructors or function arguments).

permalink
report
parent
reply

I guess I have to start calling function invocation with generic parameters, fancy names (like “dependency injection” ^^)

permalink
report
parent
reply

I say it’s all about data flow and composability, if it’s pretty much always in one direction (modular tree structure/architecture) then you just don’t need all these “patterns”…

permalink
report
parent
reply

… until you’ve heard of Rust :)

(I think Go takes all mediocre language features together and makes an even more mediocre language TBH, take error handling for example, or generic programming (which I agree should be used sparingly, but is super useful if you need it))

permalink
report
parent
reply

It’s probably a general symptom of what people call OOP nowadays, in a more functional composeable world (where I’m living in currently). You just use function parameters and interfaces (or as Rust calls it “Traits”). But I still think in OOP, this is enough as well and the dataflow is more clear.

permalink
report
parent
reply

Thanks for the write up, but as I said, I know and I’ve read all about that already. I still cannot see, why a simple function argument and an interface isn’t enough (you can probably already call that “dependency injection” if you want to get fancy)

I guess I have just divorced with OOP and the “necessary” “design patterns”…

Things are more simple and less boilerplaty now for me :).

permalink
report
parent
reply