those are definitely the *biggest* factors, but grammar complexity class isn't completely irrelevant- especially since we've managed to avoid the C family's missteps
-
-
a lot of parsers are little simple things- editor syntax specifications, quick fuzzy searches, cross-language tools, (unfortunately) proc macros. every little bit of complexity in the grammar makes things harder there
1 reply 0 retweets 3 likes -
I completely forgot about procedural macros! They make parsing so much more difficult as to make LL(k) not even relevant as a concern in comparison.
1 reply 0 retweets 2 likes -
not really? they work almost like comments when it comes to parsing, except you tokenize their innards (unlike comments)
1 reply 0 retweets 1 like -
Of course they’re easy to *tokenize*, but they’re not easy to *expand*. Any tool that does not expand macros is broken.
3 replies 1 retweet 3 likes -
for some uses, but not all- especially in rust where macros are always self-contained syntax trees, as opposed to c where macros can mess up your delimiters
1 reply 0 retweets 0 likes -
Can you describe a useful, practical tool that does not expand macros?
1 reply 0 retweets 0 likes -
rustfmt
1 reply 0 retweets 1 like -
Rustfmt just uses libsyntax. I still completely fail to see why we should make the language harder to use so that a tiny minority of tool authors who can’t use libsyntax for whatever reason don’t have to write, like, 5 lines of code.
1 reply 0 retweets 0 likes -
a) it's not really harder to use... b) it's not a tiny minority of tool authors, or at least it shouldn't have to be
1 reply 0 retweets 0 likes
Turbofish absolutely has atrocious usability.
-
-
it's also rare, and will become far more rare with type ascription and this can't even get rid of it anyway!
0 replies 0 retweets 0 likesThanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.