
Ask HN: Do you use and love C#? - hardwaresofton
I&#x27;m particularly frustrated with it right now, and I would love to know how others who do not absolutely hate the .NET&#x2F;C# ecosystem feel so I can have a balanced view.
======
tylerFowler
My experience with .NET was quite frankly awful (and very dated so it might've
gotten better). C# on the other hand I always found to be a joy to use, and
always equated it to "better Java". Though most of my college courses used C#
so I might just be partial to it.

~~~
hardwaresofton
This is what I expected ("better java"), and was disappointed when it was
basically just more of the same. My college courses were in Java (and of
professional work after college), and while I strongly disliked it as well, if
I had to pick I would pick Java(or some other JVM language)+JVM over C#+CLR --
C# just didn't deliver on being better than Java in any appreciable way to me.

Could you think of something specific that you find a joy to do in C# that
isn't a property of the IDE? "true" async/yield (completely stopped coroutine)
is one of the things I was excited about, but quickly annoyed when the
interface to `Task`s was so bloated and unintuitive... Why would somone call
`.CountinueWith` on a task and NOT expect the result? Maybe I'm just expecting
a specific interface out of `ContinueWith` that isn't there

------
flukus
I love c#, although that is waning as the language accrues more and more
features, it's starting to feel like c++ and the stewards seem to want to move
it in every direction possible, from low level high performance to high level
application code.

The .net ecosystem has always been a mixed bag. MS did there best to kill off
OSS usage with some very "me too" offerings early on. It's always been way too
tied to windows. It can often be as enterprisey as the worst java has to
offer. Nuget is used for far to many things like loading Visual Studio
plugins.

.net core is a clusterfuck and seems to have embraced the move fast and break
things motto, this is absolutely not something I or the companies using .net
want. Everything is behind the dotnet build tool, even the compiler as an
independent component is hidden away from you. The whole stack is moving way
to fast for enterprise customers, which was there bread and butter.

~~~
cakes
As an avid fan and (previous) user of C#, the thing I struggled with was
everything moving to Nuget...everything.

It felt very much like Nuget was an attempted solution to DLL hell but it was
just another version of that same hell itself but at least now on your VS
machine you didn't have to find wherever your company stored their libs

------
EnderMB
I don't use C# any more (outside of personal projects), but I absolutely love
it as a language.

ASP.NET has always been a mixed bag for me, and I've always felt tied down by
my decision to restrict myself to the Windows platform. More often than not,
I've found that peoples grievances towards C# or .NET has been more to do with
Windows issues, outside of actual issues with the language.

Outside of Windows, the sheer amount of control over the ecosystem has always
turned a lot of devs away, despite it being something that .NET devs love.
Give me Visual Studio and a decent set of standard Windows tools and I'll be
in heaven, whereas someone that is used to choice might not feel the same.

------
tonyedgecombe
Yes but with a few caveats, the language is getting quite big now, I think it
would be daunting to start from scratch. The core part of the framework is OK,
Forms hasn't kept up with the times and WPF is far too complex. Neither are
cross platform so I'm not starting anything new with it.

------
cryptozeus
What is the frustration ? Is is related to language or your understanding of
the ecosystem and platform ? I absolutely love c#, use it everyday.

------
xstartup
One part of me thinks that they are not going to treat Linux (my favorite
platform) as first class, so this prevents me from investing in C#.

It might not be true but I am not stating a fact, merely expressing my bias
against the dotnet platform. I hope they succeed anyway :)

We now use python, ruby, rust, go religiously.

------
HeyLaughingBoy
Sure, but it's less a case of love and more that the language stays out of my
way.

I care about the application and the end user's experience. Language is just a
means to that end. C# makes it fairly easy to encode what I'm thinking in a
safer way than, e.g., C or C++.

------
dlahoda
C# cannot express generic algorithms on unsafe pointers unlike F#. C# has
dounting inconsitencies in generics inference, delegate and event handling,
operators and in expression-statements, unlike F#. I use C# but love F#.

------
thrway_463845
I love it for the efficiency it provide to the developpers. But, as a Linux
user, I won't use it for my personnal projects.

------
Gibbon1
I would be curious what issues you have with C#/.net

~~~
hardwaresofton
While it's tempting to air my perceived grievances I'm going to decide against
it -- I've seen/done enough with C# that I know I will never choose it for a
personal project (or work on it for a professional project) ever again, not
when options like Go, Haskell, NodeJS + Typescript, Rust, Lisps
(clojure/clisp/racket/scheme) and even Java exist. I'm sure if I typed out
some long list of things I think are sufficient about the language, someone
will take it as an opportunity to "dispell myths" or show me how if I write
~20 lines of boilerplate, it'll be just like the language was ergonomic from
the start.

The C# community doesn't need another naysayer, but I did want to find out
(maybe this is the wrong place to ask) from people who enjoy using it why they
do.

~~~
Gibbon1
My use case is I write a GUI tool in C#/.net, publish it and then hand it over
to field service and production and they never bug me again unless they need a
feature added.

> and even Java exist.

When you mention this, I think you are trolling. I can see starting a
greenfield project in C#/.net. There isn't any reason to start a green field
Java project. Just like there is little reason to start a greenfield C++
project.

~~~
hardwaresofton
Ahh, that's an interesting use case, I haven't written many GUI tools and the
last time I wrote one was in Java (Swing) and it wasn't terrible but wasn't
great either, so C# is pretty good/ergonomic for it?

When I say java, I mostly mean a JVM language... yeah I wouldn't really start
a new project in Java, though I've heard nice things about JavaFX on the GUI
side of things.

~~~
Gibbon1
Implementing GUI apps in C#/.net with visual studio basically just works. C#
as a language is 'fine'. And generics seem to be well implemented. Microsoft
documentation for simple stuff is reasonably clear.

I think .net timers not so much.

