I'm currently using Nature to replace Tauri for developing desktop applications, which will allow me to conduct more thorough testing later. Since the linker succeeded in linking, it indicates that all symbols were successfully located. Both libruntime and libuv are highly complex code systems. The fact that the scheduler and coroutine system are already running successfully confirms that all core functions are functioning properly.
Nature's runtime architecture draws heavily from Go, with its GC similarly referencing Go's allocator and collector approaches. However, the use of mark-and-sweep GC inevitably leads to memory fragmentation issues. Virtual memory usage tends to advance progressively. In contrast, the span-based memory allocator avoids significant fragmentation problems during frequent memory releases and allocations.
---
I also believe predictable memory management is crucial. An arena-based supplementary memory allocator could be the next key feature.
That’s a solid roadmap. Moving towards span-based management is progress, but the real challenge for any new language is achieving true Zero-Cost Abstractions.
In my work with Modern C++, I've come to realize that predictability isn't the result of a single feature like a scavenger or an allocator. It’s the cumulative integrity of every primitive—from a simple string to complex containers—all meticulously engineered to ensure the developer never pays a 'runtime tax' for what they don't use.
A great example of this rigor is why we still don't have Reflection in the standard: the committee refuses to compromise until a solution exists that adds zero overhead at runtime.
For Nature to truly bridge the gap, it shouldn't just aim for 'high performance,' but for that level of uncompromising zero-cost integrity. When the language's abstractions are so refined that the runtime effectively disappears, you reach a state where system behavior becomes perfectly deterministic. That is the standard C++ has set for decades.
So far it does, just inspired by golang, which doesn't support FFI and calling golang related code is not an easy task.
But the situation will improve soon, in order to make nature more useful, I've decided to translate nature into readable golang code and parse the golang code to utilize the golang code.