Why Startups Hate .NET and C#

Sdílet
Vložit
  • čas přidán 13. 09. 2023
  • Use code DOCKER15 and get 15% off the brand new Docker course on Dometrain: dometrain.com/course/from-zer...
    Become a Patreon and get source code access: / nickchapsas
    Hello, everybody, I'm Nick, and in this video, I will go over some claims that .NET and C# are not popular among startups. There is certainly truth to that but I would like to investigate why.
    The post on Reddit: / why_isnt_dotnet_core_p...
    Subscribe to Dan: @danclarkeuk
    Workshops: bit.ly/nickworkshops
    Don't forget to comment, like and subscribe :)
    Social Media:
    Follow me on GitHub: bit.ly/ChapsasGitHub
    Follow me on Twitter: bit.ly/ChapsasTwitter
    Connect on LinkedIn: bit.ly/ChapsasLinkedIn
    Keep coding merch: keepcoding.shop
    #csharp #dotnet

Komentáře • 1,1K

  • @bscamba
    @bscamba Před 8 měsíci +1547

    Two things I don't understand in tech:
    1 - the love for Javascript
    2 - the hate for C#/.NET

    • @kinggrizzly13
      @kinggrizzly13 Před 8 měsíci +109

      When my frontend developer told me he rather use typescript instead of javascript, he became from friend.

    • @fusedqyou
      @fusedqyou Před 8 měsíci

      @@kinggrizzly13 The only reason why people use Javascript is because they have not tried Typescript yet.

    • @monarch73
      @monarch73 Před 8 měsíci +76

      @@kinggrizzly13 That does not make any sense. typescript is a language, that transpiles into javascript....you can't have typescript without javascript

    • @gnanaitvara1246
      @gnanaitvara1246 Před 8 měsíci +54

      One is/was a well structured language which (in the right hands) enforces clarity through syntax and semantics, the other is a mess of anonymous methods and hidden magic. One is now trying to be the other. C++ is calling.

    • @monarch73
      @monarch73 Před 8 měsíci +140

      I generaly don't understand the love for any loosely typed language. I had to work with php in the past and I hated it.... Strongly typed languages are so much better because they help preventing erros from happening during runtime because of stupid typos.

  • @darrencook7168
    @darrencook7168 Před 8 měsíci +711

    My takeaway from this video: there needs to be a support group for the five F# devs.

    • @IsraelQuiroz
      @IsraelQuiroz Před 8 měsíci +39

      hahahaha that one line killed me
      1 of the 5 F# devs sitting there like why am i catching strays out here?

    • @kj2w
      @kj2w Před 8 měsíci +24

      That cracked me up.
      "For the love of God, there is f# developers and all 5 of them love f# and nobody can tell them anything about it"

    • @taylorkoepp3048
      @taylorkoepp3048 Před 8 měsíci

      Must be four now as I was keen once but haven't coded in it for a while.

    • @tullochgorum6323
      @tullochgorum6323 Před 8 měsíci +10

      If C# deserves more love, it's even more true of F#. Much the most practical of the MLs, and the MLs are much the most practical functional languages for real-world work.
      And it's not even restricted to numerical computing - read Scott Wlaschin's wonderful book "Domain Modelling Made Functional" if you need convincing. It's one of the best programming books I've ever read and you'll learn a lot from it whatever paradigm you favour.

    • @drewknab8149
      @drewknab8149 Před 8 měsíci +1

      @@IsraelQuiroz I actually said this out loud to no one in particular.

  • @ARumGremlin
    @ARumGremlin Před 8 měsíci +842

    "For the love of God, there are F# developers and all five of them love F#". Haha.

  • @reiku3348
    @reiku3348 Před 8 měsíci +288

    As an F# developer I feel attacked. We have a 6th developer now! Get with it old man!

    • @PublicVoidFoo
      @PublicVoidFoo Před 8 měsíci +34

      There are literally half a dozen of us

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

      Still more then Haskell developers.

    • @taylorswe
      @taylorswe Před 7 měsíci +6

      Hey! I've tried f# in the past and I love it! Where are the best communities to join so I can use it more?

    • @ricardomonge2769
      @ricardomonge2769 Před 7 měsíci +1

      @@taylorswe They are trolling, it's all a myth like fairy dust. Everyone knows F# developers don't actually exist.

    • @thecollector6746
      @thecollector6746 Před 7 měsíci

      @@piotrj333 Underappreciated comment.

  • @sarahkatherine8458
    @sarahkatherine8458 Před 8 měsíci +615

    Some of the reasons they hate .NET and C# that I have heard are:
    - Anti-Microsoft bias (linux good, open-source good, windows bad, microsoft bad)
    - Not cross-platform and/or closed source (apparently some people still live in 2012)
    - "C/C++ C# is hard, Python is easy"
    - "C# is the language of the past, now eveyone use Python"
    In 2022 I attended a Job Fair at my previous university. One of the interviewer told me ".NET is for windows desktop app only, you can't create website with it.", and he still didn't believe me even after I showed him the web app I made for my father's clinic.

    • @Azzarrel
      @Azzarrel Před 8 měsíci +39

      You already named it, but I think a major reason why C# has never taken off, is that Microsoft has shot themselves in the foot by limiting .Net to Windows with their flagship programming language being mocked as "Microsoft Java". I haven't been around for so long and originally swapped from Java, but if I compare earlier .Net Framework Versions vs Java there isn't really enough incentive to switch if you are already familiar with Java and have your codebase written in it. Sure, C# was born from a desire to improve Java - and having worked with both languages, I think Microsoft succeeded there, but out-competing a still valid programming language in an already established leading position is tough. C# really started out-performing Java with .Net Core and made massive leaps with .Net now, but the stigma is still there, as is the believe that .Net is Windows only.
      Another reason for me is that Microsoft is and was quite experimental with no real plan for the future. If you look at front end frameworks Microsoft offer different shades of XAML with WPF, Xamarin, MAUI and UWP (which seems to be discontinued in favour of MAUI) - not to forget Windows Forms is still around, too. It is hard to tell what frameworks are going to be pushed in the future and which will be discontinued. Looking how Unity and Godot are still stuck with Mono and C# 8 (although Unitiy has other problems right now), it should be easy to see how Microsoft has taken suboptimal decisions in the past, that haven't been fully mitigated yet. Asp.Net is nice, because it is basically the only backend framework offered by Microsoft directly.

    • @flarebear5346
      @flarebear5346 Před 8 měsíci +28

      Let's be honest here, csharp is as cross platform as swift. Why use csharp when all it's going to do is force you to use different stacks for windows, web and linux? There are many easier option nowadays.

    • @MaidenLoaf
      @MaidenLoaf Před 8 měsíci

      ​​@@flarebear5346but C# and .NET Core / .NET 5+ are all cross platform and the .NET backend is open source nowadays.
      You can use exactly the same stack for frontend and backend if you want to do so with it.
      I worked on .NET / C# backends running on Linux / kubernetes for a couple of years before I left that place for a better paying position. It was actually pretty nice to work with.

    • @attribute-4677
      @attribute-4677 Před 8 měsíci +7

      I learned Python as my first language like 20 years ago, and then C++ and C#. It’s weird seeing “snake basic” make a return 🙄

    • @QuAzI_NODE
      @QuAzI_NODE Před 8 měsíci +7

      @@flarebear5346 so when I can use MAUI in Linux?

  • @valera924
    @valera924 Před 8 měsíci +245

    What I really love in C# is LINQ. This is absolutely brilliant in balance between magic and transparency. I think people in other languages don't like C# because they don't realize how awesome LINQ is.

    • @jimmymac601
      @jimmymac601 Před 8 měsíci

      It is an absolute piece of shit and is woefully inefficient.

    • @andyfitz1992
      @andyfitz1992 Před 8 měsíci +11

      That and as you learn more about the ecosystem and lower level keywords and structs you can write 'faster' code than standard linq, but linq is a fantastic functional-code library to get beginners and startups stood up!

    • @MaidenLoaf
      @MaidenLoaf Před 8 měsíci

      ​​@@andyfitz199299% of the time developer performance and code maintainability trumps code performance. If you can get better code performance without much effort, great, but usually companies want you to produce more faster, not take time to optimise performance unless it's critical.
      This is where LINQ really shines. You CAN write more performant code but when you don't have to LINQ is just easier to maintain.

    • @blackknight2368
      @blackknight2368 Před 8 měsíci +19

      you also have this feature in other languages. so it doesn't stand out

    • @valera924
      @valera924 Před 8 měsíci

      @@blackknight2368 there is a nuance. When you have sex with your boyfriend you both have a dick inside you. But there is a nuance. Same for linq-ish implementations in other languages. There is a nuance

  • @Kwpolska
    @Kwpolska Před 8 měsíci +72

    “9 out of 10 startups will fail, the money is elsewhere is in the established companies” is the most important takeaway from this video (and one I fully agree with).

    • @paulie-g
      @paulie-g Před 7 měsíci +5

      No way are you getting paid as much competing with every Java/C# monkey out there in enterprise as you do in start-ups flush with VC cash. Start-up died? Just find another. And the serious money is in equity. That is, if you're good enough that start-ups want to give you a sizable amount of options. What enterprise is good for is stable employment for mid coders who can go home at 5pm and don't have to own the responsibility of success or failure. All this "enterprise" nonsense is just cope from people who wish they could hack building something exciting and significant.

    • @Kwpolska
      @Kwpolska Před 7 měsíci +8

      @@paulie-g You can also build significant software when working for an enterprise company. It might not be the next Facebook or Uber, but do I really want to contribute to the next cesspool or worker exploitation platform? I will happily take less money, but still good money, if no VC nonsense is involved. How are the VC-funded crypto/NFT startups doing these days? I also prefer hard cash over stocks that may or may not have value in the future, and I do like going home at 5pm instead of overworking myself to death.

    • @paulie-g
      @paulie-g Před 7 měsíci +1

      @@Kwpolska Can? Yes. Likely to? No. Some overwhelming percentage of coders working in enterprise will forever work on badly implemented (because the customer is captive so there is no incentive) business software to do mundane business things in the mundane business. Crypto start-ups are a negligible (and not even the most questionable) sliver of the landscape. Options is having the chance - not a certainty, but a chance - to make f-off money. They're not given instead of compensation, they're given in addition to it. And they're not a lottery ticket - if you're good enough, you choose the start-ups you work for based primarily on how much you believe in the business case, and you have a lot to do with the success if you're in the first five-ten employees.

    • @omgwat
      @omgwat Před 7 měsíci +1

      @@paulie-g nailed it but no one wants to hear this

    • @paulie-g
      @paulie-g Před 7 měsíci

      @@omgwat People always want to believe sh-t that makes them feel good about themselves and their past choices, particularly if said choices are hard or impossible to reverse.

  • @marianf25
    @marianf25 Před 8 měsíci +162

    I founded a startup and I love .Net .. In fact I went all in with .Net and Blazor. In the past 2 years it already proved to be the best choice. So much time saved and less headaches. I can't imagine building the whole thing with javascript. Yes, js is probably much easier to write on the short term, but on the long run it would've taken us over double the time and we would still have runtime bugs and a mess as the project grows. Even compared to .Net backend (or other language) and js frontend, we estimate we were still 25% faster with .Net and Blazor.

    • @PankajNikam
      @PankajNikam Před 8 měsíci +12

      I have been running a startup which is based on C# and .NET for past 6 years, and it works as fine as anything battletested :)

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

      Are you hiring for. Net, blazor?

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

      @@TheHassoun9 Already had. Currently not, but for sure as the company grows, all development positions will work with Blazor. It's important to mention that we don't necessarily require a lot of experience with Blazor, as we believe that knowing C# well and having previously worked with a SPA framework is enough to learn Blazor with the team in a record time.

    • @BeepBoop2221
      @BeepBoop2221 Před 8 měsíci +1

      I hear that blazor is quit slow is that the case?

    • @tancyew
      @tancyew Před 8 měsíci

      @@BeepBoop2221 blazor WASM yes atm due to not having true multithreading support just async/await, blazor server works wonders

  • @evancombs5159
    @evancombs5159 Před 8 měsíci +127

    I think the root of C# not being chosen by startups is a strong anti-microsoft bias. A lot of that bias comes from Silicon Valley being the hub for most startups. A secondary reason is due to .Net Framework's lack of cross platform support, and many people outside of C# circles not knowing the latest versions of .Net work on Linux.

    • @native-nature-video
      @native-nature-video Před 8 měsíci

      @@rcherrycoke7322 what about SQL Server for Linux? Is it as good as .net core?

    • @johnnyblue4799
      @johnnyblue4799 Před 8 měsíci

      @@rcherrycoke7322 That's what he said.

    • @ricardogriffith9384
      @ricardogriffith9384 Před 8 měsíci +20

      .NET Core has been cross platform for years.

    • @berry212
      @berry212 Před 8 měsíci

      ​@@ricardogriffith9384the same people don't know that core 2 comes after framework 4.8

    • @silkfire
      @silkfire Před 8 měsíci

      @@rcherrycoke7322 Called simply .NET since .NET 5 (November 2020)

  • @RogueNinjaCreative
    @RogueNinjaCreative Před 11 dny +4

    Many years ago I created my first application (for a previous employer) on a .NET Core backend with a Vue.js front-end. First time using C# and it made me a better programmer after years of PHP and Javascript. That employer was on a Microsoft ecosystem and I had concerns considering that I work on macOS, but other than a few missing features in Visual Studio (compared to the Windows version) I had no issues. I learned a lot! I'm now using Rust and have learned even more. I love them both and came to seriously dislike JS and PHP, although I hear PHP has come a long way since that time, and Vue/Nuxt 3 are very beautiful frameworks to work with.

  • @ThaWolloW
    @ThaWolloW Před 8 měsíci +69

    My degree actually focused on C# and .NET which was a big plus for me since I really like the eco system and language. And I find it easier to learn other languages with C# being my first programming language. :)

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

      My first language was C++ (terrible choice, never do that). It was all fun until it wasn't (pointer arithmetics, templates, memory leaks..). But now i can learn new language or whatever technology in like 1-2 weeks of hard work (except rust, yikes).

    • @kcvinu
      @kcvinu Před 7 měsíci +1

      @@eevyl1337 Agree with you in the case of Rust.

    • @auroraRealms
      @auroraRealms Před 7 měsíci +1

      I started with C. Today when people ask me what language I am writing code in, I say "The language due jour". Currently that would be Lua, JavaScript, Python, GDscript, C++, and Bash, sprinkled with a little CSS and HTML.

    • @victoralmanzar1273
      @victoralmanzar1273 Před 6 měsíci

      WGU SWE C# Track?

  • @raphaelmt1706
    @raphaelmt1706 Před 8 měsíci +64

    In my experience .NET and C# really shine when your codebase grows larger and you have a lot of reused code. Scripting languages are designed to make stuff work faster but when the codebase grows it becomes a mess faster too.

    • @pascalmartin1891
      @pascalmartin1891 Před 7 měsíci +4

      Java has that same reputation, as have most OOP compiled languages. But it is not a given: I have seen a major Java development become a convoluted horror, in part because of badly controlled multi threaded designs.
      Not to mention that startups are in a hurry, and long term is a luxury they cannot afford: they have no revenue yet and most fail. So Python is more attractive.

    • @NihongoWakannai
      @NihongoWakannai Před 4 měsíci +2

      ​@@pascalmartin1891 of course it's not a given, you still need to make sound and reasonable architecutral decisions, no programming language can make the decisions for you.
      But dynamic languages are guaranteed to become a nightmare at scale even if you make the right choices.

    • @DhruvRed
      @DhruvRed Před 2 měsíci +1

      @@NihongoWakannainightmare to debug dynamically typed languages

  • @gnanaitvara1246
    @gnanaitvara1246 Před 8 měsíci +77

    I disagree with the notion that c# is not a starter language. To me it really is almost the ideal starter language. It hides the "headache" of pointers and memory management while still teaching that variables require system resources, computation can require threading etc. A mental benchmark which may be helpful is to take any language and imagine how difficult it would be to go from language X to C/C++, if it seems an insurmountable task then language X (or rather its tool chain) is probably hiding vast swathes of things from the programmer.

    • @s1nistr433
      @s1nistr433 Před 7 měsíci

      C# wasn't my first language but I don't think it would be a bad first language to learn
      You can make almost anything with it in some way and it also teaches you tons of things most other language omit, like if you learn Python as your first language you're probably not gonna learn OOP-first programming, or class modifiers, extension methods, etc. You spend a bit more time learning but it pays off in the long-term

    • @acasualviewer5861
      @acasualviewer5861 Před 7 měsíci

      @@s1nistr433 python is also more seemless for beginners but still allows you to practice modern techniques such as vectorization with ease.

    • @katamas832
      @katamas832 Před 7 měsíci

      ​@@s1nistr433I learned C# first and let me tell you, it is a beautiful language to start out with. Visual Studio handles the compliling very easily, and you can just start messing around in a console application so easily since you can just start writing stuff in program.cs. It was so easy to use and learn with, and it is my favorite language.

    • @NihongoWakannai
      @NihongoWakannai Před 4 měsíci +1

      I feel like something really simple like python is good for absolute beginners just to learn what a variable even is, how logic flows through a program etc. But I think C# is great as a first language to learn actual programming.

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

      While I think someone can find it straightforward to get going with C# and avoid the headaches of other languages, I think C# has too much "magic" behind the scenes that can lead new developers to develop incorrect understandings of how things are working, as well as some poor habits that would be barriers to them using other languages. I think this is why Java is still popular in CS education. It avoids the memory management stuff, but has a lot less "magic" to it such that by default you have a better overall picture of what a system is doing.

  • @privatesocialhandle
    @privatesocialhandle Před 8 měsíci +82

    Yes, please make a video about the bad things about OOP and how to avoid them.
    Also here are my opinion on the topic: (which are mentioned in the vid)
    1. Legacy education: most if not all universities and colleges choose C and C++ as their low-level language of choice and Java as their high-level of choice. C and C++ are obvious. Java in the other hand you ask, why not C#? There is a lot to say here from the ecosystem of each at the time, who owns the techs, etc.
    2. Open-source: open-source 100% changed people's perspective about .NET, even when not enough to make a decision to switch over, people don't look at it the same way (whether dislike, hate, disagreement, etc.) This open-source mentality of Microsoft not only empowered .NET from a C# or developer perspective, but also from IT perspective in PowerShell. But change takes a LONG time.
    3. Website vs web application: I think this js extremely important, there are significantly way ore websites than web applications, even in our modern day when the term "web applications" covers a variety of web resources. And what do you use for websites? JavaScript. Even in the front-end side of things, web applications are built on JS at the core, which brings ALL the JS related tech that C# wasn't part of until Razor which is very very recent considering the time tech needs to age before it makes a market shift.
    I may not be on point in some if my argument, but oh well, feel feee enlighten me!

    • @R0MUl0
      @R0MUl0 Před 8 měsíci +6

      The biggest problem with OOP is:
      Encapsulation is mostly a lie in most projects. Tons of side effects everywhere... And doing it right, is not simple.
      This is the biggest, in my view. If you take real attention to encapsulation, you inevitably notice when you are abusing inheritance, etc.

    • @JasonKaler
      @JasonKaler Před 8 měsíci +4

      "how to avoid them" - step 1: learn OOP instead of using and OO language without OO

    • @privatesocialhandle
      @privatesocialhandle Před 8 měsíci +1

      @@JasonKaler Makes sense. I still think OOP is "generally" good. Having a structural approach to thing is almost is always good (unless really messed principles were used) which I don't think OOP falls under that.

    • @TheMSKGC
      @TheMSKGC Před 7 měsíci +2

      in my uni, they taught us both java and C# , though java was 3rd year and C# was 4th and ever since I got into C# i cant stomach java for some reason.

    • @kennichdendenn
      @kennichdendenn Před 7 měsíci +2

      Enlightenment incoming: "choosing both low and high level languages from microsoft" aint entirely accurate to my knowledge.
      Neither C nor C++ are made by Microsoft - while they do make one compiler (MSVC), there is a public standard implemented by several independent compilers.

  • @scrm3377
    @scrm3377 Před 7 měsíci +16

    My perception is that the majority of places using C# also use the whole Microsoft ecosystem, which means Windows. Sure, you can work on other platforms, but momentum matters.

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

      Not entirely true. .NET Core works well enough on Linux so it's not much of a lift to build a web app, containerize it and send it to a Linux based Kubernetes.

    • @keyser456
      @keyser456 Před 7 měsíci +1

      I think that was true maybe 5-10 years ago. There has been a shift away from Microsoft, even by people who have been in the MS stack their entire lives, myself included. It was self-inflicted by Microsoft. They were practically begging their developers to shift away from their own OS, and thusly, all their enterprise stuff targeting their OS.

    • @macobuzi
      @macobuzi Před 7 měsíci +2

      I am a C# developer and I constantly deploy my .Net core app on Linux machines without any problem. Many outsiders don't know the existence of Net Core and have no idea how powerful and versatile it is which is a shame, Dot Net Core deserves more recognition!

    • @omegabit
      @omegabit Před 13 dny

      Our entire stack is .Net with a SPA TS framework, and we develop on Windows, Mac, and deploy to containers on Linux.

    • @eldonad
      @eldonad Před 4 dny

      Having Linux support is nice, but lack of mobile support is tough. That's the reason most game engines still uses the old .NET runtime and Mono everywhere else, which is fine most of the time, but has some gaps in the implementation which are very annoying (like in networking). Maybe mobile support will be added eventually, but until then I wouldn't call C# truly cross platform.

  • @eugene3685
    @eugene3685 Před 8 měsíci +32

    C# is brilliant. People friendly, mature language and environment, good fits for low and high level abstraction code (e.g. pointers, async/await), don't limit you no matter what programing paradigm you use, new features appear fester then you grow (important for newcomers :))

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

      ​@@D9ID9Igood thing we have variety of ways and options on what we can use, don't we?

    • @eugene3685
      @eugene3685 Před 8 měsíci +2

      @@D9ID9I What's the problem with sugar?

  • @user-zk5ym9ut1j
    @user-zk5ym9ut1j Před 8 měsíci +14

    Because C# holds image of enterprise language like Java. That's all

  • @thebitterbeginning
    @thebitterbeginning Před 8 měsíci +10

    I started writing JavaScript for a company back around 1998. It has come a long way but still...I cringe thinking about writing large applications in it.
    As with all things in tech...OOP has some good concepts that can save you time and headache. Functional programming also has some good concepts that can save you time and headache. Every discipline or methodology or tool has something it offers. I've never understood how people choose just one and stick to it religiously and apply it in EVERY situation they can. Use each tool (or at least the concepts wrapped by the tool) as it fits best in whatever situation you are in (while always considering the requirements of course). I've never been a purist in anything tech; everything has trade-offs.

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

    I’ve worked exclusively in companies that use dotnet and other Microsoft technologies/services until my last employer which mostly use nodejs.
    This is all anecdotal but what c-digs said reflect my own experience. My Coworkers who are not from a dotnet background still believe that it’s closed source and that it can’t run on multiple OS. I’ve heard the “OOP is bad but Functional is good” dogma from them and it felt like they learned that from school and not from experience. Bad code is bad and neither OOP nor FP promote bad code. It’s the dev who decided to create 4 level of inheritance when it wasn’t necessary who is making the bad code. It didn’t even click with me that I was already writing most of my dotnet code in functional patterns until my coworkers and I started having friendly arguments about OOP vs FP. Despite that they framed their criticism toward dotnet, with my experience with both dotnet and nodejs I realized that the criticism they had was more about coding patterns that they assumed dotnet wasn’t supporting.
    Mutation is bad? Yeah it is! Just avoid writing a mutation in c#, pass them as an arguments. This something I’ve always preferred to do for years.

  • @verzivull
    @verzivull Před 8 měsíci +3

    An interview questions will be kinda triky in order to determine how experienced you are. With C# there will be a lot more tricky questions. Closure, try/catch in combination with tasks, garbage collector with allocations in stack/heap, dispose, finalize and using, especially with streams, different types of pipelines for a web. LINQ has been introduced in C# as far as I know, so all the fuss around it will be there too. I think these are hard to comprehend in comparison to analog situations in other languages.

  • @the-niker
    @the-niker Před 8 měsíci +5

    It's the same argument as the company with recent submarine implosion. Startups tend to hire young dynamic diverse teams without much experience, because it's so much cheaper than experienced workforce. Until the project implodes under all the incompetence.

    • @BeepBoop2221
      @BeepBoop2221 Před 8 měsíci

      I would argue less on "diverse" more the young part, they don't know how much their labour is worth and they are less likely to challenge a superior.
      A seasoned engineer would have told the sub guy off.
      In fact one did and they fired him.

    • @the-niker
      @the-niker Před 8 měsíci +3

      @@BeepBoop2221No hate on diversity but that's what the sumbarine company said in an interview before the disaster if I remember right. Just quoting ;)

    • @BeepBoop2221
      @BeepBoop2221 Před 8 měsíci

      @@the-niker it's more they know they will keep quiet to avoid getting fired.

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

      @@BeepBoop2221Heheh, well in their case, they were so obsessed with young and diverse for publicity's sake that they ignored older engineers who would have saved them.

  • @shosetsuninja3112
    @shosetsuninja3112 Před 8 měsíci +12

    I use C# for work and it's a joy to use if you can drop framework and just use the latest version. I'm considering it for the backend for an app I'm going to build.

  • @sirkato7751
    @sirkato7751 Před 8 měsíci +13

    I think one thing is that most universities teach java.

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

    I love C# and it's my main go to language for anything I create. But I do think it's not popular enough amoung younger developers simply because C# does not get the exposure at Uni or in 'learn to be a developer' courses, as they all seem to use JavaScript/Python etc. It's only when the education sector/private education companies pick up C# as their language of choice will we see it being adopted more. Also C# seems to be more for backend/service work than JavaScript so new learners tend to gravitate towards building a frontend, then they realise they also need a backend and become a bit stuck.

  • @sarunas8002
    @sarunas8002 Před 7 měsíci +3

    .NET is not popular in startups, because the learning curve is higher. People that startups attract are smart but do not have a lot of time or do not see any incentive to learn a more powerful language, that can express more complex business rules. Startups do not have complex domains. App has to be reliable and scale, but it does not deal with a lot of business complexity.
    Writing ERP for managing insurance claims for a multinational organization is quite different than an app that submits posts and comments, and shows it in a thread.

  • @KadenCartwright
    @KadenCartwright Před 8 měsíci +31

    A large part of why startups dislike c# is that startups tend to have a certain scrappy kind of engineering culture and approach to development that the average C# developer would be pretty significantly at odds with.
    In short, most c# devs would not fit into the culture of most startups imo

    • @Nworthholf
      @Nworthholf Před 7 měsíci +9

      As an enterprise developer, I had a very bizzare experience with a startup indeed. We had a very, very fundamental disagreement between "think first" and "code first" approaches.

    • @specex
      @specex Před 6 měsíci +2

      I'd agree with that. This "new age" project management crap annoys me to no end. How about let's just write some code and make it happen?

    • @BrickBazooka
      @BrickBazooka Před 4 měsíci +1

      could anybody elaborate a bit more what's the point here.please?

  • @larsp5109
    @larsp5109 Před 8 měsíci +13

    Without the intention to be generalizing, this is just my personal experience with a lot of frontend JS developers I’ve come across in my daily work and that is that they ain’t trained as a software engineer and that shows in how they program and go about solving problems. It’s a whole different world they live in and find concepts of OOP difficult to get their heads around and find the concepts of c# difficult to understand and are therefor reluctant to start with c#, even though we expect our developers to be t-shaped in backend and frontend tech. Again, just my personal experience.

    • @Nworthholf
      @Nworthholf Před 7 měsíci +1

      Js (or any dynamically typed language really) should never be used as the first language, its that simple

    • @paulie-g
      @paulie-g Před 7 měsíci +2

      Javascript is *way* more like the progenitor of OOP, Smalltalk, than C# is. Besides, people with a real CS education like things like Haskell, OCaml or Scheme/Lisp. JS developers are cluetards, yes, but not because they don't know about GoF patterns - it's not that they can't get their heads around OOP, it's that they can't get their heads around why OOP onanists continue to argue over the right pattern to use and the inheritance hierarchy while they've already written the code for MVP and are iterating quickly towards release.

    • @Nworthholf
      @Nworthholf Před 7 měsíci

      @@paulie-g its not about OOP at all. Its not even about patterns per se - it just allows and sometimes reinforces bad behaviors that lead to janky unmaintainable code. And I mainly mean types there. TS is simply superior is every damn single aspect.

    • @paulie-g
      @paulie-g Před 7 měsíci

      @@Nworthholf I know very few people who still write vanilla JS. TS is super clunky, but JS is so broken that there's no choice really. OP was claiming JS/TS devs are cluetards, which happens to be true, but not for the reason OP claims. If OP's competence bar is modern pseudo-OOP (which is insane), JS as a prototype-based language is much closer to genuine historical OOP (as in Smalltalk) than C#.

    • @drrodopszin
      @drrodopszin Před 7 měsíci

      It's vice versa. I started with C#, got good at it and I hated the half learned JS. Then I learned it well, and became pragmatic user of the language: I work with simple things that work, no forced OOP, no forced FP. People coming from those philosophies do so many unnecessary steps to avoid theoretical problems.

  • @Kevin_Long
    @Kevin_Long Před 6 měsíci +4

    I'm now in my 50's, I've been working on .Net since it's inception and SQL Server since 6.5. I say this not to sound arrogant in any way but just to put things into perspective, I was a Microsoft fanboy and still am to a certain extent. My wife left her company 10 yrs ago to start a hardware business for ourselves. 8 yrs in she was making enough financially for me to leave my job and join her. We needed to start writing internal software to automate tedious manual processes because we were actually doing more business. I wrote every thing PHP. I'm not talking about the little PHP script kiddie code but proper maintainable software that can grow. I hired some really good PHP developers, we wrote our own framework and couldn't be happier, the dev, test, deploy lifecycle is just much faster for some reason. Oh yes, and we have Traits, just saying. 😂😂. Anyway, use what you are productive in, and that's it, the whole language debate is a waste of time. Keep on coding. 🤘🤘😎😎

    • @badartagar9705
      @badartagar9705 Před 2 dny

      VERY RIGHT: "use what you are productive in, and that's it, the whole language debate is a waste of time"

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

    Fsharpers (all 5 of them) are REALLY pissed right now.

  • @tarsala1995
    @tarsala1995 Před 8 měsíci +7

    Other parts:
    1. Strong typing is more demanding for new joiners - not like Javascript or Python
    2. Memory management concepts people need to know - GC, class and struct differences etc.
    3. Steeper tech learning curve to get in: .NET/.NET Standard/.NET Core/ .NET Framework/ C#. No junior will answer what is the difference
    4. Language complexity: C# got many features in recent years. It might be frustrating to new joiners to keep checking what are the differences (lets say between `!= null` `!(x is null)` `is not null` `!= default` and why you cannot do `is not default`)

    • @gnanaitvara1246
      @gnanaitvara1246 Před 8 měsíci +3

      Agree, personally I think c# is getting too wide and deep in its feature base, some (not all) of the new features are very good though with the compiler implementing the leg work for them via IL. They could still have been done explicitly with the language itself five years ago, though I suppose the implementation speed would be lower.

    • @alanbourke4069
      @alanbourke4069 Před 8 měsíci +11

      Who worries about memory management in C# ?

    • @xfy123
      @xfy123 Před 8 měsíci

      ​@@alanbourke4069You still have to worry about memory management, garbage collector isn't a magic thing that automatically knows what to remove.

    • @tarsala1995
      @tarsala1995 Před 8 měsíci

      @@alanbourke4069 Recruiters at least

    • @artemartem842
      @artemartem842 Před 7 měsíci

      ​@@alanbourke4069interviewers apparently and the other party when have to optimize poorly written things.

  • @claylenhart
    @claylenhart Před 8 měsíci +4

    C# is rarely the best language.
    C# is always a good language.
    It’s best to have as little to learn tech-wise (use those brain cells to learn the domain instead) so pick one language (C#) so you can get on with it.
    C# is fast (but not the fastest like rust). C# is concise (but not the most concise like Ruby). Imperfection is better than perfection (perfect in one area)

  • @eherlitz
    @eherlitz Před 8 měsíci +23

    In northern Europe, this is driven by the universities where Microsoft technologies are often viewed with repulsion and are often considered as an evil cyber imperialistic death star organization.
    These younglings often promote application construction with tools like Node, "which is so simple to put everything together", not understanding that change management and the ability to maintain applications is one of the most critical aspects of system engineering.
    And in the end, poorly written systems will cost more than properly coded ones ever will. I've only been in the business for 25 years, but as far as I can tell, Java and MS applications are the ones who survive. I am not saying all other languages are bad, but the project culture among the developers utilizing them is often questionable from a maintainability perspective.

    • @praetor47
      @praetor47 Před 8 měsíci

      "In northern Europe, this is driven by the universities where Microsoft technologies are often viewed with repulsion and are often considered as an evil cyber imperialistic death star organization." why am i not surprised...

    • @MirkoVukusic
      @MirkoVukusic Před 8 měsíci

      Im not a youngster, doing this over 30 years and I also think MS is evil imperialistic company :) Well, not only MS... try Google, Apple,... In my opinion that atmosphere in schools is good. Its a shame we have primary schools here that dont even mention alternatives to Office365, Teams, Windows. Kids don't know what opensource is. Im so happy yhat eventually they figure it out themselves oitside of school.Or they end up completely dependant on thos bigtech companies and i.e. spend 3 years developing their forst game only to get racked by Unity :)

  • @RickTheClipper
    @RickTheClipper Před 8 měsíci +34

    They hate C# until they understand that they miss the broadest base of developers.
    All those other tools exist in 1,000 different variants, change is the normal and if the freak that started the project leaves the company they will have a hard time to find a replacement

    • @CistiC0987
      @CistiC0987 Před 8 měsíci

      Who hates C#? Only a really stupid person or a newbie would really hate a tool like that. If companies prefer other languages like JavaScript that doesn't mean they hate it. They surely should take decisions according to much more meaningful reasons than lizard-brain primitive emotions, no? I don't use a shovel daily, does that mean I hate it?

    • @GiantsOnTheHorizon
      @GiantsOnTheHorizon Před 8 měsíci +1

      OMG, that’s so true!!

  • @antnauman
    @antnauman Před 8 měsíci +7

    Since I started working on .NET Core 6 APIs, I find it very comfortable to work with other technologies too. I can create APIs and work with React on the front end, have any DB at the backend, and with NET and C# I can implement very flexible and structured and strong server side which can scale up easily.
    Not sure why would I choose any other platform for APIs.

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

      ​@@D9ID9I its a lie. node js is 1 thread shit. how it can scale more proper than multithreading async c# model? omg node js comunity ful of stupid idi0ts

  • @luisreis3202
    @luisreis3202 Před 7 měsíci +4

    As someone said there is a lot of misinformation about Microsoft. A lot of things changed at this company. I am not a professional programmer but Visual Studio and C# are my preferences by far.

  • @garylee867
    @garylee867 Před 8 měsíci +4

    I think another very big problem is:
    The advantages of C# are mostly about productivity IMO(and sadly it is not very well known), which is something kind of subjective and may not be very tangible and critical to business.
    For example,
    JS/TS and Go are well suited to serverless applications (at least before the AOT ecosystem is mature).
    Python is pretty much the only choice when you play with AI.
    Java has a larger supply for developers.
    Those are something that drive companies towards those languages.

  • @TurntableTV
    @TurntableTV Před 7 měsíci +6

    Great video, Nick! Speaking of "why do people don't start programming with C#" - one of the reasons is that the (good) beginner courses tend to be paywalled. Yes, there are resources here and there but they lack the in-depth explanations for concepts. Most of them are "just do that and that and bam! you have an app". I would love to see a good course just like Bob Tabor did in the past.

    • @ImLasu
      @ImLasu Před 7 měsíci +1

      Also because everything is paywalled at Microsoft so there is lack of ppl that make free tutorials, so when you would like to use some free stuff like DB there are high chance that all help you will get will be about MS DB and only about it.

  • @SergLapin
    @SergLapin Před 7 měsíci +3

    Rewrote the whole control plane from C to .NET, running on ARM Linux. Came out very stable and well structured.

  • @auroraRealms
    @auroraRealms Před 7 měsíci +2

    I think that OOP is not bad. What is costly and hard to mantain is ORM, and anything related to Object Data Classes. Dictionaries and JSON are most likely the way data is transfered accross the Internet (unless it is XML). Why convert the data into something else? Why not just handle the data in the format it is in. ORM is strongly incoraged in Java, and .NET took on the same attitude along with hyping up LINQ, so that people will use SQL Server for data storage. Great for marketing, not great for perfomance, maintinance, price, and Project Life Cycle. Why not just store data in NoSQL, like MongoDB or Elastic Search? So OOP for organization of code. JSON and Dictionaries for all data handling. Seems too simple to be a solution, but it is incredibily effective. So as far as .NET and C#, are concerned, wrangling the the platform to fit with Docker, NGNIX, and Linux seems like lot of unnecessary work.

  • @Osirus1156
    @Osirus1156 Před 8 měsíci +3

    I think they also had a huge problem with naming and in the last couple of years not being able to make up their minds on how configurations work really confused a lot of people.

  • @proosee
    @proosee Před 8 měsíci +3

    Of course it all depends, but startups tends to evolve quickly and changes are sometime radical, so using the same language for FE and BE gives you that flexibility. For example, in 2023 I'd rather go for node with tRPC for a startup knowing that my API will change a lot over time, rather than dealing with constant DTO changing or using some code generation which might be fragile. Yes, you can always use C# on frontend and you have similar benefits, but I would argue that toolset and community is not as rich there as it is in JS/TS frontend community.

  • @jamescharnley2522
    @jamescharnley2522 Před 7 měsíci +2

    Most people I have spoken to just seem to think C# is a difficult language and quite a lot of them think it can only be used for Windows applications. I think a lot of people over estimate the difficulty of C# because it is often associated with C++. I was surprised when I heard you say most universities teach JS and Python as the primary languages, if that is true then it is very concerning. I just graduated from university (software engineering) earlier this year and it was primarily C++ with a few papers that included JS (only for webdev), Lua and Swift. I don't think Python was ever even spoken of apart from when my lecturer for an AI paper said it is unfortunate that Python is so commonly used for AI because it is not very suitable for large scale applications. I am not a fan of JS and Python because I don't like languages that are simplified and don't have moderately strict syntax, they are just to easy to make mistakes that the language doesn't actually consider a mistake. Languages that have strict syntax and data type declarations just look so much nicer and more organized and easy to read. The only think I can think of that I like about JS is that you can make a function return different datatypes, but you can also do that with TypeScript which I would definitely prefer over JS.

  • @Nworthholf
    @Nworthholf Před 7 měsíci +2

    Imo, JS has to be outright banned as the language for beginners. It is a very dangerous (conceptually) tool that makes many people develop a very specific programming approach that effectively prevents them from being able to use any other language and in general becoming engineers rather than coders.

  • @Blu3Souls
    @Blu3Souls Před 8 měsíci +12

    What I notice a lot in companies that use C# is that they seem stuck in very old C# versions. They are using .Net Framework 4.x or .Net Core 3.x.
    Even if they are using ".Net" they are rarely on the latest LTS version.
    This has nothing to do with startups directly but maybe that disturbs the mindset of startups as most companies end up stuck in an old version.

    • @DevMeloy
      @DevMeloy Před 8 měsíci +3

      This is typically true when an application has been around for 10+ years, most startups aren't worried about tomorrow when they have to face the problems of today.
      My company's main application still runs on 4.7.2, with no real plans on migrating to a newer version.

    • @SvdSinner
      @SvdSinner Před 8 měsíci

      That's universal, not just a C# issue. Corporations tend to stick to whatever platform they first built apps in. There is a common (but false) belief that not upgrading your framework is the safest path.

    • @DevMeloy
      @DevMeloy Před 8 měsíci +1

      @@SvdSinner It has more to do with the fact that converting a large application is far more difficult than a simple app. We have thousands of files and thousands of customers... each asking for a new feature, management is far more concerned with customer churn than the latest framework.
      Although, this is short sighted... eventually something bad will happen which is usually followed by a customer exodus.

    • @SvdSinner
      @SvdSinner Před 8 měsíci +1

      @michaelm106 Agreed. Our main application is also still running 4.7.2 as well, but luckily, we have started writing its replacement in .NET 7. As I always remind management, NOT updating is just as risky as updating.

    • @TheMonk72
      @TheMonk72 Před 8 měsíci +1

      For large apps this migrating to a new runtime can be a pain, but it's worth the effort to get access to the new features. It also opens up a hell of a lot of new packages, which can be very useful.

  • @Matt23488
    @Matt23488 Před 8 měsíci +6

    Honestly? I think a lot of it has to do with where startups come from these days. It is becoming less and less required to have a degree as bootcamp programs become more and more prevalent. One of my friends who has a degree in French/English teaching recently went through a bootcamp and immediately got hired at a startup who were scouting specifically these kinds of programs. And I think the reason is because they need to get going fast. College doesn't do a great job at teaching you *what you need to know* for the current job market, although you will have a strong background and it won't be as difficult to learn. But bootcamps are focused on the current trends like ReactJS, NextJS, etc. I think maybe if Blazor were more prevalent, we could see .NET becoming more viable for bootcamps. But it's not, and that's not likely to change.

  • @HelixClovers
    @HelixClovers Před 8 měsíci +31

    I started with C# and thought it was very easy to start with. Our school was teaching Matlab, which I hated, and later I did some classes in python - which was easy to learn, but harder to scale. Ultimately, I stick with C# because it scales much, much better for large programs, and is way faster than most options out there.

    • @JonitoFischer
      @JonitoFischer Před 7 měsíci +2

      Maybe you didn't get the point of Matlab, which is doing computational programming accesible for scientists and engineers. C# is not for calculations of convolutions and FFTs, or design of digital filters.

    • @JoseAlvarez-dl3hm
      @JoseAlvarez-dl3hm Před 6 měsíci

      @@JonitoFischer C# can do everything that matlab does. Matlab is dead, if you want to do scientific programming you just use python nowaydays.

  • @expertreviews1112
    @expertreviews1112 Před 7 měsíci

    Nick, you diagnose heap allocations in Rider.. Mostly in ur case, it's a console app, however if I have an Api and I do that say for strings, I see large number of strings like say 50k, the diff columns shows new ones but if I double click it loads all 50k with no filtering options... If I want to find which are the new allocations, I can't. Also unlike VS 2022, it doesn't show where they're coming from in the code... any suggestions??? thnx in advance

    • @alexU42k
      @alexU42k Před 7 měsíci

      Only a startup developers here, he-he

  • @klaesregis7487
    @klaesregis7487 Před 8 měsíci +28

    I used to not like C# because of MS indeed. During my masters degree I had to use it; working with the XNA game development kit, Mono and later Unity it changed my mind. Now it is my preferred language and I use it a lot in e.g. Godot. For my day job I still use a lot of Java.
    I really don't like JavaScript, but that's more because I hate web development, and to a lesser degree dynamically typed languages.

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

    ROFL - best quote of the day... "There are F# developers and ALL 5 of them LOVE F# ..."

  • @minciNashu
    @minciNashu Před 8 měsíci +2

    I've noticed that people don't seem aware that NET is cross platform. You're not tied to Windows. You can develop and run NET outside of Windows.

  • @KodingKuma
    @KodingKuma Před 8 měsíci +2

    I don't understand why people don't like C# either. To me, it's fastest to develop in this stack,. it's the fastest running language in the top 5. It can code just almost anything, with Maui now days. It also has a huge community and Microsoft themselves to support it. You don't even need visual studio. You can learn the cli and just create everything using VS code. The language will run on anything. And if you want to lock it in a single runtime, just containerize it and you'll be good to go for ages. I don't get it. When a company scale with traffic, they will come to know that they should have gotten C# in the first place. Especially when startup development time is soooo low.

  • @T___Brown
    @T___Brown Před 8 měsíci +3

    To me, The problem is the poll question from SO. It asks what languages do you use/know. Everyone has to know some js so therefore it is "popular". The question should be... What is the language you write in for front end and language for backend?

    • @flanderstruck3751
      @flanderstruck3751 Před 7 měsíci

      TS for both: Angular in the frontend and Nest.js in the backend

    • @T___Brown
      @T___Brown Před 7 měsíci

      @@flanderstruck3751 and that is perfect for your vote of 1. But for java, python, php, and c# (many more) they use their language on the backend and some sort of javascript on the front end. So they "know" javascript. That doesnt translate to "I use Ng and Nest" like it is being interpreted.

  • @dawizze1
    @dawizze1 Před 8 měsíci +9

    I think the biggest thing is that Java is almost exclusively taught at all university cs programs. I went to an engineering focused university and it was c++ for the majority if not all classes. I don't think I've ever heard of someone's curriculum teaching c# at school.

    • @TheSpacecraftX
      @TheSpacecraftX Před 8 měsíci

      My university was mostly C# and I hear similar stories from most of my colleagues. My locations I’ve works are Scotland and the north of England. It might be an artefact of UK academia or even down to the region though.

    • @dawizze1
      @dawizze1 Před 8 měsíci

      @@TheSpacecraftX US here.

    • @ghaf222
      @ghaf222 Před 8 měsíci +6

      My university taught Java, and I used my spare time to learn C#. I don’t understand why anyone would use Java, but perhaps this is just me showing the same ignorance people show towards C# and .NET?

    • @xfy123
      @xfy123 Před 8 měsíci

      ​@@ghaf222tbh java is still big in the database side, oracle still makes servers that exclusively run java apps and their db faster then the standard x86cpu.

    • @shimadabr
      @shimadabr Před 7 měsíci

      @@ghaf222 Java is still more used than C# (more job security, more online help, more books), has more tooling choices, the JVM is very mature and has many languages that run on it (Clojure, Scala, Kotlin), it's more linux friendly (but C# is not far behind) and many multi-billion dollar companies rely on it's ecosystem and have a financial interest in it and it's success.
      Also, it's not much worse than C# for many applications. Many people and companies will not bother to switch to get an incremental improvement.

  • @ghaf222
    @ghaf222 Před 8 měsíci +3

    When I tell people I develop in C# I do get the feeling that they assume .NET Framework, and possibly don’t realise that .NET is fully cross platform. I always have to drop that into the conversation to check they know that.

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

    Been using C# for a decade and I love it.

  • @earlh
    @earlh Před 7 měsíci +3

    While .NET and C# are free and open source the ecosystem still favors Windows if you are not writing a web application.
    Also, Microsoft has prioritized Windows and Visual Studio when it comes to features.
    It has happened that a new C# .NET feature would come to Windows first and to other platforms later.
    It's things like these that keep devs away. Why take the risk of Microsoft doing a rug pull?
    Wouldn't be the first time they do that, would it?
    Honestly, I would move to Python if that wouldn't make me less employable due to my work history being dominated by Azure and C# .NET.

    • @omegabit
      @omegabit Před 13 dny

      None of this is true, nor has been true, for years. I'm mystified by the statement "features come to windows first and to other platforms later". No, just no.
      And who in their right mind would use Visual Studio to do dotnet development nowadays? VSCode is a vastly better ecosystem to work in than that legacy crap.

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

    I recently did a project with C# and MAUI. My impression was industrial-strength tools to solve industrial-scale problems. I know people do big things with JavaScript but it doesn’t feel the same, somehow. Flavour-of-the-month is a big thing. So is the what you already know factor: not everybody wants to invest in the learning curve for new technology.

    • @GdeVseSvobodnyeNiki
      @GdeVseSvobodnyeNiki Před 8 měsíci

      I recently tried to start MAUI hybrid app last week. Wasn't even able to scaffold it. Missing project template, errors during compilation of empty project. Fuck this shit. I switched to electronjs, works like a charm. Have no regrets about it.

    • @marsgal42
      @marsgal42 Před 8 měsíci

      @@GdeVseSvobodnyeNiki MAUI can be tricky to set up, especially if you're using VS Code instead of Visual Studio. Once you have it set up it works fine.

    • @RogueTravel
      @RogueTravel Před 8 měsíci

      Good luck with MAUI, noobs

    • @NextProgrammer
      @NextProgrammer Před 7 měsíci

      MAUI the new silverlight

  • @yatsuk
    @yatsuk Před 8 měsíci +1

    Can I ask another question? What programming languages students study in universities?
    In my time and my country we had pascal and delphi in majority of universities. And can you image, 80% of software around was written on delphi.

    • @gnanaitvara1246
      @gnanaitvara1246 Před 8 měsíci

      Having a hobby of reversing older software every so often, there is a surprising amount of old Delphi software floating about. We did Java and C in uni around the turn of the millennium.

    • @petrmalecik5661
      @petrmalecik5661 Před 8 měsíci +1

      Well I started university in 2016 graduated 2019. We started with C and also with LISP (for functional programming classes) in my second year we moved to Java, C# and C++ and then on web stuff Javascript PHP and also web stuff in Java and C#. Third year was Python for image processing etc. I love that we started with C It taught me so much about memory and I also loved the FP classes.

  • @ChristianHowell
    @ChristianHowell Před 8 měsíci +2

    They don't know what they're missing... C# has allowed me to solve crazy problems...

  • @hyrr092
    @hyrr092 Před 8 měsíci +9

    1. Many still think .NET is tied to Windows.
    2. Startup founders (often not techies but investors) think working with javascript on both FE and BE will make them iterate faster requiring ONLY fullstack devs.
    3. Startup highly depends on the current hype. Years ago, it was Node. Nowadays it's Python. Tomorrow maybe .NET ?
    During my years of software engineering as a freelancer working for some startups, I often conclude that most of them had NO IDEA about the choice they've made at MVP stage and they engage me years after to solve those problems that could have easily been avoided if they had think about the future just a couple of minutes... The truth is hard to admit but no one cares about software engineering principles. No one cares about .NET, Node or Java. They just want to get money as fast as possible.
    They require you to spend hours sharpening your skills for their tech interviews but when you're engaged, you'll code dummies endpoint like any developer on earth. No magic.

    • @Lena-yt3yl
      @Lena-yt3yl Před 8 měsíci +2

      1. It is, while it can technically run on linux, linux useres are clearly second if not third class citizens

    • @marioprawirosudiro7301
      @marioprawirosudiro7301 Před 8 měsíci

      @@Lena-yt3ylNot technically. It runs, period. Stop it with this misinformation.
      Also, the reason why linux users feel like second-class citizens is because they themselves aren't trying to improve the tooling. Someone mentioned MAUI, but both C# and .NET are opensource. What's stopping anyone from creating a true cross-platform alternative to MAUI? A Vulkan to Microsoft's DirectX, so to speak? Nothing.

    • @Lena-yt3yl
      @Lena-yt3yl Před 7 měsíci

      @@marioprawirosudiro7301 the power of open-source is impressive, but i cant "just write maui" there are things like avalonia, but as long as microsoft bundles things like timers with WPF and some file operations with WinForms it's very wired what breaks and requires odd workarounds.
      And there is already a LOT of work put in like the creation of the Mono-Runtime, from scratch.

  • @mathgeniuszach
    @mathgeniuszach Před 7 měsíci +1

    Using Microsoft development products and services often incurs a lot of technical debt and vendor lock-in. You can use C# without Microsoft lock-in (by doing things like writing your own csproj and avoiding the sln file), but most developers aren't technically knowledgable enough to use it that way.

  • @dennycrane2938
    @dennycrane2938 Před 8 měsíci

    I'm surprised productivity or time to market wasn't brought up. I work with both and I'm a C# native. TL;DR - there's a lot of ceremony in statically typed languages. I find myself having to do a loooot more to write in C# than I would have to in Python, so things can take a lot longer. I understand, it's one of those front-loaded costs and you get things like stability in return, but in languages like python or javascript, I can show value and function much quicker, and as we know, that's all most startups care about.

  • @tanglesites
    @tanglesites Před 8 měsíci +2

    I love C#. It is a beautiful language. It is fast, it is backed by a large corportation (aka Microsoft), it has a very well founded framework .NET Core. As a student, I do not have a lot of use cases for C#, but when I am graduated and have the extra time to work on larger projects, C# will be my goto.
    As a side note, I wanted to use C# to build my website and blog, but my hosting provider did not except C#. And I am weary of the Azure buisness model.

  • @McZsh
    @McZsh Před 7 měsíci +1

    The problem lies squarely with the venture capitalists involved in start ups. They constantly choose short-term coolness over long-term viability. Picking what is considered a "business language" would be detrimental.
    That said, Microsoft really needs to revisit and step up its ecosystem. No official first class graphics lib, no first-class PDF support.
    And possibly, they might introduce a compiler switch so that we can forget about all those extralines with curly braces.

  • @matrim
    @matrim Před 7 měsíci +2

    A point to add with this in regards to JS being a better full-stack is also rather mute. You can take one of the strongest JS frontend platform React and put it side by side with Blazor, I would state that blazor wins on multiple fronts, the only one where I see react (since we're talking about this in my example) wins is in the amount of 3'rd party components. However I don't think that the quantity of 3'rd party libraries is that strong of a metric in this comparison.
    I've been working with JS, Java, C# and python through my career and few things has made me as happy as Blazor has.

    • @souleymaneba9272
      @souleymaneba9272 Před 6 měsíci

      If Blazor didn't exist I think that I would have left the dotnet ecosystem. Because since WPF there is no reliable and bug free framework from Microsoft for building desktop app even in Windows!

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

    I'm in an enterprise and have recently moved teams after 10+ years on a .net only team. The team I work with now are more python (which I love ) and java/javascript. We have a few open defects in our ecosystem that could be resolved with proven examples in .net, but it's really difficult to get these guys to actually consider it. It's a work in progress to demo the power of C# to these guys, but I'm hoping to open their eyes a bit more to what it can do.

  • @MarkParkTech
    @MarkParkTech Před 8 měsíci +4

    Microsoft shot themselves in the foot early on when it used to only work on Windows. While it does work on other platforms as well now, it's not well implemented in non-microsoft environments, and much of the third party innovation and development is still very windows ecosystem centric.

    • @shiskeyoffles
      @shiskeyoffles Před 7 měsíci

      not many people at looking at this obvious point

    • @dmfaccount1272
      @dmfaccount1272 Před 7 měsíci

      Everyone hates when Microsoft used to have hardware limited language but nobody ever cares that Apple has the same...

  • @BeepBoop2221
    @BeepBoop2221 Před 8 měsíci +1

    I have been a bit apprehensive about learning c# for the worry i wont find a good job.
    My experience of start ups is they will get people straight from university, who will be willing to ne paid less.
    Which tended back in the day to be js/php devs.

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

    OOP is a good thing for most. The same problem as previous points apply, that legacy code dealt badly with OOP which produced enterprise monoliths that could never ever change. Microsoft inherits its own history, and it keeps coming back to bite them no matter how much they improve.

    • @paulie-g
      @paulie-g Před 7 měsíci +1

      "Good OOP" is like "good Marxism". It should in theory exist, lots of people spent a huge amount of time theorycrafting it, but no one can show it to me and every time I point at OOP code being terrible, people tell me "they did it wrong". As a historical note, "modern OOP" is broken because it is about objects. It was not meant to be that way, it was a naming snafu. Smalltalk was about message passing and objects were really more like actors. And Smalltalk was, indeed, very nice. It was just killed by the absurd costs of tooling and now that we have the VM technology and fast hardware to run it well, no one has been left alive to care besides some French dudes in academia. Of the modern spiritual successors, Erlang is nice too (minus the syntax).

    • @_Karlsson
      @_Karlsson Před 7 měsíci +1

      @@paulie-g OOP is just using data and templating reusably, nothing else. Some practices use bad types of inheritance trees and such to achieve it, which makes many shoot themselves in everyones feet.

    • @astrahcat1212
      @astrahcat1212 Před 7 měsíci

      Microsoft's problem is their insistence on required authentication and cloud services as they try to march through to a utopian future where your data isn't physically located in your local physical space. Just a future of power and control. Don't say something they don't like, in the future maybe you just so happen to get locked out of your accounts. 😑

  • @jeisuxco
    @jeisuxco Před 7 měsíci +4

    C# was my starter language and is and always be my favorite. I understand the hate because i felt the same when i first started working with it. But that's because of Microsoft reputation and i hope eventually people realize how good dotnet ecosystem is

  • @TheRicherthanyouguy
    @TheRicherthanyouguy Před 8 měsíci +1

    My theory is that a lot of the reason start ups don't invest in start ups with C# is also because of Azure. More specifically the fact that since Azure in what Microsoft pushes to host C# web app people assume its 1. The only option there is and 2. They assume Azure will be expensive because they don't understand the payment model. I think this mis-assumption also contribute to start ups not using C# again these are just my thoughts.

  • @olinzknihytovi
    @olinzknihytovi Před 8 měsíci +1

    I work at a Czech company with $1 billion revenue, and we're using C# for BE and React for FE across the entire company.

  • @huray9802
    @huray9802 Před 7 měsíci +13

    The C# debugger is still closed source, and you can write C# only on VS and VSC. Language ecosystem (LSP, debugger, profiler and other tools) should be available for porting in every editor (neovim for example). It could be like Google's Go, but Microsoft wants to make money from C# by charging for the ecosystem (and other "smart" vendor-locking-to-azure ways), which is ok for them, and ok for us to not prefer as well

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

      I think Microsoft just got a bad name from forced updates and trying to force most users to be online to use Windows and supporting Digital ID, so after that, people don't like them.

    • @chris4321das
      @chris4321das Před 4 měsíci +2

      WHAT are you talking about?? You're still stuck in 2004 .NET 1.1!

  • @r00tyschannel52
    @r00tyschannel52 Před 7 měsíci +6

    In my experience, startups are indeed often made up of younger people, and they are generally freshly following the latest trend. As someone a bit older who has been in the idealogical fresh tech phase of my life already, I think it's great for personal projects. But I'd beware not using an established platform for a business project because the trends change, and you can find yourself struggling to recruit people for yesterday's favourite tech stack. But for the established platforms, there are always resources available (for the right price).

    • @BrandonClapp
      @BrandonClapp Před 7 měsíci +1

      There's a lot of truth in this!

  • @Picike85
    @Picike85 Před 8 měsíci +2

    I'm working for the second startup in Scotland both use C# and . NET. :)

  • @KoKnows31
    @KoKnows31 Před 4 měsíci +1

    This is really a matter of scale and maintenance. For relatively small projects, proficiency and preference are key, but The larger the project, the more control over the structure you’ll want. C# and MVC principles enforce some incredibly beneficial design patterns that allow for scalability

  • @brandonochia9043
    @brandonochia9043 Před 8 měsíci +4

    Please make a video about the things in OOP that you hate!! Maybe also discuss the other methodologies of development that you agree with more. Pretty please!!!

  • @MaximilienNoal
    @MaximilienNoal Před 8 měsíci +4

    Because until now there was no NET 8,the fastest release yet. 🎉

  • @RealEngineer
    @RealEngineer Před 8 měsíci +2

    My first language was c# and that has served me good since.

  • @gadget00
    @gadget00 Před 6 měsíci +2

    I also think that the strong connection between C# and Visual Studio in part keeps the unfounded hate for C#; many people just don't like Visual Studio and in connection thought C# was an exclusive language for it, like Objective-C or Swift for XCode. Microsoft understood that and came up with VS Code to just have a way to promote C# as a language on it's own and separate it from the IDE; same as Apple that open-sourced Swift in order to have that same separation between language and coding toolkit. When people discover tha they don't need VS to code in C# at all, that releases tension imho

    • @JoseAlvarez-dl3hm
      @JoseAlvarez-dl3hm Před 6 měsíci +1

      I agree, although Visual Studio is the best IDE to work with, awesome tool.

    • @gadget00
      @gadget00 Před 6 měsíci

      @@JoseAlvarez-dl3hm it’s a convoluted mess just to install it and setting it up to then be productive until it starts to fail. I wouldn’t call it “the best IDE ever” to be honest

  • @GambitVil
    @GambitVil Před 8 měsíci +3

    "There is F# developers and all five of them love F#..." 😂😂😂

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

    "Theres F# developers, and all five of them love it." Chapsas, Nick

  • @VeNoM0619
    @VeNoM0619 Před 7 měsíci +2

    It needs mentioning, that "Popular" doesn't mean preferred or better.
    A lot of these surveys ask if you 'use' these languages. Sure, you can use some of these, doesn't mean you enjoy it.

  • @SifSehwan
    @SifSehwan Před 8 měsíci +3

    Recently had a chat about this. To put it frankly C# seems intimidating to green developers, they prefer Python or JS(TS). A bunch of the people I talked to are university students and they do study C# but don't prefer it. The consensus was that finding a solution to a problem is never easy in C#, new things are introduced all the time and while it makes my work easy it pushes startup teams away. It's really important to understand that these teams usually include self-taught, junior or entirely inexperienced developers. Having 10 ways to sort a collection and 5 ways to make an API is not a plus for them.
    Another bit I missed is that most of them stated that a lot of resources around C# and F# focus too much on dos and don'ts rather than solutions.

    • @antnauman
      @antnauman Před 8 měsíci

      True, given that C# has a long history and everything since first version still works.
      But same goes for JS too, however unlike C# most of the study material focuses on latest stuff.

    • @malachi3438
      @malachi3438 Před 8 měsíci

      The 10 ways to sort a collection and five ways to setup an api is a plus for them, they've got the basics down. What they lack is the experience, like what you once never had.

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

    Yes, I’d love to see a video on what you hate about OOP

  • @jazzweather
    @jazzweather Před 7 měsíci +1

    If C# is taught at college level, it will increase it’s usage in startups

  • @gadget00
    @gadget00 Před 6 měsíci +1

    I think the 'hate' to C#/Visual Studio in general is based on approaching it carelessly as you would with "simpler" languages like javascript, thinking you can "quickly grasp it" and be productive just because you "are a developer"; that's a hard trauma few recover from. It does require true commitment if you want to be productive with C#; if you don't take it seriously and think about it as some languange you can get in and out ocassionaly, you are in for a world of pain

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

    When I was in college, Pascal and C were the primary languages. Java came much later, and then how it's largely Python and JavaScript. There's also a lot of polarizing hate for Microsoft, which is ridiculous. As for OOP, most schools do a terrible job of teaching it. There are different markets, industries, etc. that will use different tools for their purposes.

  • @burattinodilegno
    @burattinodilegno Před 7 měsíci +12

    Microsoft has an history of changing the language and the libraries for no apparent reason. This creates more work for developers and companies in order to keep up with the language. Companies do not want to carry these costs

    • @brianmouton2472
      @brianmouton2472 Před 7 měsíci +3

      Most of the changes I've observed have been in the native app space, with Xamarin, WPF, Modern Apps, MAUI, etc. In the web space things have been pretty stable and you're not forced to use the new stuff. I can still make web requests the old style that existed back in .NET 2 days. Microsoft has been been WAY bigger on backwards compatibility than other companies.
      There are exceptions of course. .NET Core still doesn't have a full port of SOAP support, which you may encounter with older FinTech companies.
      Google however really broke backwards compatibility between major releases in Angular at some point. And then there are a smattering of OpenSource libraries in the Java world I've encountered that have no qualms dropping functions, making breaking changes, or just dropping whole features with the expectation that you'll just upgrade and adjust.

    • @kevinferati3415
      @kevinferati3415 Před 7 měsíci +1

      I migrated multiple codebases with SDK versions ranging from .NET Framework 4.0 to 4.5 to what was then .NET Core 3.1 and the experience went rather seamlessly. In my short experience as a professionnal dev, I think that it's actually pretty stable.
      My boss asked me to do the same for a PHP codebase from version 5.6 to 8.something. We cancelled this almost immediatly lol

    • @programmerjowo
      @programmerjowo Před 6 měsíci

      That's no 1 reason

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

      Then they certainly don't want to use JS. LOL

  • @dmitryborovych9135
    @dmitryborovych9135 Před 8 měsíci +2

    Video about OOP negative points from your personal perspective would be really nice to watch!

  • @miguelrodriguezcimino1674
    @miguelrodriguezcimino1674 Před 8 měsíci

    I don't know why code teaching has shifted to Javascript and Python. Back when I was in college it was C/C++ and they were starting to shift a bit to Java. There were some optional courses in C# which was pretty much in it's infancy.
    I do get that Javascript and Python are seen as beginner friendly languages, but I've always thought that the compiler imposed rules and restrictions of statically typed languages is what a beginner needs. Otherwise they get can get lazy and do not bother in learning the core concepts of programming, and end up creating complicated, convoluted spaghetti code prone to runtime errors.
    I'd say, learn the hard way, build discipline and then take on a language that is more permissive with the rules.

  • @VictorCO13
    @VictorCO13 Před 8 měsíci +3

    Lmao the F# part sent me 🤣🤣🤣🤣

  • @Silentsouls
    @Silentsouls Před 8 měsíci +16

    Javascript as a full stack language, please sent all those developers back to school.

    • @native-nature-video
      @native-nature-video Před 8 měsíci +1

      how many multi-instance back-end applications are written in "full-stack" JavaScript?

    • @ghaf222
      @ghaf222 Před 8 měsíci +1

      It’s works both ways, no C# developer wants to get a job doing JavaScript anyway!

  • @Rolan18111
    @Rolan18111 Před 7 měsíci

    Could you do a video on alternatives to js/ts for frontend? I know it has established frameworks, but the turnover is ridiculous. It points to something fundamentally broken in the ecosystem.

    • @jazzweather
      @jazzweather Před 7 měsíci

      Use Blazor. You can write your frontend/backend logic in C# instead of JS/TS. You can also mix C# and JS using interop and get the best of both worlds.

  • @Oyyou
    @Oyyou Před 8 měsíci

    I would like to hear your thoughts on anti-oop

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

      Hating on OOP is fad that I think has faded somewhat. C#, like many languages, has become quite functional. There's no need at all to abandon the goodness of OOP for applications programming, though it can be implemented in different ways.

  • @PeteSauerbier
    @PeteSauerbier Před 8 měsíci +6

    A thing which I really experience a lot: people stick to the stuff they learned in university and apparently .NET is evil corpo stuff (MS hate) that only runs on windows. 😜

  • @paulostradioti
    @paulostradioti Před 8 měsíci +6

    I would also add the point that Microsoft has the annoying habit of launching technologies and then dropping them.

  • @meltygear5955
    @meltygear5955 Před 7 měsíci +1

    Yep. I started with JavaScript and Python because most courses used it, but now that I want to work professionally with C# I apparently lack previous C# experience. What a conundrum!

    • @username7763
      @username7763 Před 7 měsíci

      That is a common dilemma. There is no one right approach. For some hiring managers, getting a C# certification might help. When I was a hiring manager, I was more willing to overlook technology mismatch if the candidate was clearly proficient in the technology that they did know. If you show you are an expert in JavaScript and Python, that might be enough. The idea is that good engineers are good in any technology. But plenty of hiring managers don't see it that way. I'd probably too be biased against just due to having only dynamic typing language experience. You should look to grow your skills and career, but don't be too concerned over specific technologies either. Enjoy programming in JavaScript and Python, everything has good and bad.

  • @redtaped
    @redtaped Před 8 měsíci +2

    I think #7 is a valid concern for some given that JavaScript engines are single threaded so you never have to worry about thread safety at all.

    • @Nick-id1yk
      @Nick-id1yk Před 8 měsíci +13

      And my house doesn't have electricity so I don't have to worry about electric fires. I see this as am absolute win.

    • @redtaped
      @redtaped Před 8 měsíci +3

      @@Nick-id1yk lol, I love it, don’t ever change

    • @akiwoo5205
      @akiwoo5205 Před 7 měsíci +1

      @@Nick-id1ykLOL. You nearly made me spit out my coffee!

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

      @@Nick-id1ykJS has had futures (tasks) and async/await for a long while now, and people have been pushing its use. They understand the concepts, though most are surprised they originated in C#.

  • @EscurKo
    @EscurKo Před 7 měsíci +4

    Why do Java developers need glasses? Because they can't C#