> bitsets

I use them almost in every place, and I suppose the compiler does the same.

> exceptions

I would not remove them, but it piss me off when they are used in the stardard 
modules. I'd rather check if the result is equals to -1 or is none than have to 
handle an exception when trying to stablish a new connection.

> a huge standard library

I do agree there seems to be really old modules that no one use anymore. But 
there are good reasons for having one:

  1. Stuff that is so used that eventually a lot of alternatives would appear 
(the reason why options were finally added), making it confusing to work with 
projects that employ each one a different implementation.
  2. You should consider whatever is published in nimble as dead aswell, so I 
would not rely important functionalities in there. In fact, everything that 
stopped being useful or used in the standard lib ended up being moved to nimble 
already.



Now, system definitely does need a refactoring. You can find there strings, 
seqs, garbage collection, file handling, stream handling, exception handling 
... I'm sure that everything related to files and GC could be separated from 
the main module. Not that you are going to stop the GC or open a new file in 
every module of your project.

Also nim could use better names for modules. 'os', 'ospaths', 'osprocs' are 
confusing. Maybe rename osprocs to 'process', and 'ospaths' to 'paths'.

Reply via email to