5 ms·
Not sure if it's because of rust (not super familiar with the language) but the syntax seems really awful
by derision 7y ago
Not sure if it's because of rust (not super familiar with the language) but the syntax seems really awful
- deleted 7y ago[deleted]
- nerdponx 7y agoI'm not a Rust user either. It's a lot of "symbol noise" to me, but I assume this is the kind of thing you get used to reading after a while. However it looks very annoying to type all those symbols, even if you have some kind of customized ergo keyboard.
- anp 7y ago> some kind of customized ergo keyboard I use an ErgoDox, and while my layout isn't customized for writing mox invocations, it hadn't occurred to me that this might be a blind spot in my thinking about ergonomics. Good point!
- WhatIsDukkha 7y agoI didn't really see anything that was weird whatsoever from a normal day to day programmer (Rust or not) perspective so I wouldn't take his feedback to heart or worry about your ergodox.
- nerdponx 7y agoIt seemed like a high ratio of "non-alphanumeric symbols" compared to a lot of other code that I read and write.
- WhatIsDukkha 7y agoI suspect you are keying on some of the Rust language bits in the middle of his syntax. _ is "don't complain because I don't use this variable" || is the syntax around Rust closures foo! is a Rust macro Why this is desirable is that we can program in real Rust while using some simple macro expansion not to create a free standing language for gui building? Learning Rust via this gui library might not be the best choice(?) and I think it's better he focus on people that know Rust already.
- kibwen 7y agoThe code in the OP appears to largely be a custom-built DSL designed to emulate XML. One can tell it's a custom DSL by dint of looking at the `mox!()` invocation; any identifier followed by a bang in Rust is a macro (Scheme-style syntax-aware macros, not C-style textual macros), which have loose parsing rules to allow for such DSLs to be defined. Rust does have plenty of symbols (nearly all of which are lifted directly from C or C++, with the same or analogous meanings), but such extensive DSLs are rarely encountered in the course of everyday use of the language.
- asdkhadsj 7y agoAs a Rust lover, it can be quite the hill to climb when you first start looking at it. Closures really weirded me out when I first started. Though, you may also be referring to the "made up language" powered by the Macros. I agree that can be a bit much, but it's in my view no more distracting than React's JSX. Some people hate JSX, and I imagine they would hate this as well.
- anp 7y agoYeah, I'm not the biggest fan of the syntax still either. That said, the phrasing of your comment is unkind and its contents don't provide any useful feedback.
- Devagamster 7y agoSome pushback: The syntax used in your example is WAY cleaner to my eyes than competing UI solutions in Rust today.
- anp 7y ago<3
- jessaustin 7y ago...unkind... Please don't misinterpret in this way. This is a candid reaction. As you indicate, it confirms your previous observations. This is not an opinion of you or any other Rust developer. It is an opinion of the syntax, period.
- anp 7y agoIt's unkind to call someone else's work "awful," even if its meant in a very minor way (even if I agree with it!). It's a low value comment when it doesn't provide any concrete feedback on top of that. Our industry has abysmal standards for discourse and I'm not sure why you think that's important to apologize for and normalize.
- zelly 7y agoSyntax only matters to people who don't know the syntax. I used to think it was awful before learning Rust, but very quickly the syntax just fades into the background because syntax is patterned and repetitive by definition. There's an initial barrier to entry then an abrupt payoff cliff. The important thing is actual expressiveness. Rust gives you a heavy duty toolbox to play with. You could have a beautiful-looking syntax with no braces, no parens, and tons of whitespace (think CoffeeScript or Haskell) where you're very restricted on a small set of square pegs, or you could use something like C++, (Perl), Rust, or Lisp that lets you make any Rube Goldberg machinery you want no matter how hideous it looks. It's a matter of personal preference. You can be very effective either way, but I think one is unnecessarily harder on yourself. There are two camps: 1. Syntax is important. I want everything to line up beautifully on the screen. I have a riced out Arch desktop and a super clean enviable desk with modern furniture. 2. Syntax doesn't matter. I format code sloppily and let clang-format fix it eventually. I love macros and codegen because they make my life easier. I haven't changed my wallpaper in 5 years.
- kelnos 7y agoI know you're being somewhat facetious but... not really. To me, syntax is important, and I want everything to line up beautifully on the screen. But I use a simple, no-frills Debian Xfce desktop, and my "desk" is my lap and my couch.
- icedchai 7y agoIt is awful. Javascript with JSX is awful, too.