Hacker News new | ask | show | jobs
by KacharKhan 866 days ago
If a platform completely ignores Linux as the first-class target for its GUI library (MAUI) -- how can we trust it with anything else it does on Linux. We must never forget that MAUI is targeting Windows, MacOS, Android, and Ios --- but not Linux. It's not like you can't do Linux -- if humble FOSS projects like Avalonia and Uno can do it -- a tech giant can sure as hell do it. But no, they specifically not covered Linux in MAUI. Is cross platform client a big deal ? ... maybe , maybe not .. but that's not the issue. The issue is discrimination and the terrible terrible message it sends to the developer.
5 comments

The sheer fact that this is still a top comment illustrates the overarching issue with the community and complete lack of understanding how OSS ecosystems work (or the amount of "people" who would like to see .NET fail).
I remember a thread on HN when Mono was first a thing. It was highly negative. Despite something like Mono being exactly what Linux desktop's needed. A way to easily slap together GUI apps.
While I agree, one even commented as much on some of the Relevant GitHub issue threads... .Ner is a pretty good platform for web and backend work.

I prefer Rust or even Node/TypeScript myself, but have worked a lot in the .Net space since pre release in 2002.

Having worked on node and .NET on Linux professionally I vastly prefer .NET

JavaScript and typescript exist in a bizarre netherworld of not really being type safe and not really being type free. It makes for some truly strange code bases that reflect whatever is cool but none of it aged well.

Npm is hideous. Dreadful. It’s a daily struggle especially if you have to deal with private repos (azure specifically).

C# is just a better language. Better, more expressive collections and a type system that has consistency. EntityFramework for databases is fantastic, node has nothing remotely as good.

.NET and Nuget are a breeze. I would go as far as saying Linux is the superior experience when programming .NET since you spend a lot of time with the CLI and power shell sucks.

I like the Deno runtime approach more than Node, but that's another issue. I find JS/TS is pretty great for ETL and input data validation and transformation where the flexibility of the language and io streams lend themselves to that work. Not to mention when you need a slightly different script.

I also like the expressiveness and productivity I get out of it. Though many of my issues with C# comes down to the culture in practice more than the language.

C# is better when you have more firm constraints and the coffee will be longer lived and worth the complexity. It's just the difference between a script and a full program/application with all that involved in the Net space.

My point was mostly that. Net is still pretty good for things in Linux even without a blessed, official desktop UI framework.

What is wrong with PowerShell core?

*PS core is the one based on the new versions of dotnet.

I am old - my first work experience was on Unix machines in the late eighties and I just find Linux a lot easier to work with if you're spending a lot of time with a CLI. You have more default tools at your disposal (bash, make, sed/awk/grep etc) which all have to be installed manually on a Windows machine.

Powershell tries to be everything and ends up being too much, badly implemented. I have dabbled in it for Windows/Microsoft specific things (Outlook manipulation) but while you can write a PS script that tries to do something like delete all yesterdays mail with a particular characteristic, in practice it often doesn't work due to the impedence mismatch between COM and PS. I like the idea, I really do, but it's just not as straight up practical as the Unix tools.

Yes, if you don't use dotnet and is already used to Unix tooling then it is a tough sell, but otherwise the integration with dotnet is quite good.
You can build a web server and do ETL with PowerShell?

If it's a simple script, bash is in the box... If it's more complex, I'll reach for a more rich scripting platform.

I mean, the entire dotnet is available, you can do anything in PS though obviously that is not always the smart call.

It has been very useful to me to use as a REPL on my own C# libraries, I can instantiate and use types from these libraries and interface with the file system and network on an ad hoc basis.

That is the problem nowadays, it feels like ASP.NET/Azure is driving .NET roadmap.
No activity for over two years.
Windows calculator on Linux, using Uno https://github.com/unoplatform/calculator
Interesting logic.

What about Java or Go? You could say they do ignore Linux as well...on the grounds of not having nice to use first-party crossplat GUI framework that can target Linux. Where are the OracleUI or GoogleGoUI?

AWT and Swing were there since the early days, and despite all its warts, it was Oracle that made JavaFX usable, a scripting toy in Sun days before the company went down, torpedoed by Google, which wasn't even there for the acquisition party.

JetBrains IDEs and Netbeans are powered by Swing.

Well Java has Swing that, iirc, works on all platforms OpenJDK runs on and Go doesn't have a sanctioned GUI in it's stdlib.
Exactly! Somehow no one puts this against Go or a myriad of other languages where you are expected to use bindings to Qt or Gtk and yet for C# it's suddenly "akchually no support for Linux in MAUI, therefore it is second-class citizen". There are Avalonia, Uno and many other small-ish frameworks which support Linux, there are Qt and Gtk bindings, or you could go the MonoGame, Unity or Godot route instead.

Beats me how this kind of thinking works, always excuses instead of evaluating the technology on its merits and the experience it offers. Sometimes I feel like it's the community that actually hinders the transition towards more decentralized FOSS-style ecosystem (on this website it is more likely to be simply bad faith arguments).

p.s.: I'm daily driving Ghidra currently which is built with Java Swing and it looks like straight out of 90s in a bad way haha

I _think_ those line of responses mainly come from the belief that because .NET versions since Core 1.0 has gone cross-platform that there is some expectation that the first-party GUI solutions would apply on platforms that have official ports of the runtime; and that since Microsoft is a behemoth then surely they could do it.

On a tangent and I also don't know how others would view this, but I personally think that trivial desktop applications have or will have moved on to solutions like (but not exactly server-sided) Phoenix Liveview or Blazor Server. No real need to bother with multi-platform solutions when there's already one the end user uses daily and is battle tested. The case of applications needing the usage of a GPU likes games aside that is.

> p.s.: I'm daily driving Ghidra currently which is built with Java Swing and it looks like straight out of 90s in a bad way haha

I don't know, I have a fondness of that old ass style of GUI lol