Most active commenters
  • brokencode(4)
  • memsom(4)

←back to thread

303 points vyrotek | 48 comments | | HN request time: 1.919s | source | bottom
Show context
mattfrommars ◴[] No.45894761[source]
In the .NET ecosystem, I have noticed people to shame .NET MAUI because Microsoft themselves don't use this framework - Microsoft Team is built on Electron and not MAUI.

Why build a product on MAUI when Microsoft aren't too sure about it.

replies(10): >>45894798 #>>45894820 #>>45894890 #>>45895144 #>>45895166 #>>45895441 #>>45895856 #>>45896444 #>>45896882 #>>45897144 #
1. latentsea ◴[] No.45895144[source]
Never build a frontend on a .NET technology. Period. They always end up unsupported in the end. Just use standard web technologies and thank yourself later. I've been a .NET dev for a decade now and that's what I've learnt.
replies(7): >>45895301 #>>45895556 #>>45896012 #>>45896688 #>>45897709 #>>45897973 #>>45901208 #
2. password4321 ◴[] No.45895301[source]
Except WinForms, spectacular for Windows-only utility GUIs.
replies(4): >>45896304 #>>45896925 #>>45897084 #>>45897488 #
3. brokencode ◴[] No.45895556[source]
As wrong as it feels to have to use Electron for a desktop app, it really is the safest approach for most applications.

Qt also seems to be a good option, though there are licensing considerations for commercial applications.

I’m excited for various upcoming Rust options as well, but right now Electron is the battle tested option.

I am curious though about Avalonia. I’ve heard good things, but it’s definitely a smaller player compared to Electron. I’d most likely choose it over Microsoft’s first party frameworks.

replies(3): >>45895796 #>>45899844 #>>45902874 #
4. bigstrat2003 ◴[] No.45895796[source]
> it really is the safest approach for most applications.

It's also the option which gives your users by far the worst experience. Not worth it at all, imo.

replies(1): >>45895935 #
5. brokencode ◴[] No.45895935{3}[source]
Not really. The downsides are mostly overblown.

Plenty of category leading applications like Discord, VSCode, Slack, Figma, etc. use it quite successfully.

replies(1): >>45896121 #
6. apatheticonion ◴[] No.45896012[source]
Tauri is pretty awesome. Rust backend, WebView front end. Nothing uses native desktop elements of course.

To be fair, there is no practical way to write native desktop applications using stylistically consistent UI elements AND have it be portable AND in a language that you enjoy using.

As far as I can tell, Windows 11 doesn't even have a toolkit with platform UI elements.

GTK on Gnome is pretty okay and GTK-rs is not dissimilar to React. Who know what MacOS uses but something something Swift XCode.

But I agree, just use web technologies. Write once, ship everywhere (and hum loudly when people complain about poor performance - joking, it's the vendors' fault we have to use web technologies).

replies(3): >>45896365 #>>45896605 #>>45897628 #
7. PenguinCoder ◴[] No.45896121{4}[source]
All of those are examples of overbloated, slow, horrible user experience apps.
replies(2): >>45896221 #>>45896287 #
8. brokencode ◴[] No.45896221{5}[source]
They work great for me.
replies(2): >>45896514 #>>45897369 #
9. glzone1 ◴[] No.45896287{5}[source]
Does their market share back up your take of them as horrible apps?

Are there QT or GTK competitors crushing them?

I always hear how terrible electron apps are, but the companies picking electron seem to get traction QT or other apps don't and seem to have a good cross platform story as well.

replies(3): >>45896945 #>>45898363 #>>45899361 #
10. glzone1 ◴[] No.45896304[source]
No kidding - kind of wild that winforms is still kind of a gold standard experience today! I actually liked VB Forms - lots of easy rapid application development was possible.
replies(2): >>45896683 #>>45902421 #
11. codedokode ◴[] No.45896365[source]
> Rust backend, WebView front end.

I don't know much about it but it seems like a weird combination. If you want high performance and low memory usage, you don't want HTML, if you want fast code writing, you don't want Rust.

replies(5): >>45896625 #>>45896932 #>>45897252 #>>45897431 #>>45897602 #
12. homebrewer ◴[] No.45896514{6}[source]
Oh yes, the great old "works for me". On a yesterday's supercomputer, I presume? I live in a "developing" (have doubts it's really developing) country, most people are running laptops with no more than 8 GiB of RAM (sometimes it's 4 or less), and all this Electron nonsense is running like molasses, especially if you're trying to use a computer like a proper computer and do multitasking.

And most of the world is like that, very few of us (speaking globally) have $2k to drop on a new supercomputer every few years to run our chat applications.

13. jzebedee ◴[] No.45896605[source]
> As far as I can tell, Windows 11 doesn't even have a toolkit with platform UI elements.

They do, it's called WinUI 3. It's barely used for all of the aforementioned.

replies(1): >>45897832 #
14. powersnail ◴[] No.45896625{3}[source]
I could see a case where the core logic needs to be performant, but the UI does not. The front end could be some menus, displaying (not a giant amount of) data, and a progress bar, while the back end does heavy computing.

And furthermore, if you want fast code writing, you write in the language you already know. For some people, that is Rust.

15. issafram ◴[] No.45896683{3}[source]
WPF as well
replies(1): >>45902431 #
16. issafram ◴[] No.45896688[source]
So you've never used WinForms, WPF and MVC
replies(1): >>45896748 #
17. LeFantome ◴[] No.45896748[source]
MVC is not .NET of course.

You are right that WinForms and MVC have been around forever. However, Microsoft has continuously told devs that they are the past. So, you would be forgiven for expecting them to go away.

WinUI is the current official desktop paradigm and it is basically UWP from an API point of view. So the idea that UWP went away is not 100% accurate either.

Microsoft does not really abandon their UI tech like people say they do. But look how many different frameworks they have.

All of the above is Windows desktop only. There are a completely different set of UI technologies for the web.

UNO Platform (Open Source) allows you to use the WinUI API to target almost anything.

.NET MAUI is the official "cross platform" UI tech from Microsoft. It is what you use to target iOS and Android. As a bonus, you can target macOS and Windows too. On Windows, it uses WinUI. You will notice that the Linux desktop is missing from that list.

Here comes Avalonia to build MAUI on top of the Avalonia framework. This adds Linux and WASM to the list of platforms that MAUI will run on. Adding Linux is awesome. A lot of people have wanted that and it really completes the MAUI cross-platform story.

Adding WASM is neat but MAUI was never meant to target the web. If you use it for that, it is literally just the modern version of Silverlight. But Microsoft did not design it for that at all. It is just a back-end that Avalonia supports.

replies(1): >>45897017 #
18. fuzzzerd ◴[] No.45896925[source]
> spectacular

Not exactly the word I'd use, since it really hasn't changed since VB4, but it's definitely reliable and stable.

replies(1): >>45902395 #
19. Ray20 ◴[] No.45896932{3}[source]
A very reasonable combination:

- HTML is the main way of designing interfaces (whether we like it or not)

- Rust is the main language promoted by intelligence agencies with multi-billion dollar budgets because it is laced with their backdoors (whether we like it or not)

20. Antibabelic ◴[] No.45896945{6}[source]
Users will happily deal with a suboptimal experience as long as there are other things attracting them to the product. That's why Microsoft can do whatever it wants with Windows without worrying their users will run off somewhere else. So if you care more about people than businesses, maybe it shouldn't be an excuse to pick "better dev experience" over the user's.
21. AllegedAlec ◴[] No.45897017{3}[source]
> MVC is not .NET of course.

https://en.wikipedia.org/wiki/ASP.NET_MVC

replies(2): >>45897454 #>>45902376 #
22. nxobject ◴[] No.45897084[source]
IIRC, because of Wine, Mono has enough of WinForms to make a few things work. But who the hell wants to distribute an application with a Wine runtime?
23. PhilippGille ◴[] No.45897252{3}[source]
There's Wails for Go backend and webview frontend; https://github.com/wailsapp/wails
24. iberator ◴[] No.45897369{6}[source]
Hey, I found CEO of Discord
25. osigurdson ◴[] No.45897431{3}[source]
I don't believe you generally end up writing a lot of Rust with something like Tauri. It is mostly web dev. While it is true that browser based UIs are slower than native, it isn't clear that .NET based UIs would be any faster while being very niche.
26. alternatex ◴[] No.45897454{4}[source]
I feel like they're both talking about MFC instead..
replies(1): >>45898357 #
27. mrweasel ◴[] No.45897488[source]
I was going to suggest the same, just use WinForms. It's basically feature complete, and it's going to be the last UI framework Microsoft is going to yank out from beneath you.
28. raincole ◴[] No.45897602{3}[source]
Use the slower but easier to write languages for front end is the norm for complex apps. Many apps that passed the trial of time are like that.

Blender: frontend Python, backend C++.

Houdini: frontend Python(PyQt), backend C(presumably)

Sim City: frontend JavaScript, backend C++

The reason is very simple: frontend is more error tolerant, but less resistant to the product designer's whims (or the users' desire to customize.)

29. Deukhoofd ◴[] No.45897628[source]
In my experience with Tauri, it's pretty good on Windows, but not so much on other platforms, especially Linux. The decision to target different browser engines on each operating system means you still have to deal with a bunch of different OS-specific bugs.

For Windows you're dealing with Edge (so Chromium), on macOS you have Safari, and on Linux you have WebKitGTK. WebKitGTK has honestly abysmal performance, and you're missing a lot of modern standards.

The Tauri devs are looking at bundling a Chromium browser with it to deal with that, but that's still some time off, and leads to the same issue Electron has, where you have large bloated applications.

https://github.com/tauri-apps/wry/issues/1064

30. pathartl ◴[] No.45897709[source]
Blazor is pretty great. It is mature at this point and MS is using it internally more and more. Trying to go back to something like React makes me shudder. It's not perfect, but it's better than many alternatives.
replies(1): >>45898350 #
31. apatheticonion ◴[] No.45897832{3}[source]
I tried this. Their examples don't even compile lol
32. phito ◴[] No.45897973[source]
I sure never will write a single line of JS/TS again now that Blazor exists and is stable.
33. oaiey ◴[] No.45898350[source]
I agree. For Blazor there is hope. It is standard based (web assembly, HTML, css) and it feels very intuitive particularly when compared to other spa frameworks like react. Also you can reuse all your html, css and design systems you have. Which is huge because like that it hooks up with the whole web development stack.
replies(1): >>45902963 #
34. ◴[] No.45898357{5}[source]
35. tjpnz ◴[] No.45898363{6}[source]
They said horrible user experience apps, not horrible apps. You can still deliver an app with a horrible user experience and build a profitable business. Ever done an expense report?

Companies aren't picking Electron due to inherent shortcomings in other platforms, they're picking it because it's easier (and cheaper) to find JavaScript devs who can get up to speed with it quickly.

replies(1): >>45901266 #
36. rixed ◴[] No.45899361{6}[source]
Beware with that logic. You notice successful electron apps because of how bloated they are. I suspect you use many Qt apps without even noticing.

One that comes to mind that I use daily and noticed only recently that it was implemented in Qt is the telegram desktop app.

37. gr4vityWall ◴[] No.45899844[source]
> Qt also seems to be a good option

I think Qt really is 'just' missing more language bindings, and a better hot reload story for more people to use it. Lots of devs (specially Free Software devs) would prefer to use native toolkits, if the prototyping experience was similar to how Vite is for web frontend stuff, I think Qt would be used a lot more.

replies(1): >>45902598 #
38. vjvjvjvjghv ◴[] No.45901208[source]
Same for me. I used to do desktop dev with MFC and WPF but these days you would be suicidal to build any app that needs to last for a few years on .NET. If totally needed, WPF is still the best bet. Otherwise I am pushing everything I can to the web.
39. brokencode ◴[] No.45901266{7}[source]
Discord, VS Code, and Figma are all apps that individuals choose and are well liked despite many alternatives. Slack too I think, though I don’t have experience with it.

Your comment applies to Teams and I’m sure other electron apps. But the sweeping generalization that electron apps have terrible user experiences is pretty obviously incorrect.

40. memsom ◴[] No.45902376{4}[source]
MVC is a design pattern, ASP.NET MVC is a framework that used MVC as its go to pattern. But MVC is not in any way only ASP.NET MVC. There are plenty of other UI frameworks that use MVC and the Wikipedia article lists a lot of them for example: https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93con...
41. memsom ◴[] No.45902395{3}[source]
WinForms came way after VB4 and it was a .Net only technology.
42. memsom ◴[] No.45902421{3}[source]
Delphi was the best RAD tool though. It was native code, not a weird interpreted or jitted app. It could also build to a single exe file. VB struggled with an unwieldy engine for most of its life.
43. memsom ◴[] No.45902431{4}[source]
I like WPF and I code with it regularly, but the drag and drop UI builder was the worst aspect of WPF and generated terrible Xaml that was almost impossible to maintain.
44. PKop ◴[] No.45902598{3}[source]
They are building more language bindings to back QML frontends

https://www.qt.io/qt-bridges

replies(1): >>45905795 #
45. DANmode ◴[] No.45902874[source]
For what value of “safest”?
46. pathartl ◴[] No.45902963{3}[source]
For as much crap as MS gets, the entire ASP.NET Core stack is an oasis.
replies(1): >>45905749 #
47. oaiey ◴[] No.45905749{4}[source]
Most of .NET is.
48. gr4vityWall ◴[] No.45905795{4}[source]
Thanks for sharing. I hope that initiative goes well. And again, integration with whatever solution the language has for hot reloading is a must these days for UI development.