both Rust and Go have made substantial improvements on programming languages in a world dominated by C/C++. There are others of course, but these two had actual impact.
Interesting. I believe societies need “extremists” like RMS in order to make progress. That doesn’t mean that they should end up completely giving into the extremists’ proposals. But they should consider them and use this to renegotiate societal contracts and settle on counter proposals.
RMS is not the inspiring leader the masses need. Capitalism is not the pure evil the article may make it out to be.
One of the key benefits of zVisor is its use of the Zig programming language.
I am at this point completely fed up with the implementation language of a program being touted as a feature or “key benefit” of that program. Microsoft GitHub encourages this behavior because if you want your repo to attract contributors or certain flavors of users it probably helps your SEO to put the language in your description. But the choice of language is a developer benefit, not a user benefit. Crowing that you’re wise enough to use Haskell/Zig/Go/Rust/C/TypeScript or whatever else before you explain what your program does makes me feel like your core audience is other people who think your language is the good one, not people who want to use your software to get something done.
Interestingly, my first thought seeing such things is indeed “Why?”, because there are already tons of implementations and for the hypervisor part they are basically mostly wrapping the KVM interface that is readily available in Linux and by the means of an ABI available to any programming language.
Otoh, I totally appreciate people exploring reinventing the wheel to learn more about wheels. And then you get way too excited about how round your wheel is in comparison to others. Human behavior.
I am skeptical of any language that makes the following two claims:
Can be used to implement a hypervisor
Is memory safe
A hypervisor manipulates address translation. It deals with things below the level of an abstract machine that provides an object model (memory-safe or not). You cannot have both properties in the same language. Pick one.
I hear ya, but to a user, when I see something is written in rust, go, or zig, I know I’m going to be able to run it far easier than something written in ruby, python, or node
But the choice of language is a developer benefit, not a user benefit.
Are the users of a hypervisor so lacking in technical skills?
I’m far more interested in tools I can modify and extend (without significant effort) than in tools I can’t. Being written in any of the ten or so languages I can already use is a big plus.
Are the users of a hypervisor so lacking in technical skills?
In the general case, yes.
How many users of QEMU/KVM do you think wish it was easier to delve into its source code compared to how many just want their VMs to run properly without difficulty?
screen
:) )git
,ripgrep
,ssh
Interesting. I believe societies need “extremists” like RMS in order to make progress. That doesn’t mean that they should end up completely giving into the extremists’ proposals. But they should consider them and use this to renegotiate societal contracts and settle on counter proposals.
RMS is not the inspiring leader the masses need. Capitalism is not the pure evil the article may make it out to be.
I am at this point completely fed up with the implementation language of a program being touted as a feature or “key benefit” of that program. Microsoft GitHub encourages this behavior because if you want your repo to attract contributors or certain flavors of users it probably helps your SEO to put the language in your description. But the choice of language is a developer benefit, not a user benefit. Crowing that you’re wise enough to use Haskell/Zig/Go/Rust/C/TypeScript or whatever else before you explain what your program does makes me feel like your core audience is other people who think your language is the good one, not people who want to use your software to get something done.
As someone who writes quite a lot of Zig, I 100% agree and am fed up as well.
Interestingly, my first thought seeing such things is indeed “Why?”, because there are already tons of implementations and for the hypervisor part they are basically mostly wrapping the KVM interface that is readily available in Linux and by the means of an ABI available to any programming language.
Otoh, I totally appreciate people exploring reinventing the wheel to learn more about wheels. And then you get way too excited about how round your wheel is in comparison to others. Human behavior.
I’m also skeptical about the claim that Zig is “memory-safe.”
That’s exactly the problem with this kind of thing, it entirely lacks the nuance of the real world and instead talks in absolutes.
Does Zig have better spatial memory safety than C? Yes it does, slices and pervasive bounds checking make a big difference here.
Is Zig as memory safe as something with a garbage collector? No, at least not in its present state.
Yup, fully agree.
I am skeptical of any language that makes the following two claims:
A hypervisor manipulates address translation. It deals with things below the level of an abstract machine that provides an object model (memory-safe or not). You cannot have both properties in the same language. Pick one.
I hear ya, but to a user, when I see something is written in rust, go, or zig, I know I’m going to be able to run it far easier than something written in ruby, python, or node
That’s true enough, though sufficiently diligent OS packaging can mitigate the usual issues with the latter.
Are the users of a hypervisor so lacking in technical skills?
I’m far more interested in tools I can modify and extend (without significant effort) than in tools I can’t. Being written in any of the ten or so languages I can already use is a big plus.
In the general case, yes.
How many users of QEMU/KVM do you think wish it was easier to delve into its source code compared to how many just want their VMs to run properly without difficulty?