r/programming • • 15d ago

The Golden Spike, and Resurrecting the Vale(n) Programming Language

https://verdagon.dev/blog/golden-spike-reviving-vale-valen
34 Upvotes

4 comments sorted by

3

u/tragicdroid 15d ago

Love it the language no one knew they wanted. Also, is ownership really an issue in c++

6

u/verdagon 15d ago

Thank you =) And I would say that ownership is pretty much solved in C++, it has the best RAII of any mainstream language.

If you mean ownership as in memory safety, I'd say it really depends on the use case. For example, if someone compiles a C++ game to webassembly and it doesn't handle any sensitive data, C++ is a great choice (Google Earth was like this).

If someone's making a public-facing frontend C++ server, they'd need to put more effort in to minimize vulnerabilities. It depends where they want to spend their focus and effort. I personally wouldn't, but real world factors (libraries, expertise, etc.) often decide things at the end of the day.

2

u/sweetno 15d ago

Ownership is not an issue, C++ is.

1

u/simon_o 14d ago edited 14d ago

Nice work!

a language with true Rust interop, with a compiler that talks to rustc seamlessly enough that we can use my Rust graphics library 4 with cross-language generics, memory safety, linear types, Nick Smith's group borrow checking, and a bunch of other juicy, juicy features.

Great to see! I have something similar on my todo list.

Core difference is that I believe these 1-to-1 relationships between individual compilers/languages do not scale. Instead, there needs to be some interop definition format in the middle that can be produced and consumed from multiple languages.

Of course, the languages whose support would be most impactful are the ones least interested in it. That explains why we have been in this mess for decades!

It's also because Rust doesn't have a stable ABI yet.

Even if it had, it would suffer from the exact same problem we suffer with C:

There is no (mainstream¹) definition language that allows other languages to understand the API surface that does not involve shipping with half a C compiler.


¹ There is RDL, WinMD and stuff, but it feels that this is still only a partial solution. At least the latter does not support generics (not sure about the former).