Skip to content

Commit

Permalink
Update index.md
Browse files Browse the repository at this point in the history
  • Loading branch information
kyouko-taiga authored Apr 20, 2023
1 parent c4ed0fc commit 72857cd
Showing 1 changed file with 1 addition and 2 deletions.
3 changes: 1 addition & 2 deletions index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ 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 unnecessary 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](http://www.jot.fm/issues/issue_2022_02/article2.pdf) 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](https://swift.org) 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.

The [language tour](https://tour.val-lang.dev) gives an overview of Val's features.
The [language specification](https://github.com/val-lang/specification/blob/main/spec.md) and [IR specification](https://val-4.gitbook.io/val-ir/) (work in progress) provides detailed information about Val's syntax and semantics.
Expand All @@ -26,7 +25,7 @@ Our goals overlap substantially with that of Rust and other commendable efforts,
Besides, other programming languages have value semantics (e.g., R or Whiley) and/or provide excellent support for generic programming (e.g., Swift or Haskell).
So why another one?

What sets Val apart in the current landscape is its focus on mutable value semantics for the purpose of writing efficient, generic code, and its attention to C++ interoperability.
What sets Val apart in the current landscape is its focus on mutable value semantics for the purpose of writing efficient, generic code.
Val is a zero-cost abstraction language that fully acknowledges the physical constraints of computer architecture.
Yet, it presents a user model that marries these constraints with the benefits of value-oriented programming.

Expand Down

0 comments on commit 72857cd

Please sign in to comment.