Most active commenters
  • phillipcarter(3)

←back to thread

.NET 10

(devblogs.microsoft.com)
484 points runesoerensen | 38 comments | | HN request time: 1.489s | 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 #
1. leetharris ◴[] No.45889332[source]
> I wish .NET was more popular among startups, if only C# could get rid of the "enterpisey" stigma.

Too hard to ignore the benefits of cross-stack gains in Typescript/Python. The C# native phone, Blazor, etc just isn't quite there yet. Tried it at the last company, and full stack TS was just so much easier to do.

The reality is that the vast majority of startups don't make it. The #1 thing startups should be focusing on is hiring the right people and product velocity. TS just makes that easier in my experience.

replies(3): >>45890709 #>>45898233 #>>45898434 #
2. phillipcarter ◴[] No.45890709[source]
Is it though? Backends can be any language and there's a lot more variety there -- TS+node, Go, Python, Java. It's just .NET that's largely ignored for no real technical basis.
replies(4): >>45896164 #>>45898627 #>>45898862 #>>45904484 #
3. cebert ◴[] No.45896164[source]
You can easily use the same types and libraries in your backend and frontend with TypeScript. It’s not at easy with dotnet.
replies(3): >>45898128 #>>45898236 #>>45898276 #
4. phito ◴[] No.45898128{3}[source]
OpenAPI and client generators solve this issue easily.
replies(4): >>45898168 #>>45898177 #>>45898181 #>>45898458 #
5. robertlagrant ◴[] No.45898168{4}[source]
No, that's not true. If you share code like this then you can do things like put the same validation code in the frontend and the backend: frontend to give a nice user experience, and backend to protect the endpoint.
replies(1): >>45898510 #
6. cies ◴[] No.45898177{4}[source]
Or GraphQL.

Still one lang on both ends is nice: there are some bits of code you want to run on both ends (like templating for SSR/SEO/caching; but also using them in the browser).

7. josephg ◴[] No.45898181{4}[source]
Still more work than just running the same code everywhere.
8. pif ◴[] No.45898233[source]
I wish people stopped conflating web programming with the whole realm of software development.
replies(1): >>45898255 #
9. pjmlp ◴[] No.45898236{3}[source]
While suffering the performance loss of V8 versus CLR, JVM or any compiled language.

One of the reasons I am back to writing more C++ code is C++ addons for node.js, as several SaaS products now only care about Next.js as extension SDK.

replies(1): >>45898384 #
10. charcircuit ◴[] No.45898255[source]
If you ignore Android / iPhone, where language choice is limited, practically all other development is web.
replies(6): >>45898315 #>>45898399 #>>45898489 #>>45898491 #>>45898508 #>>45898537 #
11. DeathArrow ◴[] No.45898276{3}[source]
>You can easily use the same types and libraries in your backend and frontend with TypeScript. It’s not at easy with dotnet.

You can do that in .NET, too if you use Blazor for frontend.

12. forrestthewoods ◴[] No.45898315{3}[source]
> practically all

Define “practically all”. I would accept “clear majority”.

But practically all? Nah. I mean the hot new areas for funding right now are AI and robotics neither of which are web!

I’m coming up on 20 years professional experience. Exactly none of it has been mobile or web! The programming field is so much bigger than HN likes to pretend.

replies(2): >>45898496 #>>45898499 #
13. petesergeant ◴[] No.45898384{4}[source]
> While suffering the performance loss of V8 versus CLR, JVM or any compiled language

The number of startups for whom that performance differential matters more than developer output is tiny.

replies(1): >>45898590 #
14. gishh ◴[] No.45898399{3}[source]
Sure isn’t.
15. greener_grass ◴[] No.45898434[source]
What are the cross-stack gains of Python?

Running TypeScript on the server is a well trodden path. It can be pretty fast too. Python on the client, not so much.

16. littlecranky67 ◴[] No.45898458{4}[source]
I would love this to be true, but it isn't. I've done generating types for the frontend multiple times, sometimes from C# (around 2016, using typelite), Java (openapi template generator) and most recently straight from OpenAPI spec files (.yaml) using Orval.

It always has been a shitshow. It works well for the 90% cases, but in the 10% edge cases, things break. It becomes impossible to fix generation issues, you will often resort in working around issues in your backend/openapi code. Sometimes you report bugs upstream and hope it gets fixed. In the current project we are stuck on a ~2year old Orval version (a typescript generator from openapi) because some features broke or were removed in the latest version, and the entire monorepo (15+ LoB apps) wouldn't compile and would require major changes. This simply because a never version of the generator was broken/removed features previously present.

17. adastra22 ◴[] No.45898489{3}[source]
Get out of your bubble.
18. fuy ◴[] No.45898491{3}[source]
It's web in a (limited) sense that there's probably a web frontend somewhere, but this "somewhere" is usually pretty far away from where most of the code is developed.

Most of the backend logic is not related to serving data for the browsers, it's doing actual backend stuff - communicating to databases, APIs, etc.

Is Google search backend a web app? I think it's really stretching the term.

19. adastra22 ◴[] No.45898496{4}[source]
The majority of software is probably Excel macros.
replies(1): >>45900281 #
20. charcircuit ◴[] No.45898499{4}[source]
>I mean the hot new areas for funding right now are AI and robotics

Most developers are not in such startups. There is a lot of boring software out there which is a website. Even for AI, the first company that comes to mind OpenAI is known for ChatGPT, a web product. Most of the AI companies are building web products.

replies(1): >>45898586 #
21. egeozcan ◴[] No.45898508{3}[source]
Most of your electronic devices work with embedded software. Production lines, transport gates, cranes, computer hardware, ships, planes, rockets, cars, e-bikes, smart lights...

There is also scientific programming, that feeds research and analysis. Weather reports? Statistics, etc.

And there is gaming.

Devops, infrastructure? Databases? Tools for artists? Most of those aren't web. And yes I've heard of Figma.

There are probably tens of categories I'm missing.

Web is still bigger probably, but I have a problem with the saying "practically all other development is web".

replies(1): >>45898794 #
22. littlecranky67 ◴[] No.45898510{5}[source]
OpenAPI does support patterns for fields and nullables/non-nullables - that already gets you very far regarding validation. A decently sophisticated generator (which don't exist IMHO) would generate the validation code for your respective language.
replies(1): >>45898922 #
23. delta_p_delta_x ◴[] No.45898537{3}[source]
> practically all other development is web

This is a pretty ignorant take.

24. johannes1234321 ◴[] No.45898586{5}[source]
That is software with a web interface. Only a small part of OpenAI's work deals with web related things.
replies(1): >>45898713 #
25. pjmlp ◴[] No.45898590{5}[source]
Yeah, except plenty of them are probably using Kubernetes and NoSQL, because everyone dreams to be Google.
26. SparkBomb ◴[] No.45898627[source]
It really depends where you are. In the UK half the places seem to use .NET in some form or another.

I am pretty language agnostic and I am reasonably competent programming in C# (I worked with C# and VB.NET for about 15 years), Go, Python, TypeScript and C++ these days.

The issue with a lot of places that do C#/.NET stuff is that they will typically ignore new tech until it is officially blessed by Microsoft. You can have a piece of tech that everyone is using and works really well and it will be ignored if it isn't blessed by Microsoft.

The other issue with .NET is all the Microsoft gumpf that tends to come with it even with the newer versions of .NET.

I am also in the weird place of being a Linux user. I've had job interviews that wanted to do live coding exercise/take home code exercise and they expect you to do everything in Visual Studio with SQL Server.

replies(1): >>45898707 #
27. mrsmrtss ◴[] No.45898707{3}[source]
Why would they insist on using Visual Studio? At least you can run SQL Server easily on Linux using docker.
replies(1): >>45898835 #
28. defraudbah ◴[] No.45898713{6}[source]
how dare you, i summon 10 js engineers from openai to downvote you (they have 6 only)
29. hshdhdhj4444 ◴[] No.45898794{4}[source]
I really doubt you’re using .NET (it literally is named in the dotcom style and refers to the interNET) in embedded software.

In an article about .Net its fair to talk primarily about creating APIs and other internet focused uses.

replies(1): >>45899097 #
30. SparkBomb ◴[] No.45898835{4}[source]
> Why would they insist on using Visual Studio?

They don't even know Rider exists a lot of the time. It is also quite different visually compared to Visual Studio code.

A lot of places have never used Linux at all and if they have they have it would be WSL or some RHEL box. So if you are screen sharing Gnome and with a totally different IDE and Terminal the person assessing you might not actually understand what you are doing.

> At least you can run SQL Server easily on Linux using docker.

1) They normally want you to use something like SQL Server Compact or SQL Server Express and a specific version. TBH I just don't bother anymore with these interviews because it takes like a couple of hours to get all this stuff working on Windows.

2) SQL Server Projects can only be used on Windows with Visual Studio. Some places do a lot of stuff "old school" and they want you to use that.

31. hshdhdhj4444 ◴[] No.45898862[source]
> It's just .NET that's largely ignored for no real technical basis.

As someone who has been developing primarily on .Net for the past decade this is absolute bullshit.

1. It’s only very recently that .Net became open source. Until then you would frequently hit issues where the only option was to rely on the few support calls you got with MS engineers with your $1000+ Visual Studio subscription to move forward. And believe me, this isn’t a pleasant way of debugging. 2. It’s only recently that .Net became cross platform. Until recently .Net meant you had to pay far more money for windows servers, get far less performance, and open your application to way more security issues. And when things broke they broke in highly inscrutable ways. 3. It’s still not a great platform. If you’re deploying on Windows, there are still things you will want to do that will require windows registry changes. 4. It’s only recently that the transition to an open source/cross platform framework has stabilized. Until now you had to deal with MS alphabet and naming goop, an absolutely muddy roadmap, and if you ever got thrown into a project you’d end up finding yourself in a mess of varying conventions, project types, incompatibilities, etc. 5. You know all those performance improvements they’re delivering with every release? There’s a reason for that. Until recently performance was so bad. Kestrel alone provider at least an order of magnitude of improvement. 6. Thank the lord for Jetbrains but other than them, to do proper .Net development you need to use Visual Studio. And Visual Studio is not a pleasant IDE or development environment at all.

There were a lot of technical reasons to not adopt .Net. Even today there’s the problem of MS losing interest or making the wrong choices and there being basically no alternative, because unlike even Java, the .NET ecosystem is completely dependent on what MS does.

replies(2): >>45898963 #>>45907010 #
32. robertlagrant ◴[] No.45898922{6}[source]
True, but you can get all the way to zero duplication if you write it directly and share that code.
replies(1): >>45901344 #
33. master-lincoln ◴[] No.45899097{5}[source]
And you just deduct that from the name? Was .NET created with a focus on web? It seems to me like a generic application framework.

ASP.NET is the web part, no?

34. egeozcan ◴[] No.45900281{5}[source]
This probably isn't true but I want to read a super geeky dark sci-fi novel that explores this topic.
35. ◴[] No.45901344{7}[source]
36. pier25 ◴[] No.45904484[source]
> Backends can be any language

In +90% of cases you will still need a frontend for that backend.

TS full stack is by far the best option for this.

replies(1): >>45906940 #
37. phillipcarter ◴[] No.45906940{3}[source]
Not really? Having come deom a TS + Go startup it’s pretty trivial to wire up domain objects across each language and define a clean API boundary with some enforcement at build time. And Go was a far better choice for the backend than TS for some lower-level memory considerations.
38. phillipcarter ◴[] No.45907010{3}[source]
By recently you mean a decade ago yeah? I mean it’s fair that it was only a half-decade (.NET 5) when it was genuinely complete enough, but lots of stuff was in good shape when it was called .NET Core.

It sounds like you’re projecting the problems of an existing .NET shop onto the shape of a startup without all that baggage. I can assure you, having worked with many customers running new business on newer .NET, it hasn’t been a legit technical concern since about .NET Core 3.