AvaloniaUI/Uno are both third party open source GUIs ... not by Microsoft. The Microsoft provided MAUI does NOT run on Linux (though it runs on ALL others ... android, ios, and even Mac). Not squinting on this omission and not ignoring it, sorry!
Agree on the "Algorithms are dependent on what an OS crypto provider supports" bit.
Limited commercial use 1 to 3 devs should also be freek as projects this small usually are just starting and aren't profitable yet. Beyond that, yes , it should be sustainable for the team to pay for commercial license.
This is like hiring construction workers, but not having money to buy them a hammer and nails. This ridiculous notion that software developers need to use free tools and neither they or their employer can't pay for any is very odd to me.
I'm not sure how much money do devs in developing countries make, but I have a all-products pack license from JetBrains, and I pay around 20 EUR per month, which is equivalent to like 2 starbucks coffees.
No. If you have money to pay for developers, you also have money to pay for tools. Especially since software licenses are going to be a tiny fraction of what the developers cost.
They also offer a personal license, which I would say should be affordable to any devs if they were getting money. Rider is $149/year for the first year, $119 for second, and $89/year for the third year onward.
That calculation does not hold for developing countries. Rider's license fee is huge in countries with per capita GDP is a small fraction of USA's per capita GDP.
> Most of the people in developing countries don't need IDEs
Most people in general, I would say. I haven’t tried JetBrains editors in a while, and the “developing country” definition is very unclear in my opinion (and also part of why I roll my eyes at the “what about developing countries?” argument sometimes), but I do think the yearly price looks good for WebStorm at least, as someone living in Colombia.
For reference, at the time of writing, the standard Netflix plan costs 26,900 COP a month, which ends up being 322,800 COP yearly. Meanwhile, WebStorm’s first year comes at 298,541.10 COP post USD -> COP conversion - it isn’t an insignificant sum, but if it offers significant added value, I think it’s a fair price, certainly better than the Netflix pricing. The second year is reduced to 237,967.54 COP, and the third to 177,393.99 COP - that last one is even less than what you’d pay for the Netflix basic plan over a year (202,800 COP).
Yes, on Linux it behaves similar to Flutter and draws directly to a Skia Canvas.
It used to have a dependency on GTK but no more since the 5.2 release.
There's just no notion of "native controls" that you can embed in an Uno Linux app like you could have if you wanted to embed a 3rd party native UIKit control on iOS.
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.
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.
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.
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.
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.
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.
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
Everything dotnet is doing for cross-platform is great and better than alternatives --- except one HUGE issue: There is no official GUI on Linux.
Linux's exclusion from MAUI (while 25% of world's developers' primary dev machine is a Linux system according to Stack overflow survery) creates a huge hurdle for those developing on Linux to build any cross platform GUI app with dotnet.
If I , as a developer developing a windows/mac/mobile app with official dotnet, am using Linux for development , I cannot create a GUI app.
Hey dotnet folks! -- let me put a god damn button on the screen!
Sincerely
A Linux dev
[Don't get at me with Avalonia/Uno etc. I am talking about "official" GUI. A graphical user interface is not a specialized domain, or some niche to be left for others to fill. It is a core element of a user facing app. ]
There's no "official GUI" (w/e that means) on Linux for anything though, so it makes sense.
Avalonia exists, and from the looks of it is better than all the crap MS has put out over the years (even on Windows, don't get me started on WPF shutters) so not using it because its not "official" is silly.
I never said I don't use or don't want to use Avalonia. The issue is not the quality of Avalonia/Uno. They are wonderful. The issue is not availability of third-party toolkits -- they are there. The core issue is being psychologically assured that the first party is interested in supporting my platform with its programming languages and libraries. If MS can support Mac, ios, and Android -- what exactly prevented it from supporting Linux ?? This conspicuous lack of support in the presence of support for other non-MS platforms is the most bothersome bit.
And supporting Linux can't be too expensive either. If Avalonia and Uno being open source with no backing of a huge corporation can do it in their stride -- then Microsoft sure as hell can do it. Again , this time economically --- why exactly is MS supporting Mac, ios, and Android -- not Linux ???.
I hope you see my point. The absence of MS support is not bothersome technologically. It is problematic attitude wise. If they are fine with not doing GUI on linux (while doing it on all the other platforms) --- what other features/enhancements they will be willing to hold back from Linux ??
One way to look at it is MAUI isn't more official than Avalonia or Uno, it just happens to be primarily driven by dedicated team from Microsoft. However, it does not mean that Avalonia or Uno are inferior due to just this fact.
EF Core in that regard is very similar - you can easily use Dapper instead because it builds on the same primitives from System.Data. Neither MAUI nor other UI frameworks have access to internals of CoreLib or adjacent packages living in dotnet/runtime.
In fact, having multiple libraries solving a particular task is a sign of healthy ecosystem, too much centralization more often than not tends to be harmful.
The issue is not the quality of Avalonia/Uno. They are wonderful. The issue is not availability of third-party toolkits -- they are there. The core issue is being psychologically assured that the first party is interested in supporting my platform with its programming languages and libraries. If MS can support Mac, ios, and Android -- what exactly prevented it from supporting Linux ?? This conspicuous lack of support in the presence of support for other non-MS platforms is the most bothersome bit. And supporting Linux can't be too expensive either. If Avalonia and Uno being open source with no backing of a huge corporation can do it in their stride -- then Microsoft sure as hell can do it. Again , this time economically --- why exactly is MS supporting Mac, ios, and Android -- not Linux ???. I hope you see my point. The absence of MS support is not bothersome technologically. It is problematic attitude wise. If they are fine with not doing GUI on linux (while doing it on all the other platforms) --- what other features/enhancements they will be willing to hold back from Linux ??
reply
The reason why Avalonia and Uno have support for Linux but not MAUI is purely technical one - Avalonia and Uno draw their controls by themselves, like with Skia(sharp). MAUI tries to be a successor to Xamarin and uses native controls drawn by the host instead. Naturally, this has always been a problem on Linux and supporting it is non trivial (what do you choose? Attempt to make it work with Qt, GTK, something else entirely? what about X.Org vs Wayland?). Realistically, supporting mobile platforms first alongside Windows and macOS is much more important and is a far better investment of effort (how many users are there with desktops/laptops on Linux vs macOS/Windows) and there are only so many people working on this. It is perfectly fine for GUI frameworks to take different approaches and pursue different goals, where Linux systems are much better served by Avalonia.