Yes, I've used `#mangle` before. _Very_ helpful.

`--nep1` is interesting.

My complaint -- that the C library being wrapped could have conflicting 
identifiers -- is a minor one. I can always find ways around that. UPPER_CASE 
macros are the most common collision, and that's not a big deal since **c2nim** 
works better on the pre-processed output anyway.

But there is a larger issue here. You've injected too much novelty into 
**Nim**. This is a gigantic project. You've got to concentrate on making 
**Nim** as practical as possible, on its strengths:

  * Fast compilation
  * Fast runtime
  * Simple integration (w/ static binaries)
  * Simple generics and templates
  * Simple iterators
  * Simple concurrency (async/await + parallel blocks)
  * Light syntax
  * Strong type safety (including type constraints), with type-inferencing
  * Flexible but simple memory management
  * Simple FFI
  * Simple interface system (concepts, traits, interfaces, or whatever)



There are no other languages like this. It's an amazing list, for a certain 
class of coder.

Partial-casing is a loss of focus. It's cool and interesting, but it makes the 
language _less_ practical, not more. And it's an easy target for detractors -- 
an easy excuse to spurn the language.

Anyway, I do see your point. With `--nep1`, we're actually making disparate C 
APIs look similar within Nim. Maybe that's a fair justification for 
partial-casing?

Reply via email to