Why Aren't More Developers Using C#?

Sdílet
Vložit
  • čas přidán 6. 12. 2023
  • Use code REFAC20 and get 20% off the brand new "Refactoring for C# Developers" course on Dometrain: dometrain.com/course/from-zer...
    Use code CLEAN20 and get 20% off the brand new "Deep Dive into Clean Architecture" course on Dometrain: dometrain.com/course/deep-div...
    Become a Patreon and get special perks: / nickchapsas
    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.
    Workshops: bit.ly/nickworkshops
    Don't forget to comment, like and subscribe :)
    Social Media:
    Follow me on GitHub: github.com/Elfocrash
    Follow me on Twitter: / nickchapsas
    Connect on LinkedIn: / nick-chapsas
    Keep coding merch: keepcoding.shop
    #csharp #dotnet

Komentáře • 358

  • @ManInTheFridge
    @ManInTheFridge Před 5 měsíci +36

    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.

  • @dimitris470
    @dimitris470 Před 5 měsíci +130

    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

    • @user-og6hl6lv7p
      @user-og6hl6lv7p Před 5 měsíci +8

      I've been using it with Linux, specifically in the Godot engine, for well over a year now. I have almost finished my collision detection system, purely programmed in C#. I can't say I've encountered any major troubles at all.

    • @cheebadigga4092
      @cheebadigga4092 Před 5 měsíci +2

      don't forget Unity (well, before their weird decisions that is)

    • @jongeduard
      @jongeduard Před 5 měsíci

      @@user-og6hl6lv7p Yep it's really great, though it's still good to mention that not all GUI frameworks are available for Linux when used as a desktop system, and none of those created by Microsoft themselves. If you are also into a lot of desktop development like I am, this may feel as a limitation (although I appreciate Avalonia and what I have seen from it).
      Also not having VS can be a thing to consider, I am curious how great the new Dev Kit for vscode is going become and if that will be really successful though. I will not be surprised if there will be a day where VS will eventually completely stop being developed and everything moves to vscode. But that is probably still quite far in the future.

    • @simonhylander7489
      @simonhylander7489 Před 2 měsíci

      the biggest problem is still that its built on top of microsoft fundamentals that c# developers are to ingrained to realise

  • @amnesia3490
    @amnesia3490 Před 5 měsíci +142

    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

    • @emjones8092
      @emjones8092 Před 5 měsíci +5

      As good as it is, why would you choose C# over Go EXCEPT for the situations where you have to align with previous C# expertise(which, even then, isn't the best argument considering how incredibly easy it is to be productive in go). I'm not a Go evangelist. I personally hate the language. But, I think it has a better ecosystem than .NET.
      The second you try to reach into third-party packages in .NET, the documentation quality is also a big dice roll. E.g. - the Dapper micro ORM. It's homepage is called Getting started. And, you can't actually use that page to run any code 🤯

    • @chillydill4703
      @chillydill4703 Před 5 měsíci

      @@emjones8092 Well, a simple thing for me is the clean syntax in C#. In Go, we can write: var myString string = "hello" or myString := "Hello"
      Who likes this? It's just a thing to get used to, we know that - but its ugly. When I read code, I'd like to know what type I'm using so writing var myString string = "hello" is redundant with the "var". Another simple thing is naming conventions in C#. It's clean and descriptive. In Go we have "fmt" like "fmt" what ? Even in C, we have stdio... you can guess what it is.. ok std is probably something like "standard" and io, well that seems like input and output. Like comon..

    • @nickolaki
      @nickolaki Před 5 měsíci +8

      Because the job market for GO is poor

    • @Fiercesoulking
      @Fiercesoulking Před 5 měsíci +5

      Yes this is actually the point C# nuget packages are mostly very flat on dependencies. One of features why this is so is because a function need to be virtual to be overwritten . There are features with which you can bypass this these days which I see as a potential down fall. I mean in Java they stacked framework over framework until it became dependency hell this even include custom VMs for solution. I'm happy C# hasn't this hype because we would get something like React. I have the feeling there is a bee hive of developers who want to sell/hype the most complicated stuff only to cash in on the special knowledge they have about it or get some funding for tooling or framework around it. PS: Never believe the hype

    • @bluesillybeard
      @bluesillybeard Před 5 měsíci

      @@emjones8092 I personally disagree with Go being universally better, but my you are SO right when it comes to documentation.
      When I moved from Java to C#, was I severely disappointed by the lack of good solid documentation even in the standard library. Java is known for over documenting everything, but better too much documentation than too little.

  • @brianm1864
    @brianm1864 Před 5 měsíci +164

    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#.

    • @jasoncox7244
      @jasoncox7244 Před 5 měsíci +30

      I have been teaching C# at the High-School level for more than 10 years explicitly because I don't like feeding students into the Java pipeline.

    • @scottpageusmc
      @scottpageusmc Před 5 měsíci

      ​@@jasoncox7244 good on you! I'm 46 and attended a few university courses about 6 years ago to complete my degree and noticed a pattern. Most of the professors were burned out hippies that stick to their roots. Java being one of them. It seems to be all they really know.
      I started programming in 1986, and have watched this trend for decades.
      It's sad, really, that we're in a place where kids are being taught to ignore their options and instead be stuck with the past simply because of those that teach them.
      Glad to see you're doing what you can!

    • @user-dm2kp3vo2u
      @user-dm2kp3vo2u Před 5 měsíci +9

      I'm a uni student. In my country, there's only one university that teaches C# as their language of choice in the programming courses. Yeah, I enrolled in that university.

    • @sadatarefinrafat
      @sadatarefinrafat Před 5 měsíci

      @@user-dm2kp3vo2uAIUB?

    • @liandrysanguish3103
      @liandrysanguish3103 Před 5 měsíci +3

      The situation in my country is the exact opposite, it's mostly C# here both in unis and schools. The teachers deem it as an easy starting language and Microsofts helping a lot with free tools, azure accounts and some other stuff.

  • @jonathanperis3600
    @jonathanperis3600 Před 5 měsíci +50

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

  • @himanshuk6199
    @himanshuk6199 Před 5 měsíci +78

    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.

    • @tomtoups
      @tomtoups Před 5 měsíci +2

      Agreed 💯

    • @FunWithBits
      @FunWithBits Před 5 měsíci

      Same c++ -> C# around 2002 and hardly used c++ since. I'm glad c# has better performance the last 5 years as that was one of the only things I missed.

    • @gavinw77
      @gavinw77 Před 5 měsíci +2

      Yep, it's a problem that Universities still teach Java across the globe.

    • @Amine-gz7gq
      @Amine-gz7gq Před 5 měsíci

      Just use the right tool for the job. If you want to code in C++, I recommend you to use the Qt framework, its slot/signal mechanism is very powerful and is more efficient than C# delegates : objects have thread affinity unlike in C# where you can easily write buggy multithreaded code. The C# async/await stuff can create more problems than they solve and today I encountered a bug with this stuff (code will only work properly if the method is async).

    • @tomtoups
      @tomtoups Před 5 měsíci

      @@Amine-gz7gq I've been using C# for 20 years, and I haven't had a reason to create a Thread ever since the Task Parallel Library came out years ago. We're not un the 1990s anymore. The compiler 99/100 times knows more than you on how to optimize. As far as async/await, yeah you need to use it if you're performing I/O with hardware. That's not a bad thing. I mean if you're worried about performance maybe you can use a ValueTask or write your own awaiter. Id be interested to see what bug you had.

  • @Soleryth
    @Soleryth Před 5 měsíci +25

    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.

    • @user-cs8ii8tw4y
      @user-cs8ii8tw4y Před 3 měsíci

      Erm ... C# was released in 2001 whilst .Net was released in 2002. I'm not sure how you figured that .Net was already aged when C# came out?

  • @saberint
    @saberint Před 5 měsíci +16

    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.

  • @benuscore8780
    @benuscore8780 Před 5 měsíci +55

    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.

    • @derangedftw
      @derangedftw Před 5 měsíci

      I 100% agree and also have first hand experience on groups of peers saying Docker + .NET != Ease. I on the other hand have argued against that and am very excited for Aspire web projects for the future. Either way, the ecosystem is growing faster and we are growing with it. What a time to be around!

    • @zabustifu
      @zabustifu Před 5 měsíci +2

      Remember that in the first place, Microsoft made .NET after they failed to take over Java and break its portability (see the "Embrace, extend, and extinguish" wikipedia page). So yeah, that bad reputation is going to carry over for years. On a side note, even though we're all used to the ".NET" name now, I believe it is stupid and just reeks of early Internet days. Also, the fact it starts with a dot sometimes makes it hard to search for resources related to it, and the same goes for C# which contains a special character (e.g: on job posting sites, for example).

    • @w01dnick
      @w01dnick Před 5 měsíci +1

      It still Windows first, and a lot of stuff is Windows only.

    • @akulkis
      @akulkis Před 5 měsíci

      ​@@zabustifu
      It reeks of Microsoft being perpetually behind the times while claiming to be THE technology leader.

  • @sergeybenzenko6629
    @sergeybenzenko6629 Před 5 měsíci +6

    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.

  • @w01dnick
    @w01dnick Před 5 měsíci +4

    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.

    • @frosky9497
      @frosky9497 Před 20 dny

      wdym ugly naming scheme
      it has most readable naming scheme ever, you dislike lower pascal case and pascal case?
      and underscore for private variables?

    • @w01dnick
      @w01dnick Před 20 dny

      @@frosky9497 I dislike
      1. Every method and property started with capital letter. Nested class and method/property look alike. It's like all code is screaming at me.
      2. Prepend interfaces with I. E.g. Disposable, Enumerable would be enough IDisposable looks ugly. Stupid "Hungarian" naming leftovers.

    • @frosky9497
      @frosky9497 Před 19 dny

      @@w01dnick
      1. I think method starting with capital letter is a good thing, it seperates it from variables/private fields so a class context which start with a lower letter.
      Properties start with capital because property is always atleast above private.
      therafore accessible outside of the class.
      You dont do nested classes its just bad practice anywhere,also what do you mean property looks alike class have you ever seen a class with getter and setter or used in a context after a dot?
      2.If you read IL or any other decompiled c# code without colored syntax lets say in dotpeek without I prefix you would not be able to know if this is an interface or not.
      This is detrimental to code understanding.

    • @w01dnick
      @w01dnick Před 19 dny

      @@frosky9497
      I hear you, but still disagree.
      1. Exactly because properties & methods are much closer to fields/variables they should look alike, but instead they looks like data types.
      "what do you mean property looks alike class"
      Name looks like name of type. e.g. `Transform` - its name looks like data type, but it could be a property that contains data of Transform type. I like keep them separate by look too. Transform - data type, transform - property.
      CamelCase for types
      camelCase/snake_case for variables, methods and properties.
      2. Proper naming solves that. Suffix `able` (Disposable, Enumerable) already good enough to distinguish between class and interface.

    • @frosky9497
      @frosky9497 Před 19 dny

      @@w01dnick Property is two methods and one field underneath the hood.
      Because what you can DO to that property is always possible outside of private scope
      and the way you change or get value from property is calling those methods, just like you call any other method to change or get anything anywhere else.
      Data type which in c# is object type is always before the name of a field infact... its more preferable to use var suffix instead of defining it.
      `but it could be a property that contains data of Transform type`
      then you just name a property TransformData
      i am still confused
      public Transform TransformData {get; set;}
      public class Transform { }
      Do you not see the difference?
      You can make your own interface which is implemented by any class, IEnumerable and IDisposable are not only interfaces in C#
      You also have for example IList or IReadOnlyList and there is no "able" there.

  • @rotgertesla
    @rotgertesla Před 5 měsíci +43

    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.

    • @Denominus
      @Denominus Před 5 měsíci +5

      That's a problem. C#'s open source ecosystem, while having a lot of packages, doesn't have a lot of big projects that AREN'T driven by MS. Microsoft is driving 99% of the major projects but they can't do everything.
      Before I get whacked, there are some impressive projects (RavenDB, EventStore etc.), but they are few and far between. Compare that to a couple other ecosystems that are basically owning entire segments of programming by having major OSS projects driving them.

    • @doughboy_6439
      @doughboy_6439 Před 5 měsíci +3

      I said basically that in another comment, though I made it a joke. "The reason we see so much stuff online for Rust and JavaScript is because the kind of people slinging Rust and JavaScript have the kind of time to be evangelists. Zing!"

    • @rhoharane
      @rhoharane Před 5 měsíci +6

      It's also used by a ton of newbie and experienced Unity developers, both indie and corporate. That chunk of the developer base may take a huge hit after Unity's shenanigans earlier this year. From a technical standpoint, Unity isn't going to start switching or supporting another language. But Unity itself could become less and less favored over time.
      But it also supports your point. Game devs don't typically put their projects, even hobby ones, as a public github repo.
      On the app front, there's so many better, newer frameworks that cater to mobile + desktop + web. Microsoft is still stuck doing their weird XAML stuff that slows development down. C# isn't going to be the choice if the framework isn't the choice.

    • @Punkologist
      @Punkologist Před 5 měsíci

      yep im one of those guys, I work for an accounting firm.

  • @d-adams-man
    @d-adams-man Před 5 měsíci

    C# is fantastic and growing on a regular basis. I have been in the developer world forever and have seen/used many languages/ecosystems. Once C# came out, I instantly saw how we could use it across the full stack of development (which lowers the learning curve for new developers and contractors), which in my opinion, is one of the largest advantages to having a codebase in C#. Yes, it did tie us to the Windows ecosystem for many years, but now we are moving to containerize your suite of applications. In a containerized world, we get to choose our container ecosystem, and the host ecosystem does not matter.

  • @11r3start11
    @11r3start11 Před 5 měsíci +13

    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.

  • @TheVincent0268
    @TheVincent0268 Před 5 měsíci

    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.

  • @trxe420
    @trxe420 Před 5 měsíci +1

    In my area of work, defense contracting, it is heavily used. I think most of that started because Microsoft was clever with their government contracts tbh. I think in the private sector that lack of portability other platforms hurt the language, but that is changing (slowly, but surely). At this point I personally believe it is a mature framework with more future upside than most languages.

  • @RiversJ
    @RiversJ Před 5 měsíci

    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.

  • @davidmartensson273
    @davidmartensson273 Před 5 měsíci +4

    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 :)

  • @Wickerman1989
    @Wickerman1989 Před 5 měsíci +1

    As a C# developer II have some experience with Python and Django and indeed, C# is a nice comfort zone, where you have almost everything in one place. Whereas in Python I often have to google for 3rd party libraries that I can import. When it comes to Javascript, I also dislike the fact that there are too many package managers, and of course the possibility of multiplying a class with a function can give unexpected results which you basically have to memorize for each crazy combination of the "building blocks".

  • @Pref412
    @Pref412 Před 5 měsíci

    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.

  • @christophbornhardt7888
    @christophbornhardt7888 Před 5 měsíci +2

    i love C#. started in Unity, developed asp (paired with js) and xamarin, and the flow just makes sense to me. my only problem is how expensive the host are. or at least, i haven't found a way to make them affordable for a indie south american developer. that's why i'm changing to php for web (and python is only for non-programmers)

  • @jongeduard
    @jongeduard Před 5 měsíci

    Thank you Nick! Great video and everything well said, it's how things are. Yes, people are critical about large companies like Microsoft (I am too sometimes and for some good reasons), but people just keep using their products, LOL.
    The real reason is indeed far much more the long gone past of closed source and Windows only DotNet and all the stereotypical bias about that which still exists around that today.
    C# a really great languages and after almost 20 years of working with it, it's basically deeply part of my life too.
    And I can only appreciate the all the beautiful work that the dotnet team has done. C# is definitely underrated. More languages are underrated though, but C# is definitely one of these.

  • @ThekillingGoku
    @ThekillingGoku Před 5 měsíci +1

    I've been into the C# ecosystem since getting out of school. In school we started with Java in yr 1, C# was added I think in yr2, but it could have been the 2nd semester of yr 1 too, it's been so bloody long.
    Anyway, I liked both of them until they started on Web-based Java stuff (JSP/STRUTS/...) in yr 3. I pretty much decided at that point I wasn't about to keep doing that shizzle for any amount of years to come and started in C# when I graduated.
    Been doing so ever since. Also, Java & .NET are the most commonly asked developers in my country. If you're either of those, you ain't left wanting for job opportunities at the moment.

  • @nitrous1001
    @nitrous1001 Před 5 měsíci +17

    .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.

    • @nothingisreal6345
      @nothingisreal6345 Před 5 měsíci +1

      why should they. they want to sell Azure and Office 365 based solutions. Not complexe applications written in C#.

  • @toadman5184
    @toadman5184 Před 5 měsíci +26

    In my 25 years of coding, I've encountered a lot of anti-Microsoft rhetoric even within organizations that rely almost exclusively on MS tech. Some of it is justified, a lot of it is just prejudice. Most of it seems to come from the idea that MS = corporate bad guys. I suspect C# is held back by the negative association. It's interesting that VS Code broke through this simply because it was such a good product that it overwhelmed the contrarian pre-conceptions.

    • @tomtoups
      @tomtoups Před 5 měsíci +2

      Agreed. I've been using C# since it first came out. They waited too long to provide multi-platform support and for Microsoft to move past their ingrained proprietary software business model. I watch the video about this on Microsoft and how much of a sea change it was for them to swing the organization into the open source model.

    • @tomtoups
      @tomtoups Před 5 měsíci

      @@ti75425 New leadership makes a big difference.

    • @yoshimaker9636
      @yoshimaker9636 Před 5 měsíci +1

      As someone who's been writing in C# since its 1.0 days (and VB before that), I totally agree with you. For many, many years it was a "Windows only" thing, and took way, way too long to embrace Linux. Microsoft spent way too long dismissing and badmouthing Linux in general and generated nothing but a load of negative perception. And here I am now running C# apps on embedded Linux.

    • @nothingisreal6345
      @nothingisreal6345 Před 5 měsíci

      vim simply SUCKS. On Mac there is no built-in editor.

    • @SaltyChickenDip
      @SaltyChickenDip Před 5 měsíci

      Yeah. I think so too . My experience is you are a .Net shop you use c# . If you don't want to use MS products / .Net you go to Java. The two dont mix.

  • @Selbstzensur
    @Selbstzensur Před 5 měsíci +2

    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.

  • @InfinityFnatic
    @InfinityFnatic Před 5 měsíci +3

    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.

  • @ievgenk.8991
    @ievgenk.8991 Před 5 měsíci +1

    Hello Nick, thank you for the video, I would like to express my thoughts about this topic.
    I former C# developer and currently using typescript on a daily basis and honestly do not want to switch back, but I would love to see more popularity for C#. In my opinion, the biggest problem of C# is a weaker open-source ecosystem compared to other platforms. Seems like MS is not interested in investing in OS, they do not help evolve community projects properly instead MS steals ideas and implements own solutions, and then OS solutions cannot withstand such competition and slowly die. Also, projects implemented by using C# (in my opinion) are more verbose and heavier and not such simple compared to ts or go, for example, because of the OOish nature of language. So that's why simpler (but still very powerful languages) with great OS ecosystems have more growth compared to C# in my opinion.

  • @AlexanderBelikov
    @AlexanderBelikov Před 5 měsíci

    I'm using C# since .NET Framework 2.0 (the one which introduced generic types as more efficient replacement to ArrayList). I've also tried aside JavaME (for nokia lol), some php/perl/pascal lol, c (arduino), javascript. There were definitely darker days for C#/.NET. Today it looks much brighter and better. It worked very well for me for different projects of a wide range. From Enterprise systems to pet projects around air fuel mixture auto tuning over a custom arduino based board I developed and integrated into my project car. Language and tools are getting better and better. Long live C#!

  • @nhall78
    @nhall78 Před 5 měsíci +15

    In my opinion, C# is a fantastic language. However, the problem I see is taking a job in C# most of the time means taking a job where you work in the "Windows" ecosystem. When I worked in C#/.NET, we all worked with Windows and Windows Servers. No one ever worked with Linux. When I left the C#/.NET world, I was introduced to Linux which opend a whole new world; TMUX, VIM, Bash, ..etc. This is cool to many devs! I think the "Windows ecosystem" is what discourages new developers.

    • @IamScazy
      @IamScazy Před 5 měsíci +1

      modern dotnet isn't tied to windows by design

    • @gerdokurt
      @gerdokurt Před 5 měsíci +1

      I think what discourages people is people telling them that real programmers use linux because someone who was told that 20 years ago for good reasons told them 10 years ago.
      I cant generalize it, but I often hear arguments in these discussions that are outdated for a decade because everyone is in a tribe and reached a point where reinsurrance isnt a thing?

    • @Pouya..
      @Pouya.. Před 5 měsíci

      I use Windows and I code ( mostly my front-end codes ) in WSL... With WSL you have both worlds under your fingers

    • @alex250mc
      @alex250mc Před 5 měsíci +1

      Totally agree. Most companies with .NET stack use windows because either developers only know how to work with windows or the whole company’s infrastructure is bound to windows specific stuff. Linux development seems to be an on-paper feature. That sucks very much

    • @aamorous
      @aamorous Před 21 dnem

      ​@@alex250mc на macOS в дотнете не популярно писать?

  • @eramires
    @eramires Před 5 měsíci +1

    C# is basically my life, I started using it when it was released to the World all the way back to 2001/2002 and it is my main work horse ever since up to now, I do use Typescript ofc and JS, but I would not want to migrate to anything else, I hope it lives forever. :D Remember that trends die out, fashion dies out, and the most robust and stable things, last for a long time. 🙂

  • @aj-jc4cv
    @aj-jc4cv Před 5 měsíci +3

    I think while c# is excellent, it doesn't offer anything unique: python has data science and ml, javascript owns the client, kotlin and swift are mobile and rust is for systems + performance. The other reason is I have never seen any CS dsa in c#. The perception seems to be its for enterprise with microsoft related offerings.

  • @SkandiaAUS
    @SkandiaAUS Před 5 měsíci +1

    One thing I noticed doing Advent of Code is how much more code I'm writing in C# compared to Python. There are two reasons I can tell:
    - I'm not a good as programmer as some of the authors of the code I'm reading
    - Python has some nice list expressions and is very relaxed around types
    It's probably why C# feels more heavy than others. It's best suited to apps going to production and supported by teams for a long time. Other languages have their niche in getting up and running as fast as possible and for processing data streams like Python.

    • @crypticsailor
      @crypticsailor Před 5 měsíci

      Everything has types. Scripts tend to be more flexible since they're not meant for pure speed. But you can also use "var" and "const" in C# to infer them automatically.

  • @AnsisPlepis
    @AnsisPlepis Před 5 měsíci +1

    JavaScript has been able to cover pretty much everything I need, but after recently getting into C# (with lots of skepticism), I can say its honestly an awesome language. I think the reason JavaScript is so popular is cause you can have your backend and frontend in the same language and its hard to say no to that.
    Also, I feel like C# has a very bad image. Many people I've told about it see it as this weird, legacy, verbose, windows only cousin of Java, but I'm happy to see that things are slowly changing, especially thanks to youtubers like yourself

  • @CuriouslyContent
    @CuriouslyContent Před 5 měsíci

    Ultimately I think all this boils down to is productivity and ecosystem. The more productive the language, tooling and ecosystem of packages and libraries are, the better adoption will be.
    That’s why C# has been gaining in my opinion. MS has the ability to pour large amounts of effort and planning into long term projects. Because of this they have been creating a behemoth of developer productivity and more and more developers are discovering those bits that are truly impressive.
    If MS just keeps on this track, they will be in the top 3 in a decade or two I think.

  • @mgltuba
    @mgltuba Před 5 měsíci +1

    i worked too many project any other languages. C# is fantastic language. nuget package manager is awesome. Angular, react, vue js templates and C# documentation is very good. Maybe leading now. My problem is can't run dotnet on freebsd but i believe. Thank you MS and thank you too. Sorry my poor english

  • @yoshimaker9636
    @yoshimaker9636 Před 5 měsíci +5

    I think a lot of it is borne of ignorance. I very recently worked at a medium sized company with many very, very good developers. Some of the best I've worked with in 30 years. I was really the only .NET developer in the company, and I was amazed at the number of senior-level developers that were surprised to learn than apps written in C# would run on Linux. In 2022 they still thought "C# in Windows-only". To prove to them that it truly is cross-platform, I wrote apps that ran on Linux ARM and we literally sent them into orbit. I wrote apps that ran inside their k8s clusters. I wrote services that ran on military vehicles. It's not that they hated the language, or that they hated Microsoft, they simply didn't know that it was even an option.

  • @robertdomico3622
    @robertdomico3622 Před 5 měsíci +2

    I am primarily a C# developer. My company just brought in new management and they want us to use Node now. No reason given.

  • @DevonLehmanJ
    @DevonLehmanJ Před 5 měsíci

    Disclaimer: been a C# dev since i entered the workforce having done Java through college. I would 100% encourage any new developers to learn C#. It's incredibly flexible, imo it is "sexy" because of the features it has over Java, etc, and the job market has lots of demand for C#. For existing developers, I agree with how you said it's difficult to switch over. I think learning it could be valuable, but deciding to change job positions to a new language is a daunting task to a seasoned dev like me.

  • @akachomba
    @akachomba Před 5 měsíci

    I think it is not just about the MSFT stigma, I think in general class-based OOP Languages such as C# and Java are falling out of favor mainly because they intrinsically promote the overuse of encapsulation and Inheritance which I guess have proven to lead to more complex and and harder to maintain code, that might be one of the reasons why people choose Go (over C#) which promotes simplicity and the use of composition over inheritance plus you can have standalone functions and its commutity is not obsseded with clean code/DDD. I believe it's a bit harder or takes more experience to write good C# code mainly because most of the language features were created back when OOP was considered the right paradigm and while they have been introducing more FP features it feels like a hack rather than a proper design (e.g default. Interface implementations) . I recently started learning Rust and I think they got it right (no null pointers, no support for inheritance, highly expressive trait system and type inference, data and behavior separation, functional programming approach to error handling, first class support for pattern matching, discriminated unions) it's surprisingly easy to write code that adheres to today's best programming practices in rust.

  • @imanhpr
    @imanhpr Před 5 měsíci

    As a formal c# hater you convinced me to take yet another chance to it

  • @sorcdk2880
    @sorcdk2880 Před 5 měsíci

    From what I have seen of it C# is a very heavy object oriented language, which makes it fall into a similar category as Java. They each have their pros and cons (with Javas main advantage historically being able to run on my types of devices), though from what I have seen in most places where one can make a good transition from Java to C# it has been done, including the university courses teaching objected oriented programming.
    Now heavy objected oriented languages generally do not get super high on individual developer productivity, because the classical way to solve problems in them result in needing a lot of components and often complicated class heirachies, which can both be hard and complicated to set up well, and may require many lines of code, often escasperbated by those languages being verbose in the first place. What they do excell at is scaling production to enterprise level teams and projects, because those same complicated class heirachies can be designed by those more experienced developers or even architects, whereas the actual implementation is easy to split up into smaller and simpler chuncks based on classes, methods and such, which allows you to assign them to junior or intermediate programmers and still get a decent result. This allows scaling the same way that multiple computers are used to scale server farms up (many cheap ones) instead of trying to go for one single strong piece of server.
    This also leads to some of the problems with this language: There just is not as much need for people highly skilled in the language, as a lot of the work gets pushed to those junior or intermediate programmers, so it does not in the same way make sense to focus on hiring highly skilled developers, who in other contexts often provide a better value/cost than others. This in turn also leads to it becoming much less interesting to become really good at such a language, though there still is demand for those highly skilled, but it is more for rarer specialist (like in game development) or architect like roles. This naturally leads to less hype and more of an excel like emotional investment (mind you excel might be really good, it at least seemed to have improved a lot since I moved on from it).
    One thing to keep in mind is that once you reach a certain level, picking up new programming languages becomes trivial, at least to get to the proficient level in them with. For instance when I picked up C# some years ago, I did it by just straight up contributing to a codebase, without needing to go through more tutorial than doing a few quick searches to check whether my thought of keywords and syntax was right. Most of your good knowledge is very transferable between languages, and it is only really specific knowledge about a languages qurks, special features, and libraries that you cannot transfer. That also means that if you want to build a more long term career, then you want to invest heavily in more transferable knowledge and not get too married to a specific language or some of the libraries connected to it. The only ones who have a long term chance with that practise is frontend developers doing javascript, and even then they tend to marry themselves to frameworks that 5-10 years later usually turn out to be really problematic and need replacement, much to the distress of the married developers.
    Overall, at the times I have looked for it, I generally saw C# be relatively common as use in job postings, while "latest fad" languages like Go, Rust, and node based javascript are extremely rare. C# is overall mostly for business and game development, and even then from what I have seen of it in game development, it struggles there for more serious projects as games can be one place where you really need all the performance you can get, and the overhead at that point from the JIT is not insignificant.

    • @antosha2224
      @antosha2224 Před 5 měsíci +2

      thank you for the comment chat gpt

    • @sorcdk2880
      @sorcdk2880 Před 5 měsíci

      @@antosha2224 It is weird getting accused of being a chat bot.

  • @FunWithBits
    @FunWithBits Před 5 měsíci

    Yes. Because of the performance rewrite of C#/.net (with the core thing). C# circle (in venn diagram) is wayyyyyyyyyy larger IMO.

  • @Micke2nd
    @Micke2nd Před 5 měsíci

    without having watched the video - that's exactly the question I ask myself regularly. and now I'm curious to see what conclusion you come to 😉

  • @vertxxyz
    @vertxxyz Před 5 měsíci +7

    "If Unity decides for some reason to go with Rust or go off to any other language"
    This is absolutely not going to happen any time soon. They're dedicating so many resources right now to upgrade the engine to the latest .NET, and that will have a long tail, with the next generations of the engine being focused around that as a core feature.

    • @sealsharp
      @sealsharp Před 5 měsíci

      IL2CPP shows a dedication to C# that should not be underestimated.
      I wonder if they work on replacing Garbage Collection with reference counting.

  • @pillmuncher67
    @pillmuncher67 Před 5 měsíci

    After using C# professionally for a year after it came out some twenty years ago, I took a look at it again this year and was very pleasantly surprised. I still have more love for Python and Clojure, but if I were asked to program in C# I'd not be annoyed, like I would be if I had to program in C++ or Java.

  • @proosee
    @proosee Před 5 měsíci +1

    It's not the language, it's the toolchain and community. Most development now is for web, you need harmony there, if I choose node + react I can use GraphQL or tRPC for communication and I have no problems like that my UI breaks because DTO has changed. Of course you can try to use some other tools, but, two problems:
    - they are not so developed and natural as in other languages, have you ever tried GraphQL in C#?
    - people in community are often against it, they don't understand frontend and its challenges, that means that even if you want to make development faster for frontend developers, you might be the only one in team and you still end up creating REST API that will have manually written clients on frontend
    And there is mobile, where it's far easier (for now) to just use something like Meteor or languages native for the platform than use Microsoft tools.
    The language is good, even though we still missing discriminated unions.

  • @jEyLaBsCEO
    @jEyLaBsCEO Před 5 měsíci

    When did you last check VS Code?

  • @CharlesBurnsPrime
    @CharlesBurnsPrime Před 5 měsíci

    In my experience with many corporate developers, they think C# today is the same as .Net 2.0 or maybe 4.0.
    Others use Java because so many mature tools were written with it, like Grails, early Android APIs, and Eclipse. Those tools are barely usable compared to what we have today, but those are the tools their company was built on decades ago, and that's what they use in their job.

  • @wolle1965
    @wolle1965 Před 5 měsíci +2

    I have 2 opinions on this: As a Linux developer, I couldn't just create a desktop application with a few controls like in old-days WinForms or WPF.
    Also, I think C# would benefit from a versioning of the language that allows to make changes and get rid of the "old style" of verbose C#. It's just confusing and probably harder to learn when you have too many options for the same.

    • @commonsensesoftware
      @commonsensesoftware Před 5 měsíci +1

      Breaking changes are a real thing and something you should very consciencely do. A better alternative (IMHO) is to simply disallow older constructs. You can easily enforce that with Editor Config. For example, "csharp_style_var_for_built_in_types" can require using "var". There defaults, but you decide if it should be just a suggestion or strictly enforced. Better still, most of the tooling provides a way to "Quick Fix" violations to the rules - new and old. Legacy codebases can quickly be refactored using that technique.

  • @Pouya..
    @Pouya.. Před 5 měsíci +3

    Between Microsoft and Apple, Google... I think Apple and Google desire more hate from developers... And I don't know why people are OK with Mac OS closed source and not Windows and are OK using IOS and not Microsoft products... That's just crazy

  • @cnikolov
    @cnikolov Před 5 měsíci

    C# have tons of magic underneath that is hard to override without decompiling or big digging in the net

  • @taqial-faris6421
    @taqial-faris6421 Před 5 měsíci +2

    I was forced to work with python, it made me appreciate .NET even more. Just a simple every day thing such as json config with bunch of enum values becomes whole new adventure in python.

  • @ioancristinelistrate2057
    @ioancristinelistrate2057 Před 5 měsíci

    I believe people should also acknowledge that .NET went through some tough times, given the initial dependency on Windows and PC platform itself, especially when mobile apps came in very strong.. but they made it, is now stronger than ever

  • @marcuspvxea
    @marcuspvxea Před 5 měsíci

    After looking at Java, Python and C#, i ended up going with C#.
    - ALSO C# IS SUPPORTED ON ALL IOS. That is because you can do .NET Core in Visual Studio which can be ported to OS. Dont get why people keep trying to claim its locked to being Windows only. for Example .NET Core and ASP
    I dont regret it at all. By far the best decision i took. Mainly because i can code in java very easily since the languages are nearly identical, but the logic in C# for a coder is far more understrandable and visually appealing than Java is.
    Also you can make Forms with Visual Studio which will greatly help you with coding your own window applications/programs with no issue. For python and Java it's such a much harder way to do that.

  • @lyudmilpetrov79
    @lyudmilpetrov79 Před 5 měsíci

    Also the issue is in not much around machine learning in C# when I studied few years ago machine learning it was Python and Javascript but not sure now

  • @F1nalspace
    @F1nalspace Před 5 měsíci

    I used many programming languages in the past 30 years, starting with basic, moved to borland delphi for more than 15 years, then using webstuff for many years, than moving to java due to work and now using c# for over 10 years + a bit of c99 and c++. And from all that languages, c# is the best language for me. It has most features i want and works as a language with the compiler quite well. But one thing that i always fight with is „visual studio“! Yes it can do a lot, but it is so unrelieable, unstable and extremely slow - especially when working with c#/net and the UI tech stack like (winforms, wpf, maui)
    This is one reason, why developers dont want to work with that. I am aware, that there are alternatives out there, but for desktop or library developers „visual studio“ is the best one - even though its kind of bad.

  • @polzaoops90
    @polzaoops90 Před 5 měsíci +1

    Something that I feel as a C# developer, is that C# is more commonly used in enterprise company, and in the other hand is not so popular in startups

  • @cotton9126
    @cotton9126 Před 5 měsíci +1

    There are certain use cases (very large XML documents) where C#/.NET would be extremely useful at my workplace, but nobody wants to learn it over Java. It's a bit sad.

  • @AlanDarkworld
    @AlanDarkworld Před 5 měsíci

    Kotlin dev here. I'm always on the lookout for what's happening in the tech world. I've considered C# a "better Java" for years. Now I consider Kotlin a "better C#". C# carries a lot of legacy. How do we perform proper null checks again? I think we have... 5 variations in C# that all work ever-so-slightly different? Also, C# (unlike TypeScript, Kotlin and Rust) still has no proper comprehensive and mandatory way of preventing NullPointerExceptions at runtime. Yes there have been tentative efforts with "param?" - but if there's no "?", is it guaranteed to never be null? Or is it simply legacy code?
    In addition comparing languages, we should also compare runtimes. The CLR has stuff like Spans for stack allocations, but the JVM has TLABs and recently got virtual threads. CLR had vectorization for quite some time, the JVM is only recently dipping into that. The languages are important but ultimately they're just one side of the medal.

  • @erikslorenz
    @erikslorenz Před 5 měsíci

    I think it's that it seems like a high barrier to entry due to Visual Studio being seen as necessary, which is weird compared to other popular languages. Also they missed the boat on front end JS frameworks and lost like an entire generation of web devs. Although with things moving back to more server-rendered stuff I think they should lean into that instead of trying to copy JS frameworks 8 years after the initial popularity surge lol. I think pushing a full stack framework that's stable, etc. is a good move moving forward. They need something on the front end to spice it up a bit though (something HTMX-like imo) for basic interactivity.

  • @user-lw6iz7zy2o
    @user-lw6iz7zy2o Před 5 měsíci

    I think C# is staying around where it is, similar to java which makes it neither under nor overhyped. As most older languages it carries around quite a lot of baggage of old ways of doing things which are documented everywhere, making it very unattractive to get into compared to "newer" languages where things look a lot more straightforward.
    C# Also has lots of syntactic sugar which is neat if you know all of that (like kotlin) but it also means you need to learn a lot to get started. Compared to golang which can do very little but everything is build out these simple building blocks.

  • @magnanimist
    @magnanimist Před 5 měsíci

    c# has 1/4 the jobs on job boards that Java, Javascript, and c++ have. Further microsoft is pulling support from Mac, further entrenching it as a second class os along with linux… What about any of this makes it appealing to learn?

  • @broganking9830
    @broganking9830 Před 5 měsíci

    C# is pretty popular in game dev land. Maybe not so much for web dev and server side code.

  • @pikanchion
    @pikanchion Před 5 měsíci +2

    There's next to no chance of Unity switching away from C#, if for no other reason than it would take their current team at least a decade to switch to any frontend other than C++. Their attempt to go just from .NET Standard 2.1 to any version of .NET Core has taken almost 5 years already and seen the target gradually slip from .NET 5 to 6 to 8, with no end in sight yet.

  • @azad2096
    @azad2096 Před 5 měsíci

    Here a proud C# developer!!! there are many of us!!

  • @Cod3rMax
    @Cod3rMax Před 5 měsíci

    I learned c# last year i really like it

  • @cesarrodriguez1399
    @cesarrodriguez1399 Před 5 měsíci +2

    My workplace was a .NET shop. They started shifting towards other platforms/frameworks. The main reason is pretty much the stigma that comes from Microsoft and past approaches they have taken. Our shop is slowly dumping .NET code wherever they can. Which is a shame, specially after .NET 5, which is where I think the framework really started being super great again.

    • @nothingisreal6345
      @nothingisreal6345 Před 5 měsíci +2

      Don't worry. It will come back. Once managers understand that JS and Python are dead end road technologies they will sooner or later come back.

    • @cesarrodriguez1399
      @cesarrodriguez1399 Před 5 měsíci

      @@nothingisreal6345 they are starting to realize this little by little

  • @PeterKese
    @PeterKese Před 5 měsíci +1

    I used to like C#.
    But then one day I learned F#,
    and now I have no intention to going back to C# ever again.

  • @deathlife2414
    @deathlife2414 Před 5 měsíci

    It is good language but what it has difficultly with is in linux support. I am studying rapid application right now i installed and had difficulty setting up LSP. It crashes in vscode
    And i cannot use visual studio code community b/c it is only for windows and i don't have hardware compatible with new versions of windows 10 and can't use window 11.

    • @davidfowl
      @davidfowl Před 5 měsíci

      Are you using the C# Dev Kit?

  • @dirtyworkinc
    @dirtyworkinc Před 5 měsíci +2

    Nope. This ALREADY affects drastically popularity of .Net, C# and F#. We can see that even now Microsoft starting to behave aggressively with OpenAI deal, with VS for Mac with 0 Rider mentions, with this new dev kit for VS Code that now also PAID that left us with no free popular IDE/Text editors that supports C#.
    I am personally started thinking about switching from C# and creating backup plan with different technology stack because I don't want to work all my life in legacy enterprise and with new policy and business strategy that Microsoft revealed us once again this just too big red flag for me.

    • @hugochavez6170
      @hugochavez6170 Před 5 měsíci

      How much do you spend for consuming alcohol, coffee, fast food etc. EACH MONTH? Or for some trash? Aren't you as professional SW developer able to pay for fully featured IDE, which fastens your coding speed and increases your productivity?

  • @andrewmanyore9913
    @andrewmanyore9913 Před 4 měsíci

    I think it's underhyped. My software development journey started with C when I was still in college. I went through various programming languages when I was trying to figure out what I needed to do. It was Java, C++, PHP, Python, Django, Laravel, and CodeIgniter at one point. I later realized that I had a neck for game development, so I started out with Java. Then I learnt about game engines and I started learning Unity 3D. Because game development is not popular from where I came from, I decided to start doing enterprise application development. I then started learning the .Net platform, this is where I came to appreciate the power and versatility of C#. From games to mobile apps, to native desktop apps to web apps, to front-ends and back-ends, C# is really a Swiss knife.

  • @thomaskmfdm
    @thomaskmfdm Před 5 měsíci

    I think c# as a language is excellent and I've developed in it for 10 years despite coming from a Linux oriented open source background, but Microsoft creates serious problems in the ecosystem which drive people away: the (re)naming of products make it next to impossible to find answers if you must touch legacy code, Microsoft internal department competition determines which supporting projects get funding to be well developed and which don't but Microsoft will push them all as fully production ready even though quite a few would be considered alpha by most standards (like MAUI, some blazor configurations). People in the industry long enough remember the silverlight debacle and there are multiple features that were in framework that core is only now getting and for which there are only semicomplete highly painful migration paths. Despite this, the language itself is beautiful and it is a lot less pain to maintain projects in it than, for example, typescript projects which need rework every 6 months due to library upgrades.

  • @jamesc3505
    @jamesc3505 Před 5 měsíci

    I think the Microsoft association, Windows-only, and closed source past are all issues. Having used Microsoft Windows, Word, and Excel in the past, and had them crash on me, I wrote off C# as being from Microsoft, so probably crap. Typescript I never saw as a Microsoft thing, but an open-source thing. VS Code was obviously a Microsoft thing, given the association with Visual Studio, but I think it was open source and cross platform from early on, and Microsoft had improved by that stage, so I was willing to give it a chance. It took me a while to come around to C#, though.

  • @nhatducvo4478
    @nhatducvo4478 Před 5 měsíci

    C# and the modern .NET Core framework excel in web development with strict code practices and a rich set of third-party libraries. However, when it comes to integrating with open-source data platforms like Apache Beam, Kafka Streams, or Apache Flink, C# lacks native support, making it seem less mature in the data ecosystem compared to some other languages.

    • @antosha2224
      @antosha2224 Před 5 měsíci

      C# have official kafka support

  • @sakesun
    @sakesun Před 5 měsíci +4

    Most customer don't care the language used for the project. And when they do they usually approve C# because they know Microsoft. Bias against C# usually exist in some dev culture only.

  • @uglypie182
    @uglypie182 Před 5 měsíci

    For me C# is underused because 1. No union types, literal types, and type shenanigans in general. It makes it impossible to represent certain data structures safely and without boilerplate. It's like a straight jacket for the mind 2. Idiomatic C# is often unnecessarily complex. Classes and state where there doesn't have to be. Layered architectures are commonplace. This isn't C#'s fault obviously, but it's related.

  • @AveN7ers
    @AveN7ers Před 5 měsíci +7

    1:48 theres no way Javascript is less used than C, C++ and C#

    • @tomtoups
      @tomtoups Před 5 měsíci

      yeah. I wonder where the data from that chart came from and the methodology. there's a million different ways to quantify that. That's why I don't like charts in general because they are misleading

    • @heavymetalmixer91
      @heavymetalmixer91 Před 5 měsíci +1

      There actually is because those languages are used in many different applications, while JS is exclusively for web dev (and some apps like VS Code). Now, you've gotta consider that what he shows in the video isn't a rank list of usage but of how often people search in Google for info about that language, both are related but not the same in all cases.

    • @johnsuckher3037
      @johnsuckher3037 Před 5 měsíci

      datadog shows that on AWS lambda .NET is behind Java and even Go and most use JS and Python. I would think this is where modern code lands on as well. Under custom runtime a lot can fall so I doubt it's .NET docker or NativeAOT

    • @tomtoups
      @tomtoups Před 5 měsíci

      I learned that .NET without AOT is not a great choice for a short-lived process such as Lambdas. For longer-lived apps, it can be faster even without AOT due to dynamic JIT compilation that is based on observed usage patterns, not just straight compilation to native. I saw an article that said it outperforms Golang on APIs. But .NET w/ AOT on lambdas runs like a race car. What's more, AOT doesn't even require a .NET docker layer to run, unless you need to compile in the container. So you could have just a base linux layer and then executable. So cool

    • @nothingisreal6345
      @nothingisreal6345 Před 5 měsíci

      Forget the Tiobe index. There Visual Basic is still in the top 20. BS.

  • @Axel_Andersen
    @Axel_Andersen Před 5 měsíci

    TL;DR The bottom line is that the language does not matter much. It is everything around it that matters, the libraries, the APIs, the community, the tool chain. Having programmed actively, and still do, for 35 years in about six languages (and dabbled with a dozen) I have never found that the language much mattered re my productivity nor quality of coding , if any ;)

  • @chairmancat3668
    @chairmancat3668 Před 5 měsíci

    C# is extremely popular in Hungary.

  • @ilia-tsvetkov
    @ilia-tsvetkov Před 5 měsíci

    that's an old video. Did you re-upload it? why?

  • @UnnDunn
    @UnnDunn Před 5 měsíci +1

    In 2023, the vast majority of mass-market software development (ie. not specialized, professional-grade tools or line-of-business software) is targeted at either web or mobile platforms. And historically, C# didn't have a good way to target those platforms. Xamarin cost money in the early days so no-one used it, and Blazor came quite late to the party after nodejs and react captured the hearts and minds of web app developers. So C# was relegated to the aforementioned line-of-business/enterprise/professional space, which simply isn't sexy.

  • @sealsharp
    @sealsharp Před 5 měsíci

    People chose languages because
    a) they use them anyways
    b) they serve a specific purpose really well
    Roughly 15 years ago:
    Oh look, smartphones. Everyone got one. Suddenly most devices people use no longer run Windows, but Android and iOS.
    Oh look, everything is online now. Suddenly most stuff happens in a browser.
    JavaScript is required anyways for the web. ObjectiveC/Swift, Java also for mobile devices.
    Companies built technology that served that new purpose like NodeJS and Go.
    C# was not replaced. A new world of developement appeared out of nothing within a few years and c# was neither required nor the technically best solution to a common problem.

  • @Bliss467
    @Bliss467 Před 5 měsíci

    I do prefer kotlin and rust to c#, but I’d be lying if I didn’t say that when I write kotlin, there aren’t features I seriously miss from c# (and vice versa)
    c# is so far ahead of Java in terms of enjoyable coding experience it’s not even funny. It’s frustrating.
    I’ve had to write Java a lot for work recently and I do admit I recognize some things I can appreciate: more than anything it’s consistent. The syntax never changes. There’s no syntactic sugar but you never have to learn anything new. c# takes the opposite approach and many could accuse it of feature bloat, but I think that’s what makes it sexy and Java so unbelievably dull.

  • @marco.loetscher
    @marco.loetscher Před 5 měsíci

    Yes, it shoud!

  • @path1024
    @path1024 Před 5 měsíci

    I switched from C++ to C# almost 20 years ago and I only use other things like Python or Javascript when I have to for web or AI. Both are called from my C# apps, never stand alone. There isn't anything I like better and I've used it all. My MMO is in Unity even though I think UE is better... only because I refuse to switch back to C++.

  • @mintx1720
    @mintx1720 Před 5 měsíci

    As someone who worked on C# a lot and likes the core language overall, I still have no idea how msbuild works. That's probably why.

  • @encilaj1444
    @encilaj1444 Před 5 měsíci

    it always defend on your market.

  • @joseantonioserrano6103
    @joseantonioserrano6103 Před 5 měsíci

    C# with multi platform support is what's causing for it to grow. Let's see what happens with MS removing future support to VS for Mac, but adding the C# Dev Kit for VS Code.

    • @nothingisreal6345
      @nothingisreal6345 Před 5 měsíci +1

      .net on Mac is dead. Apple does everything possible to isolate it's eco system. And Apple fanboys never ever use dotnet. When they start VS Code in the morning they first call Apple and ask for allowance.

    • @joseantonioserrano6103
      @joseantonioserrano6103 Před 5 měsíci

      😂@@nothingisreal6345 In my company team we have one fanboy. He has to use Visual Studio, because most of our software is MS and .net Framework Based. He hates it, but fell in love with VS Code 😅The only thing we use Mac/IOS for is for our mobile versions of our company apps.

  • @KonradGM
    @KonradGM Před 5 měsíci +1

    I think big thing is that if you look at popular languages like python, javascript, rust etc what you see is they are a new way of prograaming, closer to functinoal / procedural. C# still has a lot of Java decisions, meaning that yes we have top level statements in 1 file, but if we want to use any other file we need to make a class even is static one. Soo i think thats the biggest issue in language itself, where it is kinda stuck between new modern one that i like, but still has a lot of legacy java thinking process stuff that even as someone who likes the lanaguage, can be painful to use.

    • @JaconSamsta
      @JaconSamsta Před 5 měsíci

      Yeah, lots of baggage that could have been avoided. But I guess hindsight is 20/20.
      Personally I don't want to work in a language that is still struggling with the "Billion Dollar Mistake" and thinks throwing exceptions is a good idea.
      Especially when it's an all round higher level language and could easily afford to make the experience fairly nice.
      Rust definitely shows that it can be done with very low cost, but I'd happily trade off some of that low cost for ergonomics that are a bit nicer out of the box.
      Kind of a shame, because some of the modern additions are really nice.

  • @MrNickygr
    @MrNickygr Před 5 měsíci

    Amazing language. Came to # from ++

  • @MacroEnabled
    @MacroEnabled Před 5 měsíci +1

    Open source activity in C# is too small and the multi-platform support is too little too late. There has always been way more innovation going on in the Java ecosystem (Kotlin, Clojure, Groovy, Scala, tons of full stack frameworks to choose from, etc.)

  • @aaaabbbbbcccccc
    @aaaabbbbbcccccc Před 5 měsíci +1

    The primary issues with C# are:
    1) The Windows-only legacy, which definitely made people step away from it. Even though now it can be used in Linux, the general perception is that it isn't a viable option for non-Windows development.
    2) The primary target usage is for applications development, which is less and less common. Most things are web-based these days, which means a clear seperation between front-end in Javascript/React, and backend in some backend language - usually running on Linux, so see above. Python & Go are more likely to be used here for rapid development, slow-execution languages, and C/C++ for high-performance, slow development. Ultimately it comes down to "what problem are you trying to solve?". Most of the time you either need high performance, or you don't - so C# sitting in the middle doesn't help it.
    3) Speaking of performance, it's better than many other languages, but it's far from fast. Fast is C, C++, Rust, etc.
    4) The boilerplate/effort required to develop in C# exceeds that of the most common low-performance languages like Python, and isn't far from C/C++/Rust - except these languages give you the performance in return. Sure, you don't have to deal with memory management, but this isn't a significant issue. A bigger problem is the ecosystem, and on the ecosystem front Python is far ahead of C#. For performance-based software, ecosystems are generally to be avoided anyway because you want to write something that solves your specific problem as fast as possible, which usually means rolling your own rather than relying on library support.
    5) General language fatigue. If you've got a front-end language (Javascript w/ React), a backend 'glue' language (Python), and a performance language (C), which problem does C# solve that these languages don't solve better? You *could* argue that you'd want to use C# for all of the above and standardise your codebase, which would be an excellent idea, except C# is simply too verbose for a 'glue' language, too slow for a performance language, and I frankly have no idea how you do frontend web development in it. Realistically, introducing C# would be an additional language that might solve a few problems that fit between the above issues (most likely between your Python glue and your C code), but the extra burden of growing your technology stack would likely not be outweighed by the benefits C# would bring - especially if you could instead write C++ and get 90% of the benefits C# offers.
    tl;dr C# tries to fill a niche that doesn't need filling anymore. It was good for Application development but as more things move to the FrontEnd/Backend Web-dev split, the demand for this has dropped, and the effort:performance trade-off isn't good enough. C# is not significantly easier to write than C++, and yet is many times slower.

  • @KodingKuma
    @KodingKuma Před 5 měsíci

    I think it's the sophistication level of the language that makes it harder to enter. But to top it all, I don't think a lot of people are aware that Typescript is made by Microsoft, period.

  • @luuc
    @luuc Před 4 měsíci

    tbf, I don't really connect Microsoft with TypeScript

  • @dcuccia
    @dcuccia Před 5 měsíci

    I think the anti-Microsoft argument is a valid culprit in some scenarios. I think it comes down to communities - web devs using VS Code don't necessarily care, but some of those who have been doing desktop development on Mac/Linux have by necessity or preference or "principle" moved away from Microsoft-centric tech.

  • @akeemaweda1716
    @akeemaweda1716 Před 5 měsíci

    Nick, you and other Pro C# content creators are making it appear in its rightful position because you guys contribute more to its popularity and adoption, showing its capabilities every now and then.
    Thank you for your great job!

  • @cheebadigga4092
    @cheebadigga4092 Před 5 měsíci

    C# post getting 420 likes. Can't get any better! Jokes aside, the dotnet ecosystem is absolutely fantastic. MSBuild is kinda meh tho, because of XML, and they could get more traction replacing it with YAML for example. But the functionality of MSBuild, and dotnet in general, is massive. The toolset of the whole thing is mature and improving release by release. And C# is a great language, both on a syntax and feature level.

  • @akulkis
    @akulkis Před 5 měsíci

    1. It runs through an interpreter, like Java, Pascal, Basic, etc. Therefore it's NOT fast.
    2. Microsoft. Microsoft has a long legacy of being a tarpit that once you use one of their products, migrating to another platform is nearly impossible without a lot of pain and determination to not go back to the gilded cage.

  • @anarhistul7257
    @anarhistul7257 Před 5 měsíci

    VS Code is hot popo