Hacker News new | past | comments | ask | show | jobs | submit login

For whatever it's worth, I've been a .NET developer since 2001 when I was finishing up college. I've also dabbled in Java, and some other languages here and there for one-off work and side-work projects. I haven't found anything to match C# & .NET's productivity. I gravitate towards strongly-typed languages which I know excludes a large swath of productive languages.

.NET Core is fantastic. I recently bought an M1 Macbook Air (which I really hadn't wanted to do but my Intel Macbook died and I wasn't about to buy another Intel Mac given they are being phased out.) There's one issue in that debugging is broken at the moment, but it's being addressed by Apple/MS. Docker (M1 Preview) works great.

If you've never given .NET a shot because you weren't/aren't a fan of Microsoft/Windows - I recommend you give it try, you might be pleasantly surprised.




I was a Linux/Mac only power user until my first role as a software engineer, where my employer was a Windows and .NET shop (the .NET 1.1/2.0/3.5 days).

Hadn’t used Windows in years and that was my first exposure to PowerShell, which made me feel a little better about Windows.

Grew to greatly appreciate C# and .NET over the years and am now fairly optimistic that Microsoft has made a lasting change after seeing the steady, dramatic improvements that they’ve been making technologically and sociologically (embracing open source, cross-platform support, and putting their money where their mouth is).

Highly recommend that curious people install Windows 10 on an external HDD to try out WSL, Windows Terminal, and PowerToys Fancy Zones. I use Linux for my personal machines, still, but Fancy Zones has honestly had me missing the ease of desktop layout when I switch off my work machine.

Or, if you are just looking to explore C# and the dotnet ecosystem, then you can do that from the command line on most non-BSD operating systems.


I was impressed with wsl recently. I had to compile a distribution for an embedded linux board we're going to use. And under wsl it just worked.


I actually just picked up .NET when 5 came out and have been working on a project and have been blown away how great not only is the ASP.NET Core framework but also the C# language.

Powerful, consistent, feature-rich. Coming from a python, java, web background, was really blown away. Wish more people would give .NET a chance. It isn't like it used to be when I first tried it in College and hated it.


I don't think there's hatred for the ecosystem, it's just one that you don't get to see unless you're exposed to it by chance or pushed into it for a specific reason.

.NET is in the corporate world but you'll have a harder time finding a .NET-related job if you don't already know stuff about it.

Since I don't currently use windows and I don't casually want to build a corporate type of software on another system in my free time (I'd much rather fold some origami, I'm likely one of the people that aren't called "passionate" about dev), I didn't get to be exposed to it easily - unlike "typical" web and mobile-related languages for example (Java, Obj-C/Swift, JS). Some of it might have been shown when I was a student (Java), and other things are just requirements of the times (I want to try making a mobile app -> either web or native languages). Didn't see .NET at university, and early jobs didn't involve that, so now it feels like a missed train somehow.

Is it worth focusing on when you're not already living in that ecosystem and you're on your own?


I think you're right about the separation of ecosystems into .NET vs. everything else. I often idly run a find-in-page for .NET/C# on the Who's Hiring threads just to monitor uptake in the start-up world and rarely get more than about 6 hits in 100s of posts.

I ended up in a C# role by chance coming from a non-software background and it can often feel like a separate world; so many discussions in the other ecosystems just feel less relevant since C# is so batteries included you rarely have to venture outside the confines of the officially mandated environment.

While there's a lot of stuff in the corporate environment on Windows servers and old full-framework code there's also a healthy and growing Linux first community using .NET.

I don't know that I'd recommend it particularly from outside if not trying to start a .NET role specifically, I don't think (based on the languages you list having experience with) it will help you learn anything particularly new, in the way that learning a functional language does for someone with an OOP background. Though LINQ is quite a nice way for people unfamiliar with functional programming to ease into it from an OOP environment.

With .NET 5 / dotnet core the getting started is easier than it used to be (thanks to dotnet new https://dotnet.microsoft.com/learn/dotnet/hello-world-tutori...) and a lot more like other languages/frameworks, but without a specific aim I think it's going to be hard to be motivated to get in-depth with the environment.

To be clear I wouldn't want to work in any other language or framework (though React with functional components and TypeScript comes pretty close to the developer experience quality of C#/.NET) but I'm just not sure how porous the ecosystem boundary is and how transferable the skills are.


I have a rather dumb question about C#.

A skillion years ago I had to do a .NET project and somewhat randomly chose VB.NET as the language over C#. However, I did buy some C# books which I never looked at. Given that the books are now about a decade old, is there any point in keeping them? Has C# changed enough in the years that the language is sufficiently different from what was created in the book that I might as well pick up a newer volume?

I tend to gravitate toward stability in languages. Something of a flaw of mine.


A lot of language features have been added over the years so you'll be missing out on some great stuff.

Also some libraries changed around a bit during the transition to .net core, so some the code in your book may not compile.

Finally, if it's a book about web dev (asp.net) or something similar (mobile dev, game dev), that stuff has changed a lot over the past ten years.

You're probably best of ditching the books and hitting up some tutorials or checking with your local library. My public library gives us access to safari books online which has a large selection of technical books.


A decade ago puts you at .NET Framework 4.0 or so, and C# version 4. A lot has changed since then. While your old books would still be somewhat relevant, you are missing out on a lot of new features in both C# and .NET. Especially since depreciation of .NET Framework and the transition to .NET 5.


To add to this, C# added async/await in 2012. Depending on what frameworks you use it may be hard to avoid interacting with it (for example, many APIs in UWP are async without a sync version). I feel like other language features added since then you can get away without knowing while writing code, but of course you may encounter them when reading other’s code.


That being said, C# 5 code can be retrofitted with most new features simply by listening to the IDE which suggests refactorings to make use of them.


Similar experience here. I switched OSes a few times but I never let go C# even when the multiplatform story was subpar. Now with dotnet core (.net 5) it’s really a joy to work with everywhere (even of VS Code is no match to the real thing).


Agree, when it comes to desktop development (WinForms, WPF). But once I saw some Web API stuff, there is just too much of a ceremony and boilerplate, no?


When compared to Python or Elixir web frameworks? Yeah, there's more ceremony. To anything else? Not really. Some people don't like heavy and pretty much required usage of dependency injection in .NET world but I never really understood those arguments.


The ceremony and boilerplate got reduced a bit with the newer versions of ASP.NET - you can definitely write clean looking WebAPI code without much ceremony.

The newer idea of middleware pipelines in ASP.NET do a good job of hiding some boilerplate and there are even libraries like Flurl or Polly (which is now officially a part of .NET, itself) that reduce the code you have to write for things like http requests and resilience policies.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: