In reply to @nevillegg "is nim really good?": yes it has powerful and easy FFI(even can do reverse FFI(calling Nim function in C)) you can do it with {.exportc.} and {.importc.} and it is very fast, high performance(C's 90~95%, if you use --mm:none, then 100%) and you can work with C, C++, Assmebly very easily and you can work with web by compiling Nim to JS or WASM(you can even control DOM) and Nim has powerful memory safety with ORC and lent, ref, var system and Nim support many type of programming(Procedual, OOP, functional) and you can use very cool meta-programming like template, macro, paragma, type and Nim has strong type safety and Nil safety too most time, Nil is blocked(except for ref type) and all type are checked in compile time