Val is a research programming language to explore the concepts of mutable value semantics and generic programming for high-level systems programming.
Val aims to be:
- Fast by definition: Val is compiled ahead-of-time to machine code and relies on its type system to support in-place mutation and avoid unecessary memory allocations. Val avoids hidden costs such as implicit copies and therefore avoids heavy dependence on an optimizer for basic performance.
- Safe by default: Val’s foundation of mutable value semantics ensures that ordinary code is memory safe, typesafe, and data-race-free. By explicit, auditable opt-in, programmers can use unsafe constructs for performance where necessary, and can build safe constructs using unsafe ones.
- Simple: Val borrows heavily from Swift which has demonstrated a user-friendly approach to generic programming and deep support for value semantics. Val’s programming model strengthens and extends this support, while de-emphasizing reference semantics and avoiding the complexities that result from trying to make it statically safe (e.g., memory regions, lifetime annotations, etc.).
- Interoperable with C++: Programming languages rarely survive in a vacuum. Val aims to take advantage of the vast software capital of C++ by supporting full interoperability.
Read in full here:
This thread was posted by one of our members via one of our news source trackers.