3 ms·
.NET has been the standard interface at Windows system level for many years. The ".NET languages," particularly C# will provide much less friction than .cpp (or
by brudgers 2y ago
.NET has been the standard interface at Windows system level for many years. The ".NET languages," particularly C# will provide much less friction than .cpp (or Nim). For no other reason than the quantity and quality of tutorials and documentation written by technical experts and edited by technical editors who are getting paid to write and edit from line items in Microsoft's regular operational budgets.
Or to put it another way, picking languages takes exploration of Windows system programing from an X problem to an XY problem. Good luck.
- cnity 2y agoYou're recommending that OP uses an abstraction over the system. It takes their X problem and makes it a Y problem instead (because they won't learn systems that way)!
- lukan 2y agoYes, but he or she is giving convincing sounding reasons that might be helpful for the op. Maybe it is actually better for OP to learn .net, maybe not. But the answer had quality, so I do not think the downvotes are appropriate.
- trimethylpurine 2y agoWhile I think the intentions of the voting system are for marking low quality, as you've said, I think in practice most downvoters are using it to mark their disagreement. There's something interesting about that; it implies that grey text signifies a non-conformist view and approach to a technical issue. As is the case here. I like to skip to the grey text.
- brudgers 2y agoI wrote the downvoted comment and am a proponent of downvoting for disagreement. Downvoting is an alternative to arguing and often makes for better comment pages.
- trimethylpurine 2y agoIt's a great perspective. In fact I upvoted your comment just now. By contrast, it also prevents users from commenting. See dang's posts on this. Regardless, it's interesting to note that it also, indirectly, highlights interesting comments. Do you also find that interesting?
- brudgers 2y agoTypically, if a comment has been downvoted, I use it as a reason to filter it out. There’s more comments than I am going to read so reducing the pool is useful to me…and I don’t identify as a contrarian. Thinking about it, downvoting for disagreement is the analog of upvoting for agreement.
- trimethylpurine 2y agoI don't think being contrarian is a requirement for seeing value in comments that others disagree with. Just on this thread, your comment was downvoted but represents a particular way of solving a problem that differs from the downvoter's. Even if that way is not better, for them, I think acknowledging that it might be better for someone else is objectively open minded, and not in the least contrarian. But my point isn't to criticize anyone for downvoting. Just the opposite. It's to illustrate that thinking outside the box is in itself disagreeable, which, as is the case here, can be a searchable metric.
- brudgers 2y agoI can see why your approach is useful for you and probably for other people. I just don’t seek out gray comments (though sometimes I do read some) because I am ok with missing interesting viewpoints. HN does fine despite my behaviors. I am not contrarian in the sense that I think good comments are downvoted to a meaningful extent. YMMV.
- dgellow 2y ago> Please don't comment about the voting on comments. It never does any good, and it makes boring reading. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- trimethylpurine 2y agoFrom a technical perspective I think my comment is interesting for anyone running a platform. I don't think this guideline applies.
- pantulis 2y agoDepends on the objective of OP. Abstractions always leak some of the underlying capabilities so you could use them as a more beginner friendly approach to get acquainted with the system while doing something useful or fun. For related examples, you can learn Ruby just by learning Rails. Or in more general aspect, the web technology stack through a modern web framework.
- explaingarlic 2y agoNot entirely true, Native Interop is pretty good with DotNet https://learn.microsoft.com/en-us/dotnet/standard/native-interop/ https://learn.microsoft.com/en-us/dotnet/standard/native-int... Though I believe it has regressed at least a bit with the introduction of DotNet Core.
- ale42 2y agoNot sure if the systems programming mentioned by the OP includes drivers, but AFAIK the standard language for drivers is C/C++. Not that it's impossible to use C# (see https://github.com/ZeroLP/WDK.NET https://github.com/ZeroLP/WDK.NET), but it's not necessarily the most widely used approach.
- pjc50 2y agoDepends what you mean by "system", but there's plenty of the Win32 API that's not exposed by first-party packages in dotnet (e.g. audio). It's certainly the most convenient way to write an application (once you get over the UI toolkit disaster area), but "systems" programming might also include drivers.
- brudgers 2y agoIf someone is hiring Windows-systems-programmer-1 it is more likely to be about performance of .Net applications than writing drivers. And sure things like managing thread pools and tweaking garbage collectors and allocating resources in general are less sexy. So reading about writing drivers and talking about writing drivers and watching YouTube rants about writing drivers is more entertaining. The OP is coming all the way from Nim into two decades of .Net as Windows “easy mode.” There are important reasons to use cpp, but most of the reasons in the world of Windows are .Net.