> But CLR stands for Common Language Runtime and had three official languages shortly after release (VB.NET, C# and J#, offhand).
CLR is not really common -- the "tells" are VB.NET and PowerShell.
VB6 was a very popular and useful language, and VB.NET broke everything in that ecosystem, turning it into a variant of C# with different syntax.
Does that sound like a multi-language VM?
If so, why not compile VB6 to it?
PowerShell is likewise best described as C# with a horrible shell-like syntax.
It's not really a shell in the original sense, because it doesn't talk to the kernel directly -- it runs on a VM, which mediates all access to the kernel.
fork() is a syscall that shells rely on critically, which is problematic for almost all VMs.
Some notes on "interior" (VM-based) vs "exterior" (OS kernel-based) shells here:
It was intended to be common whether or not it succeeded.
Those examples point to a differing design philosophy at Microsoft rather than some inability to write a language on the CLR. The design philosophy was clearly to do Java-ish typing across the board, supplanting VB6's loose typing and bash's text based mindset.
I don't really like the approach. I think shell scripting succeeds because it allows ad-hoc programming and I don't think Java-ish weak but static typing is some perfect ideal to be used everywhere, but you could certainly implement a more loosely typed language on the CLR.
CLR is not really common -- the "tells" are VB.NET and PowerShell.
VB6 was a very popular and useful language, and VB.NET broke everything in that ecosystem, turning it into a variant of C# with different syntax.
Does that sound like a multi-language VM?
If so, why not compile VB6 to it?
PowerShell is likewise best described as C# with a horrible shell-like syntax.
It's not really a shell in the original sense, because it doesn't talk to the kernel directly -- it runs on a VM, which mediates all access to the kernel.
fork() is a syscall that shells rely on critically, which is problematic for almost all VMs.
Some notes on "interior" (VM-based) vs "exterior" (OS kernel-based) shells here:
https://www.oilshell.org/blog/2023/06/ysh-design.html