Nor C++ or Ada, so what? Linux isn't some kind of golden rule for all OSes on the galaxy.
I am more than happy to do bare metal coding in C# (Meadow) and Go (TinyGo) without having to deal with Linux.
Nor C++ or Ada, so what? Linux isn't some kind of golden rule for all OSes on the galaxy.
I am more than happy to do bare metal coding in C# (Meadow) and Go (TinyGo) without having to deal with Linux.
Volumes could be written as a reply.
>Linux isn't some kind of golden rule for all OSes on the galaxy.
Just about every operating system or major piece of system software is written in C, or limited C++ that is defacto C. Rust has a universe more of a likelihood to supplant those than Go or C#. And in fact is the only modern language making any headway in those cases. We're about two decades past people deploying the trite "Oh well that's just legacy inertia..." argument.
Google didn't write Fuchsia in Go, and hasn't used an iota of it in ChromeOS or Android. Microsoft uses somewhere approximating 0% .NET/C# code in the Windows core. Microsoft research made a toy .NET OS once that, unsurprisingly, went nowhere, just as you can find irrelevant toy example projects pushing the same premise, but they're dead ends.
This is of course meaningless for the vast majority of projects that the residents of HN are working on, where the compromises of Go, C#/.NET, GCs, etc, are massively outweighed by the benefits they bring to those sorts of projects.
>I am more than happy to do bare metal coding in C# (Meadow) and Go (TinyGo) without having to deal with Linux.
Okay?
As for the rest it would be a waste of my time on Earth to prove you wrong and change your mind.
Okay?
Since IBM i, IBM z, Unisys ClearPath exist, and power the world of insurances and finance, this sentence is obviously false.
> Google didn't write Fuchsia in Go
Indeed, only the TCP/IP stack and volume management tooling, should be easy for you to find out about them.
Then there is this thing called gVisor, it is powering parts of the world that run on top of Google Kubernetes Engine.
Maybe something there for you to learn as well.
> Microsoft uses somewhere approximating 0% .NET/C# code in the Windows core
On the NT kernel, yes, yet good luck using Windows only with the kernel, without the remaining layers, many of which developed in a mix of COM and .NET.
A basic proof how much Windows systems programming experience you have.
Ah then there is this thing called IoT Edge runtime for intelligent devices, written in a mix of Rust and C#.
And before I forget, NVIDIA DRIVE AGX firmware is written in Ada/SPARK.
Bye and learn to grow beyond the Linux bubble.
"A basic proof how much Windows systems programming experience you have."
Which programming language would one write "COM" in? I am so poorly skilled that I must have missed that language. I spent a decade+ writing Windows code, including exposing it through COM/COM+/DCOM, but apparently I was doing it wrong.
And while there is loads of C++ in what we consider the Windows platform, there is vanishingly little .NET.
The "Linux bubble" comment is especially weird. I spend my day in macOS, with most of my day being in XCode slinging Swift and GoLand spinning Go. Somehow I can evaluate the world without trying to mangle it to fit whatever my current primary skills are.
The initial point is simply that Go or C# or Java in their normal form aren't "system programming" suitable (which generally means low-level kernels and system services and projects having similar needs. Notepad on Windows isn't system programming), and it's unrealistic for Go to be ranked highly on such a list, much less before Rust which is purpose built for this task.
Could someone use them for system programming? Sure they could. It would be the wrong tool but people makes loads of bad decisions.
The point about Linux and other operating system choices wasn't a rule, it was an observation that the rhetoric often plied on developer boards -- usually where developers want everything to be a nail to their skillset hammer -- has little correlation with the world. Nowhere did I exclude Ada or any other compiled, non-GCd (which Ada never uses when used for anything of any criticality) languages. Anything can make just as good of native code.
It's more correct to say that they attempted to write part of Fuchsia in Go, but the results performed so badly that they decided it would need to be rewritten in another language.
Just as Microsoft once made a good faith effort to rewrite Windows in C# (Longhorn) before that effort had to be abandoned.
Midori had no issues powering Asian Bing servers during its life in production.
I have no doubt the usual Microsoft politics of the era applied as well.
It helps when the Go guy on the team is no longer there to argue for it.
> Which programming language would one write "COM" in? ....
VB 6, Delphi, .NET, C++ Builder, C++/CX, C++ with MFC/ATL/WRL, whatever language speaks the COM ABI.
Yeah, maybe you were doing it wrong.
> The "Linux bubble" comment is especially weird. I spend my day in macOS, with most of my day being in XCode slinging Swift and GoLand spinning Go. Somehow I can evaluate the world without trying to mangle it to fit whatever my current primary skills are.
Good for you then, happy future.
I think you misread my comment which was pointing out that COM is an interfacing standard, and has little to nothing to do with language choices or this conversation. Pointing out that there are multiple languages that can build to it isn't a counterpoint, but actually is the reason I made my comment. It's like saying you "developed the program in JSON over HTTP" in a conversation about programming languages.
Though regardless of that, Microsoft uses C++ for the overwhelming majority of a Windows install (this is trivial to verify). This is meaningless, having nothing to do with the root comment, but somehow this conversation was pulled there.
Windows programs can be written in just about anything. No one ever contested that. "Low-level" code, however, is seldom done in the GC languages. Seldom doesn't mean never, as stated over and over again, and Googling for random fringe counterexamples aren't counterpoints.
My friends writing safety critical bare metal industrial control software using Ada would, I suspect, feel this was a somewhat limited perspective.
If you ever do consider writing such volumes, I would recommend getting co-authors to cover the areas you're less familiar with.
It's a big industry. There are loads of exceptions and they still comprise a tiny minority.
I was being polite in not openly pointing out that your comment was trolling of absolutely no value or purpose, predicated entirely on your own misreading, but here we are.
It's weird to crown Go as better when it is nicer simply by ignoring very low-level work then pretend that the argument of OS development is irrelevant.
A bit of an exaggeration, but its like saying HTML is a better "programming" language than javascript when creating documents, then ignore the fact HTML isn't actually programmable.
Discord switched from Go to Rust because of slowness issues, I promise if its too slow for an app its too slow for OS.
If Go wants to be a very low level "systems everywhere" then get rid of the GC. Or alternatively stop ranking it above Rust and C++, when its apples to oranges.