In reply to @broman7776 "Hello, everyone, I wanna": > which GC to choose for a library to use with Python, ... Not sure about this one, it depends on how you link to Python's object system and copy data to PyObjects. Maybe someone else can speak on this. All I'll say is that without explicit use of the `ref` keyword, dynamically sized Nim types are managed by a stack pointer (equivalent to a C++ `unique_ptr`) and are destroyed on leaving scope. So the GC only becomes relevant with the `ref` keyword, and it's very easy to write Nim programs without that at all. > how easy can I integrate an existing C/C++ library or a project. Trivially easy. Make sure to choose the proper backend, and read through documentation to learn. Usually it just involves a function signature, and maybe an interface proc to clean up C or C++ types into Nim ones and vice versa. The `pointer` type is easy to use and translate, and remember to use compatible types such as `csize_t` when interfacing. https://nim-lang.org/docs/manual.html#foreign-function-interface https://nim-lang.org/docs/manual.html#implementation-specific-pragmas-importcpp- pragma > memory-safety compare to Rust Like I said, by default, dynamic types are stack-managed and safe. The default memory manager is a reference counter, so you get safety plus deterministic collection calls if you use a `ref`. Move semantics are described in the following document: https://nim-lang.org/docs/destructors.html