> "Posix best practices" means ambiguous CLI switches that require a symbol 
> table to parse. Not much of a "best practice" here, it's just bad design that 
> you prefer because it's slightly easier to type.

I'm not interested in arguing about the merits of each approach. My point is 
that if you're writing a new OS then it would make sense to introduce a better 
alternative to command line parsing, but Nim is a programming language, it will 
be used in multiple operating systems and all of them seem to be converging 
into Posix style CLIs.

> I think grep is always a last resort tool as it doesn't understand any 
> programming language...

Sorry, I think I didn't explain myself correctly. I'm not referring to the 
`grep` tool in particular. It's very common among users to navigate code by 
searching, specially if you're looking at the code of others, which can be with 
`grep`, any of its more modern alternatives, editor in-built search feature, 
etc. Many modern languages are easy to _grep_ since they prefix declarations 
with a keyword but in Nim this is slightly harder, I'm not advocating to change 
the language for this, just that it might be worth to guide new users with best 
practices to navigate a Nim code base.

> You can productive in Nim without templates and macros, but we can't offer 
> "runtime alternatives" for these features.

Totally agree, and I would say that the language already provides ways to 
implement most software without having to use templates or macros. But somehow 
my initial intuition was that it wasn't the case, I think that perhaps the 
issue is having several keywords with compile-time semantics, maybe if the 
language had a prefix keyword to introduce them the on boarding would be 
simpler:

  * `when`: `const if`
  * `static`: `const block`
  * `proc ... {.compileTime.}`: `const proc`


Reply via email to