Hacker News new | ask | show | jobs
by NateDad 2629 days ago
C# has the feature-bloat of C++, except with a garbage collector. (I wrote C# for 9 years and even when writing it 40 hours a week, I still had trouble keeping up with all the features that continually came out)
4 comments

It has nowhere near the feature bloat of C++. A C++ language lawyer can eat C# ones for breakfast.

If you compared modern C# to C++03, then maybe (although even then I would argue that templates alone are more complicated still).

> I still had trouble keeping up with all the features that continually came out)

Not that I ever had this sentiment but even if so: why would you try to do that? Most new features are tiny enhancements you can live without and the big changes (generics, Linq) you cannot do without so you they are forced anyway. ‘Trouble’ sounds like you were actually bothered by it which seems a bit over the top?

But maybe you weren't also a C++ developer, because if you were you'd not made such a ridiculous comparison.
C# has become quite a big language although it manages to hide the complexity quite well compared to C++. There is very little in the language that will trip you up, unlike C++.

The only problem I have with it is it is still really Windows only, hopefully that will improve with .Net Core 3.

I have been writing stable and robust C# software on Linux and Mac OS X for many years now, so not sure what you mean. Starting with Mono and now solely .NET Core 2 & 3. I know many people who do that as well. And our deployments (all our prod/test/staging servers) went from Windows-only 15 years ago to Linux-only since 4 years.

Maybe you are talking WPF / Desktop only; there are other options for Mono but yes, there you would be right. However the trend is, unfortunately, toward browser interfaces (Electron etc) and those you can do on Linux/Mac already with .NET Core.

My experience with .Net Core 1 and 2 was that it felt unfinished. I am planning to take another look when 3.0 is released because I do really like C#.

I wasn't thinking of Desktop although I would love to see something strong emerge there (other than Avalon).

> My experience with .Net Core 1 and 2 was that it felt unfinished

Ah, curious what made you feel that. We ported massive code bases of ASP.NET and commandline tooling over to .NET Core since the 1 and had not many issues. It's a much better experience now but it never felt unfinished to me.

I have to admit that I have been writing software for a long time and one of the things I automatically do is abstract (not too far, just far enough) the underlying implementation of whatever I make/made. So our old ASP.NET code was very easy to port for that reason; I never use internals directly and still do not. For instance MVC looks more or less the same anywhere so I just use plain old C# classes as controllers so they can be reused by apps, other (non ASP.NET) frameworks, commandline, tests etc. It adds a thin layer below them so they work but it saves a lot of time and with the coming of .NET Core it proved smart once again.

In the early days, my impression was that the build tools were totally overhauled every few months, and not always in compatible ways. JSON projects, xml projects, dotnet-cli.
>The only problem I have with it is it is still really Windows only, hopefully that will improve with .Net Core 3.

I've been writing games in C# that run on Windows, Linux, OSX, iOS, Android, Windows Phone, UWP, AppleTV, Nintendo Switch and more for years now.

Ironically, the most compatibility issues we had was with Windows Phone and UWP.

> The only problem I have with it is it is still really Windows only, hopefully that will improve with .Net Core 3.

I'm developing a C# application on Windows (netcore 2.1) and it deploys and runs on OSX without a glitch.