Live data from Hacker News

.NET 10

devblogs.microsoft.com

171–180 of 605 posts

Re: .NET 10

#171

Earlier quoted context omitted.

Here `a` and `b` can have different types: let! a = fetchA() and! b = fetchB() Whereas `Promise.all` usually requires all promises to have the same type (returning a `List ` or even a `List `) . See https://learn.microsoft.com/en-us/dotnet/fsharp/whats-new/fs...

Actually, TypeScript's `Promise.all` can handle different types too. const [a, b] = await Promise.all([fetchA(), fetchB()]); // => a: A, b: B

I am talking about C# / F# context where the lists must have homogeneous types.

That TypeScript supports this is yet more complexity introduced to cover usages of an API not designed around types.

Re: .NET 10

#172
post #70

Earlier quoted context omitted.

>startups should consider niche language with extremely limited hiring pool. sure, but only if you're doing something that actually demands it - and actual innovation - instead of usual 'lets repackage XYZ as SaaS and growthhack' strategy.

It's good for, and I am not being sarcastic or snarky, justifying high pay and gate-keeping. Developers should set up more barriers for entry - look at doctors and lawyers.

I think I agree with you. When I was part of a growing F# team a number of years ago, everyone we hired was an enthusiast who just loved coding in F# and wanted an opportunity to do it professionally. It turned out that this love, combined with the constraints of the language, led to a super-clean and legible code base. The quality was (in my estimation) outstanding, and I was sad to leave it.

Re: .NET 10

#173
post #70

Earlier quoted context omitted.

>startups should consider niche language with extremely limited hiring pool. sure, but only if you're doing something that actually demands it - and actual innovation - instead of usual 'lets repackage XYZ as SaaS and growthhack' strategy.

F# is less popular, but it’s a first class .Net language with full MS support and integration onto .Net (VM and ecosystem). C# has been tracking F# and aiming for language parity for years (ie all your modern C# devs should be learning the same language facilities). F# is multi-paradigm so C# devs can write idiomatic C# with minor forced changes. And as a .Net language you can always decompile it into C# and keep goi…

Last I knew, Rider was pretty much the only IDE available for a large codebase when you weren't on Windows. Much love for Ionide, but it was a serious struggle.

Is this any better now?

Re: .NET 10

#174
post #47
post #2

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.

As a startup, what is it in for me to switch from Java, Spring Boot, Hibernate, Beam, Flink, Pulsar, Vault, KeyCloak ecosystem to C#.Net? Is the documentation better? Do I get better performance? Is the community larger and more stable?

Most of that ecosystem is language agnostic, or offer much more ergonomically sane APIs in dotnet. This is especially true for anything coming out of Google (e.g. Dataflow which runs on top of Apache Beam).

C# itself has way better DX (object initializers alone are worth the switch), and most language features don't feel bolted on like with Java (anything from functional programming to extension methods to whatever).

And at least 6 years ago .net with default settings required significantly less resources (RAM, CPU) and yad significantly faster startup than comparable Java code.

C# is also significantly more consistent. You might not use LINQ, but since everything is IEnumerable, you will use the same set of methods on everything. None of the Lis.of...Collectors.collect idiocy from Java.

I also found Asp.net to have significantly less undebuggable magic than Spring.

Re: .NET 10

#175

I've worked with .NET for over 10 years and we built our startup on top of it. Here are my thoughts: Pros: * Stability * Very decent standard library * Good balance between productivity and robustness * Great package management * Extremely easy to upgrade, so essentially free goodies (performance) every year or so Cons: * Very MSFT dominated (obviously) * Subpar tooling outside of Windows (I'm looking at you C# Dev K…

* C# has way to many features, it feels bloated

Most of the newer features make C# less cumbersome to use. I can't imagine using the language from ten years ago, in fact the first thing I do when working on a legacy app is to set langVersion=latest.

Re: .NET 10

#176

Earlier quoted context omitted.

>If i remember right Java's webserver beats ASP.NET in performance benchmarks That's not the case anymore. Kestrel is one of the fastest servers there is, and it beats every Java server out there.

That's not what Microsoft's own sponsored benchmarks say: https://www.techempower.com/benchmarks/#section=data-r23

Look at plaintext benchmark, if you want to compare just servers. Also look at Spring score in fortunes, which is the more common Java stack and I think a more suitable comparison.

Re: .NET 10

#177
post #2

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.

> I wish .NET was more popular among startups

C# is extremely popular in Western/Northern Europe. (Sweden/Denmark/Germany ironically in particular).

These are real Microsoft strongholds.

Re: .NET 10

#178

I've worked with .NET for over 10 years and we built our startup on top of it. Here are my thoughts: Pros: * Stability * Very decent standard library * Good balance between productivity and robustness * Great package management * Extremely easy to upgrade, so essentially free goodies (performance) every year or so Cons: * Very MSFT dominated (obviously) * Subpar tooling outside of Windows (I'm looking at you C# Dev K…

I use rider on Mac (and windows to be fair) and i think the experience is better than visual studio on windows.

My biggest gripe with dotnet tooling is dotnet format. It’s not quick enough to use on a pre commit hook, so people don’t run it regularly and we get failures for it.

It’s such a small nit, dotnet is a great environment to work in

Re: .NET 10

#179
post #70

Earlier quoted context omitted.

>startups should consider niche language with extremely limited hiring pool. sure, but only if you're doing something that actually demands it - and actual innovation - instead of usual 'lets repackage XYZ as SaaS and growthhack' strategy.

It's good for, and I am not being sarcastic or snarky, justifying high pay and gate-keeping. Developers should set up more barriers for entry - look at doctors and lawyers.

Sure, but that's a 'need' from programmers side - not from business side.

Re: .NET 10

#180
post #130

Earlier quoted context omitted.

But different tasks require cars, other tasks require trucks, vans, bicycles, motorcycles..

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.

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

Post reply on HN