this post was submitted on 01 Nov 2023
139 points (96.0% liked)

Programming

17538 readers
77 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 2 years ago
MODERATORS
 

Assume mainstream adoption as used by around 7% of all github projects

Personally, I'd like to see Nim get that growth.

you are viewing a single comment's thread
view the rest of the comments
[โ€“] [email protected] 2 points 1 year ago* (last edited 1 year ago) (1 children)

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

[โ€“] [email protected] 1 points 1 year ago* (last edited 1 year ago)

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)