> bitsets

a really nice macro? also, backend compiler optimizers are pretty good at 
getting perf for these kinds of ops anyway, and with fewer features in the nim 
compiler, there's more room in there for good compiler features - better error 
messages, better transformations..

> exceptions, used in the standard modules

only thing worse than exceptions is `both-exceptions-and-something-else`

> exceptions, rust + unwrap

rust unwrap only gets used in old examples - there's `?` for production code. 
Nim, thanks to its great syntactic flexibility, could do even better with a 
macro and a block - being explicit about ignoring errors is a good thing, just 
like Nim does with `discard` already.

> std lib, lots of alternatives

  * if there's an obviously better one, it'll win
  * if the std lib is focused, consistent and good, other libs will follow that 
style and fewer alternatives will emerge
  * if you really want to provide a canonical or blessed alternative, host it 
under the `nim-lang` org on github, but leave the coexisting upgrade path open



> std lib, nimble means dead

if they're useful, they get maintained and if they're not, nimble repo remains 
a place to keep them forever, unchanged and compatible with whatever other code 
that manages to use them successfully - combined with semantic versioning, you 
get the best of all worlds - stability for old stuff, promotion/accessibility 
for good and useful code and choice for developers

> std lib, refactoring

The desired refactoring doesn't happen _because_ it 's in the std lib. If it's 
not in the std lib, it's cheap and easy to refactor letting the old version 
stay forever frozen in time.

> std lib, huge

all of `wrappers`, most of `pure`.. why is `json`, `htmlparser`, `smtp` in 
there??? madness.. there's even an FTP client and two, yes **TWO** ` http` 
servers!.. then there's `core` and `std` that are just plain weird - what goes 
where? `posix`, that's a pipe dream if there ever was one - out it goes to be 
replaced by 
[https://github.com/nim-lang/Nim/pull/5698](https://github.com/nim-lang/Nim/pull/5698)
 as an external nimble lib, easy.

bring it on, all the radical stuff you'd love to change! only time will tell if 
the regret article will have yours and it'll be fun to look back 

Reply via email to