As an experiment, I&#x27;ve tried replacing C with Terra for a few projects. It feels like C++, except without the constant guilt. Having a proper hygienic macro system (instead of C&#x27;s very limited string-replacement &quot;macros&quot; or C++ template hell) is a really helpful abstraction, and the compile-time stuff you can do can basically act as a build system.<p>So I got excited and planned to use it to make a game, but although it can import existing C libraries [1], it can&#x27;t import global variables, constants, or macros that take arguments, which puts a whole lot of existing libraries just out of reach.<p>This doesn&#x27;t seem to have stopped Leonard Ritter from using it for <i>Nowhere</i> anyway, though being a crazy genius, he seems to have written his whole environment from scratch. [2] [3]<p>[1]: <a href="http:&#x2F;&#x2F;terralang.org&#x2F;api.html#c-backwards-compatibility" rel="nofollow">http:&#x2F;&#x2F;terralang.org&#x2F;api.html#c-backwards-compatibility</a>
[2]: <a href="http:&#x2F;&#x2F;blog.duangle.com&#x2F;2015&#x2F;01&#x2F;conspire-programming-environment-for.html" rel="nofollow">http:&#x2F;&#x2F;blog.duangle.com&#x2F;2015&#x2F;01&#x2F;conspire-programming-environ...</a>
[3]: <a href="https:&#x2F;&#x2F;bitbucket.org&#x2F;duangle&#x2F;nonelang&#x2F;src" rel="nofollow">https:&#x2F;&#x2F;bitbucket.org&#x2F;duangle&#x2F;nonelang&#x2F;src</a>