4 ms·
.NET 6 (or 5, or Core 3.1) is absolutely fine for personal projects. The tooling is great, it runs on Windows and Linux, the web stack is miles better than Spri
by orthoxerox 5y ago
.NET 6 (or 5, or Core 3.1) is absolutely fine for personal projects. The tooling is great, it runs on Windows and Linux, the web stack is miles better than Spring Boot.
But if your personal projects are a stepping stone to a programming job, then .NET has a monstrous legacy problem. In 2002-2007 a lot of code was written using .NET in enterprises: it was the best way to write a rich desktop application for Windows and ASP.NET WebForms, while terrible, were an okay stack for intranet websites, certainly not worse than PHP5 without Yii or Laravel. And if you were a Microsoft shop, you got the best integration with MS SQL Server and (oh Lord) BizTalk if you used .Net.
But then Rails and Google Chrome came out and completely upended the webapp industry. Microsoft has been playing catch-up ever since.
A modern startup could certainly use .NET 6 instead of the framework of the month to write their world-shattering program, but they won't, because .NET isn't cool. A lot of .NET jobs are in stuffy enterprises where you likely won't be paid to write a backend to a Svelte SPA in .NET 6, you will be paid to maintain an ASP.NET WebForms 2.0 monster that uses WCF to talk to some SOAP/XML webservices.
Of course, the same applies to JavaEE, but Java has a second leg to stand on: people wrote FOSS in Java back when it was a dirty word at Microsoft, so not everything in Java shops is a terrible Spring/JavaEE mutant that has to be configured using vendor-specific XML.
- kumarvvr 5y ago>then .NET has a monstrous legacy problem Every enterprise targeting technology has the same issue. In fact, that legacy is an opportunity to move into modern stacks.
- sjellis 5y agoThe wheels started to come off with .NET back when ORMs became a thing, slightly before Rails. Look up "ALT.NET" movement for the history. TLDR: Microsoft wanted .NET developers to only use tech from Microsoft, used various tactics to achieve that, and people got the message. If you wanted to use modern tech or develop innovative stuff, .NET was not a comfortable place to be. Microsoft have tried to move past that, but never really have. .NET has never had a healthy Open Source eco-system.
- oaiey 5y agoLegacy exists in every company and platform older than some years. You either do the business of brownfield jobs or not. Every platform has their ugly history .. they just call them differently: SOAP/WS, RMI, CORBA, 2to3, PHP4, jQuery, AngularJS 1, ... . If a platform does not have history, I would be worried that I am riding something which soon is the legacy. Microsoft does not play catchup in the web space. It is in the pack for some years already. The stuff they do with Blazor is at the upper end of the pack. .NET, like Java, is not cool. It does not need to. It gets the job done without any experiments in a very modern platform. Doing a startup with boring tech is a thing. So in summary: .NET is a very good choice for a beginner or converts. It is fresh, you can do solid stuff, do the full stack in one platform (web, desktop, apps, games, iot, ML, ...) and there are plenty of jobs (greenfield or brownfield).
- jiggawatts 5y agoThis wouldn't matter so much except that Microsoft completely broke all backwards compatibility for ASP.NET web applications. There's no "wizard" upgrade. I'm working on migrating an ASP.NET 4.0 application right now, and it's basically stuck in the past. Physically, yes, it could be updated by the developers to work on .NET 6.0, but no manager will ever fund this. They don't understand the benefits, and no amount of explanation will justify this effort in their minds. So Microsoft basically stranded their customers on an iceberg floating away from the shore that is very slowly, almost imperceptibly melting...
- kumarvvr 5y ago> but no manager will ever fund this Looks like the way to convince them is to tell them we will be moving to a <gasp> microservices <gasp> based stack and slowly start building the services on modern stacks (and gRPC)
- jiggawatts 5y agoI mentally translate "modern" to 0.3.54 build 72 alpha.
- DeathArrow 5y ago>Looks like the way to convince them is to tell them we will be moving to a <gasp> microservices <gasp> based stack and slowly start building the services on modern stacks (and gRPC) We did just this at the company I work for. We are replacing an old monolith with modern architecture.
- kinjba11 5y agoThis. In many ways .NET Framework is to .NET Core/6 as Python 2 is to Python 3. The new stuff is all phenomenal, truly. But there are mountains of code running right now, responsible for billions of dollars of economy, still being maintained and added to, that will never be ported to the new. One wonders how our young industry of software development will evolve into the future, how many COBOLs are being created as we speak. Old cars, planes, bridges, buildings and roads eventually stop working and break down, but code is code. Or is it?
- DeathArrow 5y ago>But then Rails and Google Chrome came out and completely upended the webapp industry. Microsoft has been playing catch-up ever since. And where is Rails now? .NET is still thriving. >A modern startup could certainly use .NET 6 instead of the framework of the month to write their world-shattering program, but they won't, because .NET isn't cool. A lot of .NET jobs are in stuffy enterprises where you likely won't be paid to write a backend to a Svelte SPA in .NET 6, you will be paid to maintain an ASP.NET WebForms 2.0 monster that uses WCF to talk to some SOAP/XML webservices. I get paid to write a modern microservice based application using .NET, Kubernetes, Docker, Consul, Redis, Postgres. I can't say it's boring. But it is true, the app is for an enterprise, not a startup. The payment is relatively good and the app is making money for the company, so we aren't a cost center.