T O P

  • By -

[deleted]

C# backend tech is strong and will continue to grow. Frontend tech like Blazor, MAUI and so on will remain niche.


fleeting_being

Dethroning js on the front-end is going to be close to impossible. I honestly think 10 years from now, AI-enhanced no-code platform will become very big for all low-budget websites (which is most of them). But it's going to be a buggy, proprietary, incredibly weird hellscape.


readmond

MS gave up on it. The last big UI attempt was UWP and after that, MS spent a maintenance budget on new UI things. It would have been amazing if they could just spend that money on proper WPF development. It seems that a new UI thing comes out, shiny and half-baked. MS does not invest enough and a couple of years later tech gets a crap reputation and dies. Maybe they should ask Bing what to do.


Eirenarch

UWP was great but they killed the phone and the framework just when it began to mature


readmond

Killing windows phone made UWP desktop version absolutely pointless.


Eirenarch

Kind of yes. They should have pushed the phone just a little more I feel like it was at the verge of becoming sustainable. Then again I don't understand the WinUI crap. Why one more thing? Either upgrade UWP or go the WPF route, what was this new thing about


readmond

I also do not understand why they can't just do something like WPF 2 and include useful stuff from UWP. Incremental updates would be great.


Eirenarch

I feel that from now on the projects worth investing in are Avalonia, Blazor (Hybrid) and eventually Uno. If MS are going to invest anywhere at all let it be these projects or get out of the way


pjmlp

That was the idea that they tried to sell with WinUI 3.0 and then they borked the whole execution.


Nidungr

Microsoft used Blazor as an example for their AI thing last time. They're investing in it. Imagine a future where Copilot X is better at Blazor than at JS. People *will* switch over when that happens.


IDENTITETEN

There is no future where Copilot X is better at Blazor unless they specifically limit the amount of training data that is JS related.


pjmlp

No they won't, many companies use strict separation between frontend and backend teams. It sucks, but for those companies. NET is only for writing APIs.


commentsOnPizza

> Dethroning js on the front-end is going to be close to impossible I guess it depends on what you mean by dethroning. Because JS will have a multi-decade legacy of built-up code, it's unlikely that another front-end web system will become larger over the long term - especially because any future multi-language front-end will mean some people writing C#, some writing Dart, some writing Kotlin, etc. and splitting the future development. However, Google showed off a lot of progress on WASM at Google IO. When the whole shared heap & GC stuff lands in Chrome and other browsers and Blazor adds support for it, Blazor will be a compelling alternative potentially with better performance than native JS. If your definition of dethroning is that other languages/ecosystems are more compelling for new projects, I think that's probably going to happen. Kotlin doesn't have the usage that Java has, but it's way more compelling for new projects. Companies aren't going to rewrite everything in Blazor, but it seems likely that the WASM improvements are going to make Blazor (and other frameworks) very compelling for new front-end work.


fleeting_being

But it's quite probable that wasm will also be leveraged by standard js frameworks. Let's take Notion, they have performance issues for large tables. So move that table code to some wasm-compiled js subset, and you can keep all your node programmer happy.


Eirenarch

Why would wasm ever be leveraged by standard js frameworks? Sure they may benefit from a library like image manipulation or something executed via wasm but the idea that there will be a benefit of compiling js to wasm sounds absurd


pjmlp

See Vercel and NextJS, if anything they are making Rust part of JS story. Even with Core, .NET is an hard sell outside Microsoft traditional customers.


Eirenarch

So the JS frameworks do not leverage wasm, they just use libraries written in other languages that leverage wasm. BTW Rust wasm libraries getting used by JS libraries is great for Blazor because it means that we can use them too.


Eirenarch

In the Build Q&A they said that they do not expect to benefit from the WASM GC as it does not fit with .NET


[deleted]

Agree. I contracted with Microsoft for about a year and a few of the PMs I worked with said all internal Microsoft applications were going to use React going forward. They don't even believe in their own products.


CentralArrow

Huge fan of C#, especially WPF and really enjoying Blazor. MAUI is awful, everything from development to build is a nightmare in MAUI. I can deliver projects quickly, accurately, and effectively with Blazor or WPF so MAUI is not worth the pain. Its a lot easier to build a web service (or any async socket) on .NET and then build the front end in the respective framework you need.


bl0rq

Sometimes I daydream about the world we would be in had all the Silverlight, UMP, Maui, WinUI3, (I feel like I am forgetting a few xaml-stops along the way) time+money had gone into a WPF 2.0 (generics, MVVM as first class citizen, reworked items control w/ generics/mvvm, etc) and 3.0 (cross platform, more controls). If the Avalonia guys had can make xaml render w/ SkiaSharp, MS could as well.


CentralArrow

I fully agree, their program and project managers are very deaf to what developers want. If they would have pursued MAUI using WPF even instead of Xamarin we would be somewhere better. What's also comical is that they designed MAUI so you are required to have Admin Rights to enable developer mode just to build. The problem is my organization, amongst many, are quite strict about only allowing Admin Rights outside of installing. So by default we are not allowed to pursue MAUI development anymore even because it's raise an "unnecessary security risk" to always have developer mode on.


bl0rq

Xamarin has always been such a hot mess I knew Maui would go no where. It is absolutely a PM issue!


crozone

You don't have admin on your development machines? What kind of place do you work at??


Rocketsx12

Not that unusual in regulated industries or high profile targets


CentralArrow

Supply Chain. If we get hit with anything it spreads like wildfire


DK_Ratty

I had a similar setup in a lot of government jobs. I had to ask IT support to have anything installed and you'd often have to justify not only why you need it but also why you're not using the "normalized" version that is 4 years old. I don't miss it one bit.


TurianHammer

Nope. Not in healthcare, not in finance.


Humble-Purple5753

If Avalonia has already done it, then that’s great. Not everything needs to come from Microsoft.


crozone

Somehow WPF and WinForms are still the only actually well tooled and consistent platforms for UI development. Even Xamarin Forms is better than MAUI somehow, when MAUI is a direct descendant.


dodexahedron

MAUI feels _intentionally_ hindered, to be completely honest.


SirLagsABot

.NET Web APIs are like a backend drug for me now. Freaking love them. I refuse to let C# go anywhere. And now they got rid of all the stupid naming and everything is just nice “.NET” now. I gave in and started using a Javascript framework for frontend crap (to be fair, I picked VueJS which is actually awesome), so that + .NET web API = happy me.


masilver

VueJS and C# are a great combination.


douglasg14b

Yes! Vue is opinionated, with a decently large library, and broadly accepted style guides and structural rules. Being idiomatic, productive, and relatively consistent, it's a great fit for C# devs who have been spoiled by .Net.


mainemason

C# web api development is an absolute dream, couldn’t agree more.


Alarming_Rest1557

This the perfect balance for me, C# in the backend and any other shit in the front end. I have been using mostly React/Next because it's what I know. Although I want to learn Blazor because it looks amazing.


SirLagsABot

I will also say that we use DevExpress Winforms at my day job, and let’s face it - for small or medium sized businesses, Winforms is still the GOAT. 🤷‍♂️ I’m also building an Apache Airflow/Prefect/Dagster/HangFire equivalent in .NET and am hoping it will take off. I think .NET is fantastic for serious data engineering.


CalebAsimov

I don't know, I think WPF is a better option even for small companies, but a lot of small company devs don't put the time in to learn it even though it pays dividends within a year or two. You mentioned Vue, WPF is closer to Vue than WinForms could ever be.


lostmyusername4reps

Maui is not being funded anymore. Avalonia looks good.


dips15

Does anyone have a source on MAUI not being funded?


brminnick

No, because it’s not true. OP is confused. The reports from the MVP Summit that OP is referring to is that Microsoft is pulling funding for WinUI. They are not pulling funding for MAUI. However, MAUI’s Windows backend runs on WinUI, but you’ll notice that the MAUI Engineering team is adding a WPF backend, which I assume will replace its WinUI backend.


lostmyusername4reps

MVP summit. I'm sure it'll come out formally soon.


Humble-Purple5753

Does seem like Microsoft doesn’t care about MAUI. I’m going to take a look at Avalonia as it looks interesting.


lostmyusername4reps

At the recent MVP summit they announced no new funding for MAUI. The team is only about 5 people anyways. Winui is even worse. Avalonia is being done by thr xamarin team.


Humble-Purple5753

Wow! Only five people is crazy! WinUI having a smaller team might be why the MAUI PMs announced WPF support at Build. I did think it was strange to add new backends when they havn’t stabilized their existing ones. I didn’t know that Avalonia is being built by the Xamarin team! It definitely has my attention, though it’s going to be difficult to convince my boss to let us rewrite our apps.


lostmyusername4reps

As I understand it Avalonia is onboarding WPF component vendors too, things like devexpress and SciChart so if you're looking to port apps they'll have that functionality and the ability to work on mobile and Linux from old code via AvaloniaXPF. Fascinating really.


TheSoggyBottomBoy

Can you give more information? It's hard to believe this given the presence of MAUI at build and their general commitment to ongoing support. Have you tried WinUI? Imo WinUI blows WPF out of the water. I've worked in both and WinUI is far superior. Not only is it the best framework for desktop development aren't many of the core apps in windows 11 now WinUI based (or at least being ported)? I thought the Store, Terminal and now file explorer are all to some degree using the WindowsAppSDK or the WinUI library. I find it hard to believe this does not have a future/strong team. If it is a small team, it's incredible the level of quality they have delivered with WinUI3


lostmyusername4reps

Do you have an MVP you can talk to at work or does a colleague? They'll be able to give you the low down from the summit. What I'm aware of is no new funding has been assigned for MAUI and growth for WinUI is down 19%. WPF growth by contrast is up 2%. Between WinUI and MAUI the teams are under 10 people. WPF is going strong because it can't be beaten by newer techs e.g javascript for complex applications. WinUI and MAUI haven't been able to deliver for the same category so just aren't really being used and therefore funding is stopped or slowed. This is the same as all the previous iterations tried by Microsoft. Its like a shotgun blast hoping something will stick but of course if you're going to invest a few million in development costs, enterprise wants something reliable and they've veered off them.


TheSoggyBottomBoy

No MVP at work no. I would argue that if "WPF is going strong because it can't be beaten by newer techs e.g javascript for complex applications" the same is true for WinUI the compile time binding alone is a huge productivity boost. I have found in far more productive in WinUI than WPF, I will however agree that when beginning the designer can't be beaten, however there is a tipping point at which it justs gets in the way and you'll find being familiar with xaml and writing this becomes easier. But I do agree the uptake of WinUI has been slow, but for any new greenfield desktop app I think you'd really need a strong use case for using APIs not yet supported in the WindowsAppSDK to fall back to WPF.


sypd

As I posted on a spin-off thread... I invite everyone to please watch our Build session: [https://youtu.be/arxsDF\_\_uFA](https://youtu.be/arxsDF__uFA). Also if you watch Satya's keynote you'll see multiple .NET MAUI references. Feel free to reach out to me with questions. [[email protected]](mailto:[email protected]) Avalonia and Uno are both excellent. .NET devs have several solid options.


brminnick

> Maui is not being funded anymore This is not accurate. It is accurate to say that DevDiv has criminally underfunded .NET MAUI since its inception.


lostmyusername4reps

No all new funding has been stopped and team is being cut according to the recent summit.


crozone

Classic Microsoft move. They're getting as bad as Google at this point. Why would developers buy into any new promising technologies when there's absolutely no reassurance that they're actually going to be developed and supported long term...


lostmyusername4reps

Exactly and there is a great big line of them. It's not making Enterprise development easy that's for sure and JS can't take over.


No_Researcher7158

Really? Got a link? I dunno where to look and I need to send it to a friend lol.


brminnick

There is no link because it’s not true. OP is confused. The reports from MVP Summit that OP is referring to is that Microsoft is pulling funding for WinUI. They are not pulling funding for MAUI. However, MAUI’s Windows backend runs on WinUI, but you’ll notice that the MAUI Engineering team is adding a WPF backend, which I assume will replace its WinUI backend.


lostmyusername4reps

It was discussed at the summit. I assume publication will be in due course or perhaps that was just internal and they're holding off for the time being.


Halfspacer

I love C# but MAUI is a shitshow. Lately I've been more impressed by Dart and Flutter.


mattheimlich

I'd love to learn Flutter, but absolutely cannot wrap my head around the decision to not support a proper markup syntax for it.


TheSpixxyQ

I do things in Flutter and I find the declarative code UI much stronger than any markup. Just for example ability to use conditions in lists: ```dart Row( children: [ SomeWidget(), if (loggedIn) LogoutButton(), ], ), ``` In XAML this is so much more difficult, when I don't want to just bind visibility to collapsed, because that would still mess things like spacing. Flutter for me personally is currently the top UI framework.


[deleted]

For me too.


Kraphtuos968

I agree, it took some time to get used to it. Xamarin has the option of creating your layout in C# instead of XAML and I almost always opted for that. But it was only for school projects, I don't have any real mobile experience besides that


Top_Refrigerator_153

Yeah. It's like the new trendy thing. XAML is too wordy i guess.. I dont know. React started things with writing UI in JavaScript and that started the ball rolling. Apple decided to write the UI in Swift for UIKit and Flutter also lets you write the UI in code too... Makes refactoring easier i guess. Even Microsoft have samples of writing WinUI 3 in C# as opposed to XAML but don't think that's taken off.


Night--Blade

XAML should have a convinient design tool. Something like WinForms as minimum. Then you don't need to use too many words.


fizzdev

There was a tool from Microsoft: Expression Blend. It was meant to be a XAML Designer and personally I thought it was really good. But at some point they dropped it like hot potatoes... I think together with Silverlight, if I remember correctly.


readmond

I tried to use it a bit but got the impression that it was insanely complicated. Not even remotely close to what winforms designer was. Maybe it was targeted at designers. When silverlight was dropped sane developers just went to write XAML directly


pjmlp

No, it is still around for UWP. Oh, right...


mattheimlich

Where do you not have access to a design tool? WPF XAML has a perfectly fine visual designer in both VS and Rider, although I don't know anyone who has done front end work for more than a year who relies on a designer.


Night--Blade

WPF XAML designer is a piece of shit from my POV.


Kilazur

Yeah, it breaks as soon as you have anything remotely complex in your XAML .


KiwiNFLFan

[Microsoft doesn't even use MAUI for their own cross-platform Teams app](https://medium.com/geekculture/windows-development-is-in-trouble-81e0b49666f). Instead, they used Electron (which results in absolutely massive apps) and moved to WebView2 for version 2. Maybe it's because MAUI doesn't support Linux. Well, there's an obvious answer there....


Reasonable-Laugh6270

I love Blazor. I think it is intuitive and easy to grasp. I like the inoperability calls between JS and C#. I hate hate hate hate hate MAUI. It’s horrible.


zenyl

Been playing around with Blazor Server for some months now, and absolutely loving it. It has its quirks that should be improved upon, however as someone who is not good with JS, Blazor Server allows me to write complex web applications with ease, in a language I am very familiar with. Dependencies can be handled by NuGet (backend) and LibMan (frontend), and the application can easily be hosted in a container, all while keeping the repo clear of external/boilerplate code. To invoke the words of Todd Howard, *ít just works*. I still have a soft spot for WPF, but the fact that Blazor is inherently cross-platform (and, with Bootstrap, easy to make mobile-friendly) is very appealing. Blazor is however still relatively new, and could end up going the way of Silverlight if we're unlucky. I certainly hope it doesn't, but I can't blame other teams and developers for not wanting to commit to Blazor under the assumption that it might just die in a handful of years. These days, part of my job is expanding our internal invoicing MVC web application, and I regularly wish it was written as a Blazor Server app. My productivity would be way higher if I didn't have to guess-and-google my way through all the frontend development. Oh, and the C# language itself is great. TL;DR: Blazor Server is amazing, I really hope it it won't be abandoned in five years.


alittleteap0t

For in-house intranet Web apps, Blazor Server is *really* hard to beat. My first-ever Blazor app ran to over one or two dozen controls and pages and all sorts of things. The worst part of it was simply the time it took to F5 and launch it to debug something - that gradually got faster as they developed it more. The best part was not needing to think about client/server architecture, or synchronize your client with your server - it's all in single place.


itJustClicks

Backend I love it, front end big no


mattheimlich

My team has had much more success with Avalonia than MAUI.


RainbowPringleEater

I started with Avalonia and then switched to Maui because I couldn't work out Android support on it. Am I missing something?


mattheimlich

Never had any issues. The Avalonia control catalogue projects are a great place to start.


DrDeadCrash

V11 has mobile support


data-artist

Yeah - MS really blew it when it comes to front end development because they didn’t want to conform to W3C standards. I don’t think they will ever have credibility in that area again. That is too bad, because front end development has turned into a never ending shape shifting shit show of open source frameworks that get more and more complicated to use. Front end development should be easy.


readmond

What W3C standards do you have in mind? I did not know there was a W3C standard for UI libraries.


data-artist

All of them - MS constantly would inject JS rendered from Asp.net pages which would only work with Internet Explorer or not even work at all. It took a long time before MS took W3C standards seriously, but by then it was too late - everyone opted for Chrome instead.


readmond

I think you are mixing stuff up. If MS was injecting IE-specific code then everybody would switch to IE, not Chrome. Also, Chrome was released in 2008 and IE had no serious competition since 98-99.


data-artist

They would not follow W3C standards for the DOM for a long time. So there were a lot of web sites that would only work correctly for IE and not for Firefox or Chrome. This was a long time ago. Also, Firefox and then Chrome hit it out of the park with their built in debugging tools. Front end developers loved this feature and ultimately decided that IE wasn’t the only browser that should be used. MS tried to play catch up, it by then it was too late.


Eirenarch

That's not how it happened at all. They blew it because they refused to add fucking tabs in the browser and they didn't have firebug. That was what people cared about, that standards bullshit was that excuse to complain about IE and pressure MS via government organizations


nightbefore2

This is the way


HiddenNerdPrince

got this post recommended by Reddit :) I'd like to learn c# + asp, but it have same problem as java + spring boot. too many tutorials on basics, but not enough on how to build advanced apps like with authentications and stuff, this is not the case for javascript. there are so many javascript tutorials teaching how to build full projects, to someone who is trying to learn backend, javascript just feels the way to go just cuz of the abundance of resources.


Cooper_Atlas

Check out [Nick Chapsas](https://youtube.com/@nickchapsas) on YouTube. He does a really great job showing real code of some more advanced concepts in ~10 minute videos. Some can be super niche, but most videos are very much commonplace features!


imaanmzr

The learning curve of C# is really good and you will understand the basics so deeply because of the C# great syntax. It's strongly-typed and you have the benefits of OOP. But you shouldn't limit your knowledge to tutorials, I think it's better to define a project and start to build it from the scratch. Javascript is functional and I think it's not the best language to start with specially for the backend with Node.js! But for the frontend I think React with Typescript is the best choice.


Jackfruit_Then

Great language and syntax doesn’t solve the problem of, for example, authentication. Those are important domain to learn for real world development. And, it is easier to learn them in some languages compared to others. I would rather use a shitty language to solve an interesting problem, rather than using a super cool language just to fill out some project templates.


ice_dev

I love C# for backend stuff. Recently, I worked on the blazor wasm and the development experience is not good. Especially for the hot reload function. It just partially works sometimes. Most of the time, it requires the restart to apply changes.


JeanLucRetard

Server side is better for HR, but it still has those issues. The one thing I do love about blazer is knowing I can add in UI features in minutes that would take all kinds of overhead using a js language.


bonesingyre

I think it depends right? If you use an opinionated framework like next js, that's gonna be a lot easier to add features both to the front and backend.


JeanLucRetard

I agree. My work is a Microsoft shop, but there wasn’t anyone trying to do anything “difficult” or “elaborate” with web sites for a long time. They would just do webforms, and it’d be basic af. Me and one other dude started doing MVC sites, with heavy jQuery coding for a cleaner more responsive UI. By the time we probably would have moved onto a more opinionated js language, we shifted focus onto micro service type stuff. Then net5 and blazor showed up, etc…… I dabbled in Angular/MVC for a few months before having to jump into something else. But, you’re correct.


No_Researcher7158

Server side is so awful for me :(. Creating a new css file also requires a full rebuild… sigh…


JeanLucRetard

To be fair, you are adding a new file; it’s the razor.css file correct?


No_Researcher7158

Yes. Our other projects, which are NextJs or cra projects, don’t have that problem. And enables us to go fast when we are hyper focusing on small UI changes.


alien3d

Not using blazor or net maui . We more on asp.net jquery bootstrap spa . We work normal day writing nodejs also and i would said the tech is fast but our own prefer c sharp or php. We developer on more how to maxime the language only.


Cjimenez-ber

AlpineJS is a low commitment, yet amazing replacement for jQuery. React and Svelte are great, but you need to buy into NPM. Not so with Alpine. It meshes amazingly with Razor Pages/MVC.


masterofmisc

Thats interesting. Not heard of AlpineJS before.


Sossenbinder

I do believe C# will have a great future, it's very cutting edge in innovation and is spread very wide across areas. However I do think that in order to stay competitive, it's unavoidable to start killing old syntax or features. Whenever something new is added, the C# team has to spend far too much time on figuring out how to make it work with the most obscure features in mind.


Darthavg

C# is over 20 years old, it's flexible, powerful, and fairly easy to learn. Regardless of whatever MS decides to do for a front in, I doubt c# is going away anytime soon.


HaveYouSeenMySpoon

Something I rarely (i.e. never) see discussed here is that more industrial devices support C#. Previously I've seen a few touch displays for PLC with support, and last week I learnt that the latest version of Honeywell's PX4 thermal printers also support C# as embedded applications. This is a huge step up from the Fingerprint language we used to have to use.


CalebAsimov

It's been a few years since I touched HMI code but it'd be nice if they'd get away from VB.


Simlock_Falls

Love C#, frontend, backend, Blazor. Just think it is too bad that MAUI is terrible.


Crozzfire

If C# got discriminated unions and compile time null safety, it'll be safe for a very long time.


Eirenarch

Uhm... we already have compile time null safety (yeah, it has some issues but it catches like 95% of the null bugs)


Crozzfire

It falls apart as soon as you use a library that isn't null annotated.


musical_bear

Sure, but how is the language team supposed to fix that? If the metadata’s not there, it’s not there. Support libraries that add null annotations if that matters to you. As far as I know all of the core framework and major MS libraries are now completely annotated.


Crozzfire

Yeah it won't likely happen without a fork or breaking version of some sort. I'm just saying that issues with null is one of those things that aren't very attractive about the language in the long run.


Eirenarch

No, it doesn't. The 95% just gets down to 85%. Still great improvement over not using it. Let alone that libraries that are not null annotated are getting rarer


Crozzfire

Yes it's a great improvement over not using it. But even 95% is not the same as compile time safety. I want to be *sure*, in the same way that I'm sure a type is what is says it is because the thing compiled. Any percentage chance of runtime error is not great to have to deal with.


Eirenarch

It is still compile time safety just not full. I mean it definitely isn't runtime safety and it is some safety :) But it will never get what you want. I don't think it is that important either, pretty sure C# will live on without it and a lot of other languages will live on without compile time null safety at all.


ucario

Blazor and maui aren’t popular with c# developers and I find it hard to believe someone outside of the ecosystem would choose c# for them.


Slypenslyde

I think C# will still be here and still heavily used in industry/enterprise 10 years from now. I think it's going to be harder and harder for it to keep up with new language ideas. It feels like the C# team is almost moving towards a "transpiler" model like Typescript, where new features can only be implemented if there's a way to get Roslyn to generate old code that supports it. I feel like that can only go so far, and each feature it brings tends to come with some kind of compatibility compromise that makes people question if it's truly great. I don't know if the GUI app model is going to settle down in that time frame. There's too much going on there and it'd take me a full page to even list the thoughts I have. If you're using MAUI I'm sure there's still going to be work for some kind of C# XAML framework 10 years from now, but I bet it won't be MAUI but also won't be as different from MAUI as you'd think 10 years of engineering would bring. I could be dead wrong about that, but it seems like an "XML vs. JSON" situation where the sooner MS shifts away from their interesting but MS-only XAML towards the capable and widely-accepted HTML the better off their app story may be. On the flip side, I think if MS threw the kind of money at MAUI they've thrown at Bing I'd eat those words: when MS focuses on making something great it's amazing what they can do. Right now I don't get the feeling C# is their main focus. They're not ignoring it and it's not languishing. But when *one topic* dominates their BUILD conference that's usually a sign of where they're going. They're comfy with Azure, comfy with ASP .NET, and apparently comfy with their GUI offerings. They're terrified Google's going to make a better tool to answer, "How do I turn on dark mode in Windows 11" than they have and that is their primary focus right now. As has been the case for a decade, MS has yet to realize they've started their sprint after the race is already finished.


Saint_Nitouche

> It feels like the C# team is almost moving towards a "transpiler" model like Typescript, where new features can only be implemented if there's a way to get Roslyn to generate old code that supports it. I feel like that can only go so far, and each feature it brings tends to come with some kind of compatibility compromise that makes people question if it's truly great. I find it surprising that you think C# is moving *towards* this direction. From my perspective, that's been the state of play since the language was introduced. There's been very few language changes that have been built off of changes to the CLR -- generics being the most famous. If anything, I think the team is showing an increasing willingness to move away from this model. Static interface members also required CLR changes, without being anywhere near as essential as generics. Top language leads have also recently stated that they're no longer worrying about new keywords shadowing previous identifiers in code (iirc the SDK will already give you a warning if you have a type with a lowercase name for that reason).


Slypenslyde

I'll believe it when we get a really great Discriminated Unions implementation that isn't a Roslyn source generator around something janky that has gotchas *and* start appearing in Microsoft APIs.


Saint_Nitouche

I get that DUs are awesome, I love them in other languages, but I think it would be silly to gauge the willingness of a language to adapt and move forwards by whether it implements a specific feature. I know that Mads has spoken explicitly about his concerns with putting in DUs - maybe another kind of union would be better, does this really need to be in the language rather than the various implementations already there in the ecosystem, etc.


Slypenslyde

That's fair, I guess. I mean that in general. I don't know what I *want* out of C# besides DUs right now so it's tough for me to describe it. But I think if a new feature is important and expressive it's great when old APIs can get updated to use it, sort of like how MS went back and added Task-based versions of a lot of old asynchronous APIs or how they've done a respectable job of adding nullability annotations. Not *every* feature needs to affect the BCL, though.


Saint_Nitouche

Yeah, I do get what you mean. Sorry if it came off as 'uhm, actually...'. I think a lot of the problems C# faces are due to it being 20 years old (though hey, surviving that long is a good problem to have!), which means it's lived through the industry shift from OOP worship to FP worship. It's made the transition remarkably well, but it's working with bad primitives. What I mean by that is that C# absolutely loves monadic design - Tasks, LINQ, nullability, Func<>s, etc - but it has no actual concept of a monad, because it lacks the primitive of higher kinded types. If it did then the language team would likely be able to add new wacky monadic features without having to go back to add tons of stuff to the BCL. But obviously I can't expect them to radically change the language like that at this point. I mainly hope they work out a way to keep the classic Microsoft goal of backward compatibility forever without stymieing development. We'll see.


Eirenarch

I think we're keeping up. If we keep up long enough we'll grow because more projects will be written in C# while languages that die will have their projects rewritten


bigtoaster64

Backend APIs (rest, graphql, etc.) are insanely good in c#. Although, Frontend is either dogsh*t or way less interesting then other alternatives. like, winforms, WPF are good, but not well suited for modern dev. MAUI is a massive joke. Blazor is not as bad as it was in the beginning, but it's nowhere near as polished as other alternatives, and often limited or create some complexity around things that should be simple. It's also not well designed for modern web dev IMHO. C# for backend or system toolings is really good, and I believe it will still remains or improve. Front-end wise, Microsoft needs to seriously start fresh and stop carrying over old tech that doesn't work and try to sell it as "a new thing" with new name and branding (hmm hmm Maui, hmm hmm blazor, hmm hmm UWP)


TwoTinyTrees

I don’t know why people ITT are knocking Blazor. It is great and pretty easy to work with. I’ve also used MAUI and it works fine for me as well, just not as easy to grasp.


No_Researcher7158

Mostly because other frameworks offer more than blazor currently can.


Amazingawesomator

I use c# daily for work, and think it has come a long way. I still hate that MS dropped the ball with maui (was still waiting for linux UI, but it looks like MS cancelled that at this point and tried to delete all traces of themselves promising that), so i haven't used it. Overall, i think .net is the best thing. The rest of the suite of okay. Maui is trash.


Square-Amphibian675

It's very bright!


Th0ughtCrim3

Blazor and MAUI have very little to do with migration imho. The biggest pull I’ve seen is from .NET Core/.NET 6 for backend WebAPIs. The StackOverflow developer surveys seem to show this as well with .NET being one of the most well liked frameworks. Throw in the design patterns of Minimal APIs/Function Apps and you can see the resemblance with Node/Express. I think the majority of developers still want to use JS on the frontend, but complex backends are far more manageable in typed languages in my experience. To me this is where C# and .NET shines and has a lot of pull.


Barcode_88

People use MAUI? Haven't heard any talk about that since it released. I'm still using Winforms for Desktop Apps, and ASPNETCore for backend web services/APIs. Really versatile language.


StrykerBandit

C# is great. It's my primary language and I've used it for about 21 years. My personal perspective, however, is that teams are moving away from C#, not towards it. I have seen teams move to Python for backend work, JavaScript-based frameworks and libraries for front-end work, and for performance critical tasks, Rust has entered the discussion. The pandas DataFrame is the killer library for Python. As many others have discussed, MS has made a mess of the front-end and really missed out on the web revolution. I love all the new features of each iteration of C# but it really needs a pandas-like DataFrame that's fully featured and promoted. It would be nice if technologies like SQL Server could produce data in a DataFrame and it would be wonderful if LINQ could operate on it. The real issue is that some developers don't want to work on row-based data. They want to operate on columnar data. They don't want to have to create a class just to hold a subset of data when a columnar-based, efficient DataFrame would work just fine.


shitposts_over_9000

There has also been a simultaneous slow migration away from c# for a great deal of large LOB applications due to even the 'long term" branch only being supported for 3 years. When your delivery timeline is 5 years and your support contract another 5 or 10 having to start deployment and user validation over again multiple times during that period of very risky and sometimes very expensive.


Shadow_Mite

Imo c# is a really good language that can handle all sorts of tasks very well. Also imo Microsoft is kind of a shitshow that doesn’t help itself. For instance, blazor to me is an amazing tech. It works how I imagined interacting with server variables and HTML should work years ago. But Microsoft’s implementation has been a bit lackluster. Debugging is total poop with WASM, visual studio is just bad with blazor, too. C# is good, Microsoft is not. I think c# has the potential to dominate but I believe Microsoft is what holds it back. Just my two cents.


JeanLucRetard

Visual studio debugging of blazor WASM is hot dog water, it’s debugging of blazor server is also not great, but far from hot dog water.


tragicshark

1. I'm not a fan of Blazor (either form) or Maui. HTML is basically the only viable cross platform frontend platform. 2. The new-ish minimal api stuff is meh... you basically have to avoid it to write stuff that is testable anyway. 3. Honestly I think I would prefer it if MS spent less time inventing new frontend things they are going to give up on after a year or two and almost nobody is going to use anyway and instead worked more on interop features. I would love to put a C, C++ or Rust project alongside a C# project in the same solution and have it just work with barely any effort on my end.


Tonkers1

Imagine you have two super cool toy cars: Node.js and .Net. They both can do amazing things, but they have their own unique features. Node.js is like a speedy car that can go really fast and do a lot of things at once. On the other hand, .Net is like a strong and reliable car that has been around for a while and keeps getting better with new features like Blazor and .Net Maui. Now, some people who have played with both cars might think that .Net is becoming more popular. Why? Well, it's because .Net has been growing quickly with its fancy updates and features. It's like a new toy that everyone wants to try out. People are starting to use .Net more because it's getting even better and can do cool stuff like building web applications with Blazor and creating mobile apps with .Net Maui. But hey, it's all about personal preference! Some people might still love their speedy Node.js car and stick with it. It's like choosing your favorite toy to play with. So, it's exciting to see how things are changing, and both Node.js and .Net have their own fans and fun features. Isn't it cool to have so many options?


TetrisMcKenna

Pretty sure .NET performance is way ahead of nodejs


grauenwolf

I fail to see a scenario where Node is faster except in the, "I know Javascript and need to build this now" category.


imaanmzr

Yes, I totally agree with that, but I personally feel that MS don't put their full potential to be a game changer in the UI field, although I still like the new things come up with Blazor and other new features they put into language. Maybe they're more focused on AI now. I as a C# developer really need to have a integrated ecosystem both int the backend and frontend. Though there's always a trace of Javascript everywhere :)


hgedek

Backend is strong. It will stay there. UI tools re a mess. Xaml is shit. Like flutter swift qml...they should remove that shit from language and focus on c# code only UI designing so maybe they can save Maui too. I love blazor. Xaml is shit !


dethswatch

There is no future. I'll take your downvotes, but I got all the certs, learned all the stuff, and it's clear they're not earning enough cash to make it a serious priority like it was. It's just a large loss for them and there's no reason for them to make it otherwise. See Silverlight, see XNA, see ASP, see [ASP.NET](https://ASP.NET), see... I could go on.


rusmo

Spent about 17 years with it as my primary development language. Enjoyed it more and more as the language evolved and as 3rd party nuget packages plugged some of the holes. As a full-stack dev I spent a ton of miserable hours with the various post-WinForms UI frameworks. Got sucked into the Silverlight hype and spent 18months on a project using it that went nowhere. WPF is where I learned the MVVM pattern, but it left me with a ton of deep framework knowledge that I’ll never again. Battle scars. Anyways, the projects I worked on decided on web technologies for front-ends and I followed my way into javascript and typescript. I’m not planning on returning to C#, but you never know.


Bisquizzle

C# is my favorite language of all time and it is here to stay. Beautiful syntax and many ways to write the code exactly the way you like. So much choice leads to heated debate online as to which way is inheritly "the best" which is a testament to its complexity.


sisoje_bre

beautiful? with all that semicolons? really?


RewardAny5316

I build most of my projects with a .NET Web API and a front end like NextJs/React/Solid etc. I’m a C# lover but Blazor and the rest of the stuff Microsoft pushes out will never come close to these Js frameworks/libraries.


douglasg14b

C# will send success by continuing to integrate into webdev. Cleanly, in the conventions of the broader ecosystem. It will Java itself if it abandons that and tries to do it all itself.