Thanks. I really thought it was about vale since I assume they are both pronounced the same way.
I pronounce them as:
Vale would rhyme with “bail”
But Val would be like the first syllable of “value”
The link you want: https://www.val-lang.dev/
These small proof of concept projects just go to show how fundamentally important are projects such as GCC and LLVM, which considerably lowered the barrier to entry of monumental tasks such as developing a programming language that targets basically all platforms under the sun.
Kudos GCC and LLVM.
Agreed, extraordinary tools.
It is still very young and I don’t yet see any advantages over Rust, except that they want to have out of the box interoperability with C++. Let’s see where they are in 3 years or so.
These things are popping up like Javascript frameworks recently. And ironically enough those seem to have slowed down.
All I see is another wannabe generic purpose and C++ (and Rust? Already?) replacement. I’m not saying they shouldn’t try, but a lot have already and it’s pretty tough. C alternatives like Zig and Nim don’t seem to have taken off, Vala either.
Only glanced through the paper on mutable value semantics (MVS). Which appears to be the differentiator of this from Rust.
The claim is that MVS enables mutable operations safely without the complexity of Rust - but still high performance.
“Mutable value semantics (MVS) sits at third point in the design space where both goals are satisfied and mutation is supported, without the complexity inherent to flow-sensitive type systems. The key to this balance is simple: MVS does not surface references as a first-class concept in the programming model. As such, they can neither be assigned to a variable nor stored in object fields, and all values form disjoint topological trees rooted in the program’s variables”
If only mutable value semantics are allowed, then how can you represent an object graph with circular references (let’s say HTML DOM, for example) while still allowing modifying the objects?
Seems like this would be very difficult to work with in practice.