Most active commenters
  • SideburnsOfDoom(6)

←back to thread

.NET 10

(devblogs.microsoft.com)
484 points runesoerensen | 13 comments | | HN request time: 1.265s | source | bottom
Show context
jitbit ◴[] No.45888669[source]
For us, every .NET upgrade since .NET 5 has gone surprisingly smoothly and reduced CPU/RAM usage by 10–15%.

We were even able to downgrade our cloud servers to smaller instances, literally.

I wish .NET was more popular among startups, if only C# could get rid of the "enterpisey" stigma.

replies(26): >>45888799 #>>45888804 #>>45889332 #>>45891939 #>>45896032 #>>45898279 #>>45898305 #>>45898358 #>>45898503 #>>45898877 #>>45899062 #>>45899235 #>>45899246 #>>45899326 #>>45899445 #>>45899481 #>>45899858 #>>45900544 #>>45900791 #>>45900829 #>>45903218 #>>45904345 #>>45904435 #>>45905041 #>>45906073 #>>45907122 #
vintagedave ◴[] No.45891939[source]
.Net is also good as a platform for other languages. I recently started working with RemObjects, and you can compile languages like Java, Swift, Go and more (VB, Pascal) to .Net. Then, the whole framework and ecosystem is available. I'm liking it a lot.

They have customers who are startups and the 'got to have tools' folk like having lots of languages since they can onboard people who know anything-not-C# and benefit from the .Net library.

replies(1): >>45898267 #
sfn42 ◴[] No.45898267[source]
> they can onboard people who know anything-not-C# and benefit from the .Net library

I don't get this mindset. I'd much rather have the new guy spend a few months getting used to a new language, than have an organization where everyone uses different languages. It's a nightmare a few years down the road when you have 20 different projects in 15 different languages and the people who built them are mostly gone.

People are way too lenient with this stuff IMO. The goal of an organization should be to have one solution to each problem. For example we use .NET for backend and React for frontend. You don't need anything else. People love to talk about the right tool for the job, it's all BS. You can make pretty much any kind of website using react and pretty much any kind of backend using C#. The only reason to choose anything else is preference.

And sure maybe you have some data science people who need python, thats fine. Just don't have one guy using Py, another using R and yet others using Matlab. That's just asking for trouble. Pick one, stick to it. If you're going to make a change then migrate everything. If it's not worth that then the new tool probably isn't such a big deal after all.

replies(5): >>45898705 #>>45898855 #>>45898990 #>>45899707 #>>45900509 #
Razengan ◴[] No.45898855[source]
Do you also make everyone wear the same clothes, drive the same vehicle, order the same food
replies(2): >>45898889 #>>45899291 #
1. SideburnsOfDoom ◴[] No.45898889[source]
> Do you also make everyone drive the same vehicle

Good analogy. If, say, your organisation maintains a fleet of cars - it needs to keep them on the road, get them serviced, replace parts, refresh individual cars regularly etc.

How many different makes and models do you support? A small org might decide that it only makes sense to support one. A larger org might have the resources for 3 or 4, so that there is 1 or 2 "general purpose" models, and then other ones suited to specialised tasks.

replies(1): >>45899086 #
2. Razengan ◴[] No.45899086[source]
But different tasks require cars, other tasks require trucks, vans, bicycles, motorcycles..
replies(4): >>45899147 #>>45899347 #>>45899483 #>>45902989 #
3. sfn42 ◴[] No.45899147[source]
Yeah, .NET is a truck and React is a bicycle. Nobody sad you can't use different tools for different tasks.

I'm saying use one tool for one task. One type of truck. One type of bicycle. Maybe some companies need both a small and a large truck. That's all fine as long as you actually need it.

Just don't let every dev choose their own because you're gonna have a hell of a time maintaining that fleet.

replies(3): >>45899505 #>>45899924 #>>45900756 #
4. locknitpicker ◴[] No.45899347[source]
> But different tasks require cars, other tasks require trucks, vans, bicycles, motorcycles..

No, they don't. You may believe that some frameworks or programming language are ideally suited for some particular tasks, but that is mainly dictated by your prior experience (or lack thereof). The truth of the matter is that a van can very well do the tasks you conceive for a car, trucks, bicycles, motorcycles, etc. If you go with a van, you avoid the problems of having to maintain car, trucks, bicycles, motorcycles, etc. This is called software engineering.

5. SideburnsOfDoom ◴[] No.45899483[source]
I think that question is more "how many different makes of van can your delivery company afford to maintain?"

Which is an analogy for "how many different programming languages for the same task of serving a web api can you company afford to support?"

The majority of programming languages (c# definitely included!) are "general purpose", i.e. they can be used well enough for almost all tasks. They're not so different as a truck vs. a bicycle.

The issue is not so much "we need firmware in Rust and statistical analysis in R" - that's fair! The issue is more, as others have said, web apps or similar in multiple equivalent languages. This is an overhead. If you take on that overhead, recognise that 1) it has definite drawbacks and 2) for mundane tasks, the advantages aren't large. and 3) chances are your organisation is like most orgs - you don't do all of firmware, statistical analysis and web apps, in house.

replies(1): >>45900681 #
6. SideburnsOfDoom ◴[] No.45899505{3}[source]
> Just don't let every dev choose their own because you're gonna have a hell of a time maintaining that fleet.

Yes, this.

> I'm saying use one tool for one task.

I saw an article ages ago arguing that the number of supported languages should scale with the size of the organisation. Which makes sense to me. The threshold was larger than we might expect though, it was something large like "one fully supported language per 500 devs". In other words, small-medium orgs will have a better time supporting 1 language only.

7. SideburnsOfDoom ◴[] No.45899924{3}[source]
> Yeah, .NET is a truck

I know one person who was good at python, and who looked at the "classic" .NET hello world app with usings, namespace, class, main method etc containing the "Console.Writeline" payload, and noped out immediately, saying "if it's that verbose that it takes 10 lines to do what's 1 line in python, imagine how terrible real code must be!"

Personally I think they were wrong about that - it was optimised for larger programs, not trivial ones.

But also it helps me understand the ongoing push towards the point now where "hello world" is is 1 line in 1 .cs file only. And `dotnet tool exec` means you don't even need to install a utility to use it, etc.

In other words, .NET started life as a truck, with many features to support large codebases - usings, namespace, class, method etc. but is also general purpose enough that you can now also write a "bicycle" program.

8. skeeter2020 ◴[] No.45900681{3}[source]
Car models get maybe refreshed annually, bigger changes a couple of times a decade, if that. Vehicle fleets are often aging out with these timelines.

So if we either stretch the fleet management analogy to 50 years, or software applications only lasted 3-5 years maybe it IS fair to say the both have either a lot (former) or very little (later) inconsistnency?

replies(1): >>45900915 #
9. skeeter2020 ◴[] No.45900756{3}[source]
>> Yeah, .NET is a truck and React is a bicycle

I'm not a car guy but I most certainly a bicycle lover, so I will jump on you and say you often need more than one type of bicycle. Joan commutes to work? she wants a city ebike. Dan rides at the bike park? He wants a DH bike. Randy ride centuries on the weekend on his TDF road bike and Sally rides with her kids on a mountain bike.

So yeah, we can pick one bike type and force everyone to ride it, and the results will suck & everyone hate it. Your job can be to continually force everyone to follow this policy or you can stop and we'll get a lot of variation. THis is how it happens.

replies(1): >>45901154 #
10. SideburnsOfDoom ◴[] No.45900915{4}[source]
> Car models get maybe refreshed annually, bigger changes a couple of times a decade, if that.

.NET gets refreshed annually. The last bigger change was nearly a decade ago. So not all that different.

But I don't think that the analogy stretches, really. e.g. where I am all .NET apps are .NET 8 LTS or 9, and will be all be .NET 10 LTS by middle of 2026. You can upgrade an app to a new model year much more easily than a vehicle. The "software application, on a SDK major version" only lasts 1-2 years.

11. pixl97 ◴[] No.45901154{4}[source]
Eh, no, you don't hire those employees. You're stretching this analogy in some odd ways.
replies(1): >>45901329 #
12. SideburnsOfDoom ◴[] No.45901329{5}[source]
Well, they clearly all know how to ride bikes, so you offer to hire them to deliver using company bikes as a day job. And let them ride whatever they want on weekends.

The "force everyone to ride it" on the weekend part is where I think the analogy has broken down irreparably. We're talking about cost of ownership of company equipment used during working hours for much more defined tasks. What flavour of bike you enjoy riding on weekends is not relevant.

Programming language are inherently flexible, especially those that aim to be "general purpose". Fine-grained distinction of road bike vs mountain bike apply more to the apps created than the coding tool.

13. stevefan1999 ◴[] No.45902989[source]
but they all delivers, just that they don't suit your taste doesn't mean it can't