2 ms·
As an aside, I have been using Go a lot lately, and I have come to really appreciate the clean, simple syntax. (Go isn't pretty, but it's simple and really read
by lobster_johnson 14y ago
As an aside, I have been using Go a lot lately, and I have come to really appreciate the clean, simple syntax. (Go isn't pretty, but it's simple and really readable.) With that in mind, I'm a bit apprehensive about the way Rust's syntax has been going, to be honest.
Some of the things I hated about earlier versions have been resolved (such as lower case type names now being mixed case), but there are a lot of lingering stuff that I think make the language needlessly gnarly, in a Perl kind of way. For example, "::" just isn't a very good separator, visually; it litters the code with dots. The semicolon issue still irks me. Overall it's the proliferation of punctuation (the pointer prefixes, -> and =>, the new lifetime-ownership syntax, etc.) I consider problematic. Using underscore_separated_identifiers instead of camelCaseIdentifiers certainly works in Ruby, but Ruby has so little punctuation that it doesn't overwhelm, whereas with Rust it's just one more point off readability.
Looking at parts of the standard lib makes me unsure of whether it's just written in an obscure way (for example, getopts.rs [1]), or this is the way that Rust code will be written. I guess I'm apprehensive because modules that should be "simple" don't look simple, but remind me of unhappy hours spent reading Boost's source code. I know Rust is supposed to be lower-level than Go, but I always hoped that it would balance itself so that high-level stuff would feel appropriately high-level, but you could always dip lower into the metal to get the C-like feel.
Please pardon my wet blanket, the right thing would obviously have been to join rust-dev years ago. I'm still looking forward to doing something in Rust when it's production-ready.
[1] https://github.com/mozilla/rust/blob/incoming/src/libstd/getopts.rs https://github.com/mozilla/rust/blob/incoming/src/libstd/get...