I’m learning Rust at the moment and I too think I have some reservations with its syntax. Most of these reservations come from my strong preference for functional programming over OOP.
I am unsure if I like method-syntax period, even if it isn’t inherently OO. Chaining just makes me feel uncomfortable in a way piping doesn’t.
Also it seems idiomatic for values of enumerated types to be written Type::Enum, which seems ugly and unnecessary.
Author is removing every part of the initial function, admitting there are reasons those things are there in the first place, only to be left with a slightly more verbose version of an equivalent python implementation. Well then just use python?
Author also doesn’t seem to understand what static polymorphism is/why this specific function is generic. It’s not strictly about “bytes”, it’s about avoiding virtual calls/have nicer API. Author conveniently omits mentioning the clone() calls their version requires from the client call. Or they would make everything automatically cloned, and I already addressed that in the first paragraph I
Finally, standard libraries are notoriously bad examples of “normal” code. They mention it, but still declare that that their example is relevant. If the functions I wrote were compiled and used thousands of times per day I would probably worry more about splitting generic and concrete implementations. I’ll take this over anything in the C++ standard library (which is a much more relevant language to compare rust with than e.g. python)
I’m learning Rust at the moment and I too think I have some reservations with its syntax. Most of these reservations come from my strong preference for functional programming over OOP.
I am unsure if I like method-syntax period, even if it isn’t inherently OO. Chaining just makes me feel uncomfortable in a way piping doesn’t.
Also it seems idiomatic for values of enumerated types to be written
Type::Enum
, which seems ugly and unnecessary.What’d you make of this article?: https://matklad.github.io/2023/01/26/rusts-ugly-syntax.html
About the article you linked:
Author is removing every part of the initial function, admitting there are reasons those things are there in the first place, only to be left with a slightly more verbose version of an equivalent python implementation. Well then just use python?
Author also doesn’t seem to understand what static polymorphism is/why this specific function is generic. It’s not strictly about “bytes”, it’s about avoiding virtual calls/have nicer API. Author conveniently omits mentioning the clone() calls their version requires from the client call. Or they would make everything automatically cloned, and I already addressed that in the first paragraph I
Finally, standard libraries are notoriously bad examples of “normal” code. They mention it, but still declare that that their example is relevant. If the functions I wrote were compiled and used thousands of times per day I would probably worry more about splitting generic and concrete implementations. I’ll take this over anything in the C++ standard library (which is a much more relevant language to compare rust with than e.g. python)