Why Aren't More Developers Using C#?

preview_player
Показать описание


Hello everybody, I'm Nick, and in this video, I will talk about why more people aren't using C# and whether it's underhyped or not.

Don't forget to comment, like and subscribe :)

Social Media:

#csharp #dotnet
Рекомендации по теме
Комментарии
Автор

C# is a victim of its windows-only legacy. With linux compatibility, more people will start using it, especially since we can do things like AoT etc. I hope that at some point we will see lower level stuff like IOCTL too

dimitris
Автор

It seems like there are actually lots of C# developers than we think, language and framework is easier to stick with and there is no tons of required third party libraries, therefore there is less spaghetti discussions flow on forums. C# is more solid than most other language frameworks

amnesia
Автор

We don't want it to get too popular. We want it to stay in the sweet spot so us C# devs can enjoy a satisfying unsaturated market that is both highly professional and mature.

ManInTheFridge
Автор

Yes, C# is underhyped but it’s changing. And you’re helping that happen a lot. Thanks Nick!

jonathanperis
Автор

Part of the problem is that universities don't seem to have courses with C#. I used to do interviews of college students for intern positions. They all had experience with Java and Python from their courses, but no C#.

brianm
Автор

I did my engineering with mostly C++ and Java but when I first learned about C# in early 2000's I never used anything else.

himanshuk
Автор

I did my uni time on machine code, c++, ada and Java…. When c# dropped I converted that very day and have never looked back. I love c#. It does everything I want.

saberint
Автор

I think the top 1 problem is Microsoft naming their C# related products.
C# is still heavily related to .Net that was already aged when C# came out.
Their web framework is still named ASP, which is again, a thing of the past and people probably still confuse it with ASP Classic stuff that was here almost 30 years ago.
In comparison other languages have a catchy name like React, Express, Django, Spring, even PHP has Laravel.

Also, when they open sourced C#, they missed a big opportunity to rebrand .Net and the general ecosystem, and they just made it more confusing by naming following versions .Net Core.
.Net is still something associated with proprietary windows development in people's mind. I think C# itself is mostly free of that thanks to Unity and game engines.

I really think this is their top 1 issue, C# is one of the fastest and most robust languages out there, and I really don't think more improvements will bring a drastic amount of new people. The fact that it's all in one and you don't need external tools / librairies to do 99% of your stuff is amazing.

Soleryth
Автор

Subjective issues with C#:
1. Strong Windows preference.
2. Ugly naming scheme.
3. It lacks benefits of scripted languages but not as fast as native arch compiled.
4. Language is not that simple (I'd say overcomplicated, LINQ, looking at you) but lacks (to my knowledge) code generation abilities, other stuff that makes life easier.

wdnick
Автор

I think one thing you missed here is that C# (as well as Java) is still considered an "enterprise" level language.
Whereas in Python you can write small scripts for almost anything, C# still has this bandwagon of "you have to study objects to write anything". Yes, with the introduction of minimal API and file scoped namespaces, etc., you now can write scripts in C# too. And that was a great innovation in my opinion. But that only happened a couple years ago. Still many courses show you all the "static class Program ..." template stuff with a comment "Don't worry about all that, we'll deal with that later, here's where you need to write your code". And I think this starting learning curve was scary for beginners. Give it a couple more years to make C# scripts more popular, and C# might even compete with Python (at least as a first language for beginners). BTW, I think many latest syntax changes (e.g. new collections sytax) are moving towards that - more simplicity in simplest scenarios. And it's very good.

sergeybenzenko
Автор

I think a lot of the ignorance about C# is because .NET in general was Windows-only for the longest time and most web servers and a lot of development environments run on Linux.

benuscore
Автор

C# is not present in most university (while Java is), C# is not present on bootcamps where (while Python/JS/TS are).
IMO Unity community as well as individual companies or tech leads which had successful experience with C# are the only sources of new C# vacancies.
And a lot of legacy, a lot of "new" jobs still can have the part where you rewrite/support legacy things.

rstart
Автор

C# seems mostly used by proffessionals in corporations. Those are the type of guys that don't need to ask questions on stackoverflow and will never show their code in a public github repo. Therefor, I think most metrics used to rank popular programming languages massively underestimate how popular C# really is.

rotgertesla
Автор

I started in 2006 with Gentoo Linux and Balmer and Gates were in the past big open source and linux haters. So i had my fokus on ruby, php, java, c++ and so on. Now i have to use c# since some month. Before i was playing with dart and flutter. And what should i say. I love c#. I love minimal api. They remind me a lot to ruby and the simple sinatra framework. I love the vs studio ide. I love everything about it, because my last training minimal api, i coded on a macbook with a mysql db and later, i switched to a ms server db on my working pc and it was just fun. And some old delphi signature moves in this language remind me to good old times. What more can i say. I'm happy to be back in the microsoft team. And yeah, i was very pissed and angry about the microsoft balmer era, but we all have to forgive, if we see, that someone or a big company repentance through improvement.

kittel-dev
Автор

With some 40+ years of developer experience, going from Basic, over Turbo Pascal (by the way also created by the same developer that made C# and Typescript), Visual Basic and C# and many other languages on the side, I agree with Nick that its not an MS hate that is the problem (maybe some of it for sure but not the big problem).

I was in the middle of it when C# was born and the main problem I think is that it came as the replacement for Visual Basic. While VB was a very good language as such, it was seen as a bit of a hybrid between a real language and a script/interpreted language, having been the scripting language for the office programs and a less powerful alternative to PHP and Perl.

C# also targeted a more corporate, large scale application development where C++ and Java where the main competitors and C++ was seen as the "real" language with Java being the easy one.

C# became the "new kid on the block" with the already tarnished VB as its predecessor.

Add to this the windows only and C# had a hard start.

It also took some time to catch up with Java.

C# also suffered from not having performance as an early goal.

Today's C# is so very much more than the original its almost a new language, but the field C# is targeting is not a fast moving one in general and the fast moving part of it favors the new and "fancy" like Go and Rust that have their specialties. Go with a clear focus on parallel processing and Rust for speed.

C# in that regard is also still using the runtime and for developers going with rust and golang, that runtime places C# in the same box as Java, "old and slow" since they cannot imagine that a language with a runtime can actually be very fast.

With the new AOT, multi platform and speed I think C# is technically under hyped right now, but its to old and established to really be hyped ;)

IBM is one of the leaders in quantum computing but I do not think it will matter what they invent, they are still IBM, the old enterprise company that used to build typewriters :)

davidmartensson
Автор

Nick, please do a video on why Minimal APIs are the way to go for modern .NET development. Almost every day there is a Reddit thread asking whether to use Controllers or Minimal APIs and a ton of people are spreading misinformation about the supported features and flexibility of organization of Minimal APIs. A prevalent opinion is that they are used for "toy" or "todo" apps and that Controllers have to be used if you want to do "serious" development. I've written APIs that support everything Controllers do, in a much cleaner and simpler way. Microsoft has spent years removing the old clunky MVC pipeline yet people still shit on them like crazy.

InfinityFnatic
Автор

I work with C# since 2003. Other languages that I have used in the past are C++, Delphi and Visual Basic. I like the syntax of C# and it has a rich set of features. It is not only the language itself but also the IDE (Visual Studio) and the frameworks (ASP/MAUI/Blazor/WPF/EF) that makes it applicable for the whole stack (database, services, web, mobile, desktop, testing, cloud).
Windows specific scripts I write in PowerShell.

TheVincent
Автор

C# is a great and lovely language with very mature ecosystem, you will not face surprising bugs in EF or Linq, and you can get all the best practices with existing libraries like MassTransit, attributes/based generated swagger and so on.

The one point that executed C# at all startups I’ve been working on is that the acquisition of company will be harder.

Startup is expected to be modern, cutting-edge, while potential buyers (or investors) are seeing the C# as enterprise-only.

Pref
Автор

.NET has gone through a lot of amazing and solid technical improvements over the past few years. It's such a shame that everyone still knows it as .NET Framework and it being tied with Windows.

Microsoft partly to blame with their marketing not all that good (their naming makes it even more confusing if anytjing). It's up to us to clear up that misunderstanding.

nitrous
Автор

I began programming as a junior tech art with C# in Unity. C#7 i believe it was. Due to that i didn't get any prior baggage attitudes from elsewhere, the job was sexy. After that i moved to a shop I've been given a lot of free reign in upgrading them to .Net 6-8 and man have the new versions been an utter joy to work with.

I do have HLSL skills for shaders/compute, some js / python and weak C.

Based on my experiences it would take a whole Lot to convince me that C# isn't the next best thing from private spaceships, it has fluent syntax, flexible generics, typesafe inheritance.

And boy the Analyzer support is world class.
Perhaps there is another language that fully exposes their lexer, parser and compiler types along with easy to use tooling allowing fully semantic source generators, easy dataflow analysis, all of that comes with full on syntaxfactories no less.

Perhaps some other language is as cool as C# but I haven't heard of it yet, anyone using the other todays popular ones as better examples are outdated by a decade atleast.

RiversJ