TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

The Val Programming Language

4 pointsby angrygoatover 2 years ago

2 comments

verdagonover 2 years ago
I&#x27;m pretty excited by what Val is doing. I feel like this is the next step in languages: finding a way to combine the techniques of the last decade (Pony&#x27;s unique references, Rust&#x27;s borrow checking, etc.) in new and interesting ways, to get closer to the ultimate goal: a language that has speed, safety, and simplicity.<p>The simplicity is particularly important. We&#x27;ve almost certainly surpassed the complexity limit in languages like C++, Rust, and Haskell. Each of these can be easier with time, but even past the learning curve they can impose a lot of artificial complexity.<p>It&#x27;s also interesting that a lot of languages adopting subsets of Rust&#x27;s model:<p>* Val is using unique references for its data, and not including shared references.<p>* HVM is using shared reference borrowing and implicit .clone()s for its data, and not including unique references. [0]<p>* Vale is using the borrow checker at a higher &quot;region&quot; level to make it opt-in, and using generational references which were inspired by Rust slotmap &#x2F; generational indices. [1] (disclaimer: am Vale lead)<p>* Lobster is using implicit borrow checking for the simpler cases, and falling back to reference counting everywhere else. [2]<p>* Cone is using borrow checking on top of garbage collection, reference counting, single ownership, and any other user-defined memory strategy. [3]<p>Just as Haskell (and FP languages before it) showed us how far we can take immutability and what interesting patterns might emerge, I think Rust shows us what happens when you try to apply aliasability-xor-mutability to every problem. And just as how a lot of languages are adopting the good parts of Haskell, a lot of language&#x27;s are adopting the good parts of Rust.<p>I hope Val goes far!<p>Also, I love their name. I tend to like languages that have the V and L sounds in them, though I might be uniquely biased ;)<p>[0] <a href="https:&#x2F;&#x2F;github.com&#x2F;Kindelia&#x2F;HVM" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Kindelia&#x2F;HVM</a><p>[1] <a href="https:&#x2F;&#x2F;verdagon.dev&#x2F;blog&#x2F;generational-references" rel="nofollow">https:&#x2F;&#x2F;verdagon.dev&#x2F;blog&#x2F;generational-references</a><p>[2] <a href="https:&#x2F;&#x2F;aardappel.github.io&#x2F;lobster&#x2F;memory_management.html" rel="nofollow">https:&#x2F;&#x2F;aardappel.github.io&#x2F;lobster&#x2F;memory_management.html</a><p>[3] <a href="https:&#x2F;&#x2F;cone.jondgoodwin.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;cone.jondgoodwin.com&#x2F;</a>
cercatrovaover 2 years ago
Not to be confused with Val<i>e</i> (which is referenced in the article) [0], which also seems to be doing something similar.<p>[0] <a href="https:&#x2F;&#x2F;vale.dev" rel="nofollow">https:&#x2F;&#x2F;vale.dev</a>
评论 #32965455 未加载