3 ms·
> Is there any documentation about how to wrap my C++ code into Nim? Here is some docs: https://nim-lang.org/docs/manual.html#implementation-specific-pragmas-
by dom96 8y ago
> Is there any documentation about how to wrap my C++ code into Nim?
Here is some docs:
https://nim-lang.org/docs/manual.html#implementation-specific-pragmas-importcpp-pragma https://nim-lang.org/docs/manual.html#implementation-specifi...
> My question here is, if I start to try it, how many breakages can I expect? 4-5, in the tens? Until version 1.0 I mean.
Depends which features you are using. The newer features (concepts for example) will likely have more breakages than the rest of the language. We already have a lot of code written in Nim and a book published (which we are committed to keep compatible with 1.0) so breakages should be minimal (unforeseen circumstances of course may happen).
> how does it compare to D if I have to:
>
> - use a well-mantained GUI library in at least one system (multiplatform would be a big plus)
I'm not sure about the status of GUI support for D. Nim has bindings to GTK/QML/libui and some other more experimental GUIs rendered using pure OpenGL (nimx). They are all cross-platform (although GTK on macOS is a PITA).
> - how mature is the standard (and other libraries also if that is easy to add) library for: json handling, binary serialization, algorithmic code (a la range-v3 or ranges in D. Something along the lines of python iterators, functools, comprehensions and itertools also ok).
JSON handling is very mature.
I don't think we have binary serialisation in the stdlib.
Algorithmic code - sequtils is what you're after I guess: http://nim-lang.org/docs/sequtils.html http://nim-lang.org/docs/sequtils.html
> - would I be able to use Nim in embedded if I do a port of some software? Namely, would I be able to remove the GC?
Sure, but you won't be able to use a lot of the stdlib.
> One thing that worries me is that I am much more familiar with metaprogramming in C++ and D's metaprogramming
I suppose Nim by Example is a good place to look, it has some good metaprogramming examples: https://nim-by-example.github.io/ https://nim-by-example.github.io/
Also my book has a chapter on metaprogramming :) https://book.picheta.me/ https://book.picheta.me/
Hope that answers your questions!
- germandiago 8y agoThanks for all the info! Really grateful :)
- germandiago 8y agoI must say that, even if unfamiliar to me, I am quite impressed about the C++ interoperability :)