Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Here's my question: how many popular, big-name consumer applications are written in C# on Windows?


I don't necessarily think that's a fair question. If I were to start a big-name consumer app today for Windows, I'd choose C#. But most of those types of apps have a long history that either predates .Net or predates .Net being all that great. Because of this, even a lot of Microsoft's apps are still written in C++. I'm pretty sure that Microsoft would completely rewrite say Office in .Net if it could do so without losing decades' worth of code.


That's a good question. Lots of corporate intranet apps are written in C#, but it's hard to tell what consumer apps are, since it's not something that companies advertise.

For what it's worth, we do know, however, that .NET technology is an important component of all games made with Unity.


Unity is cross-platform (Mac, Windows, Wii, iOS) though, and is really built on Mono and not Microsoft's implementation. So I don't think that counts, since Ars is arguing that .NET is competing with Obj-C and Cocoa as the native language/API of choice for desktop apps.


I'm pretty sure it counts... Ars is arguing that Objective-C will be left behind by a higher-level, managed language, which is precisely what is happening with Unity, regardless of whether Microsoft implemented it or what platform it runs on.


They are arguing that .NET is already that language for Windows, which I don't think is true.


Indeed. I was surprised by this statement in the article: "Contrast this with the most prominent competing desktop platform, the Microsoft .NET framework and C# language on Windows, where memory-managed code is the default and everything else is considered risky, literally being denoted with the "unsafe" keyword in the source code."

I've been doing development with .NET/C# for the first time for the last six months and I was surprised to see that the default mode for development is unmanaged. Do any big apps actually use managed mode?


  I was surprised to see that the default mode for development is unmanaged.
I find myself wondering what you mean by "default mode", as during the last 9 solid years of .net development work I have found it to very much be the case that managed is the default.

Can you clarify your statement?


Yes, I wasn't at all clear. What I meant was that sitting down as a newbie to Visual Studio, I was surprised at how many of the project types created by doing "File->New Project..." resulted in unmanaged .EXE targets. But I could have been misinterpreting that.


That probably means an executable rather than an assembly, but the underlying execution platform is still the .NET virtual machine, and all that goes with the VM, including managed memory.

I could be mistaken, of course; I'm not an expert at .NET yet.


When you first run Visual Studio you specify what default environment you'd prefer... c++, .net, etc. Perhaps you chose c++?




Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: