Borrow-checking without type-checking might sound like a mouthful, but it’s a concept that could reshape how developers think about dynamic and static typing. A new toy language demo showcases a system that allows borrowing checks dynamically without relying on static type-checking. This development could offer a fresh perspective for engineers and product managers tired of the rigidity of traditional type systems.
The language, inspired by Julia and Zig, explores a type system that starts dynamically and layers on static checks. Unlike Zig, which refuses to compile code that can’t be statically checked, or Julia, which relies on dynamic checks when static ones are unavailable, this language offers a third path. Developers can switch between dynamic and static typing with explicit annotations, offering flexibility for tasks like REPLs and runtime code generation while maintaining the safety of static typing for most code.
In the competitive landscape, this approach is less expressive than Rust but more so than second-class references. It introduces a way to dynamically check borrows with minimal overhead and clear error messages. This could appeal to engineers and product managers looking for a balance between performance and flexibility, especially in environments where dynamic typing is preferred but safety is still a concern.
For founders and VCs, the implications are worth noting. This language could influence how new software products are developed, offering a middle ground between dynamic flexibility and static safety. It challenges traditional views on type systems and could lead to more efficient code without sacrificing the ease of dynamic languages.
As this language continues to evolve, it may inspire further exploration into dynamic and static type systems. While it’s still in a demo phase, the potential applications in software development are intriguing. For those interested, the code and further details are available on the project’s GitHub repository. Keep an eye on this space as it may offer new tools for developers seeking both performance and flexibility.




















