The main criticism I see as valid here is first point: software distribution is tricky. For macOS and Windows you basically have a model where you can go to a website, download a binary, install it, and it runs.
Most Linux distros won’t jive with that very well. And because every Linux distro uses a different theme and one of a dozen UI libraries/DEs/etc. the downloaded GUI application will look bad because it won’t fit in. Flatpacks and snaps really are a solution that just allows you to not pollute your OS file system (which was never designed with the concept of apps: there are no reasonable namespaces, no easy ways to uninstall, etc.) and to statically compile the app so the next OS update doesn’t break it.
If the distro contains everything you want in its repositories you can use an “App Store” front end to get what you need and the OS will helpfully keep it up to date which is more than you can say for Windows and almost what you can say for macOS. But if you need a third party app you are out of luck: including it in the distro is a process most people won’t want to undertake.
The solution is likely not going to make the nerds happy: something like snaps are the right abstraction for Applications (I am using the capitalized version here to distinguish it from system programs). What will also happen is that some Linux distros will support this kind of solution out of the box and will be the desktop distros. Not every Linux distro will be blessed with being able to run popular apps. Ubuntu is likely on the right track for this and the Unix purists will hate it more every year as it loses the original shared system philosophy and inches closer to what macOS provides.
So the real question is: do you use your Linux distro desktop for the kernel, the package system, the package repositories, or the 1337 cred?
> And because every Linux distro uses a different theme and one of a dozen UI libraries/DEs/etc. the downloaded GUI application will look bad because it won’t fit in.
As opposed to, say, Windows, where there is only one GUI and one theme by one company so everything is perfectly match- wait, no, they have bits and pieces running every GUI they've every invented all the way back to the 90s ( https://www.dvhardware.net/article75347.html , or https://ntdotdev.wordpress.com/2021/02/06/state-of-the-windo... though that's old now ) and also lots of applications using QT or Electron or whatever just like on Linux. So clearly that's not the problem; if it's good enough for the most popular desktop OS, it can't be that bad.
The reality is I can just target winforms on windows, or GDI if I need that.
To open a window there is exactly one way if I want it.
To open a window on Linux do I call into X11 or wayland? Do I need to also provide a DRM layer for incase it needs to be run directly ontop of DRM because BIG_USER_WITH_MONEY wants that.
Should I use QT to get a decent UI library, or GTK, or one of the many other less popular ones.
As a developer that would want to release a GUI app it's not extremely easy to pick for linux. There's no clear guidelines stating X has these features but Y doesn't (winforms vs whatever Microsoft's latest attempt at UI is).
Let's not even get into actually needing to ship a fully cross platform app. C# is blessed on windows, swift on MacOS and C on linux... Which means all the business logic will end up at the very least exporting a C API if I'm not deciding to just bite the bullet and pay QT.
All this ia why you will likely find that someone will develop a Windows release and maybe MacOS if they have a userbase that can justify the development cost. Maybe they are nice and run a test on wine and treat that as a supported platform but I only know of exactly one company that does that outside of maybe some game devs.
And that doesn't even touch anything in the article on why Linux on the desktop won't happen because the 1% of devs that went down this rocky road then also finds ABI breaks.
Not as much anymore. Part of it due to the mess that is the first-party Microsoft's GUI frameworks situation, part of it due to .NET's own APIs and semantics not evolving together with Windows since long time ago.
Funny anecdata: someone* recently made a small app to indicate when (now broken) CTRL+C is actually triggered in Windows. It was initially written in WPF and was exhibiting a weird unmanaged memory leak. Only after porting it to Avalonia (which works everywhere) the issue went away: https://x.com/KooKiz/status/1873726346897330243
So your experience might actually be better with a cross-platform GUI framework!
Mind you, it's still in its "homeland" on Windows - things like access to Registry are part of the standard library, but you may find it performing better on Unix systems otherwise. The IO abstractions certainly do!
* well, not someone but one of the co-authors of Pro .NET Memory Management.
His journey tracks exactly what I've heard from windows development. If you need more than winforms use avalonia because Microsoft cannot create a viable UI toolkit... Which is extremely funny concidering the article we are having a discussion under...
My point however was that compared to C# you are fighting an uphill battle using any other language to do native windows UI development...
Also why I stopped looking pretty early into native on windows and built a webapp...
Well, Uno (AvaloniaUI's competitor) uses WinUI 3 as a back-end on Windows. And NAOT-compiled Avalonia on Windows is practically native anyway. You can use both to build against macOS too if you want to target both major OSes. The offerings have improved significantly over the years.
But yes, I get your point, if you're not familiar with C# (or Dart or Kotlin for that matter), there is motly a one way out in the form of a web app.
> The reality is I can just target winforms on windows, or GDI if I need that.
And the reality is that you can just target GTK on Linux. That you happen to have picked a single option on NT doesn't magically make it different, it just means you already made the decision.
Which version of GTK should I pick since you seem so confident?
And should I target X or Wayland? Which Wayland extensions are ubiquitous enough so that I don't need to manually reimplement things in my app? Should I target pipewire for audio? Pulse?
If I pick a modern stack like Wayland + GTK 4 + pipewire it might not work on older linux distros. Maybe that's fine for my needs, maybe it's not. If I pick X + GTK 3 + pulse I might end up reimplementing half of the desktop manager in my app and need to constantly rewrite my app.
Do I distribute deb/rpm or do I distribute a flatpack/snap... Actually which one.
And don't bring up that GTK abstracts Wayland/X because if I target Wayland I have access to a ton of Wayland extensions which aren't there in X so I do need to make that decision the moment I need to get access to that stuff.
So even just picking GTK I now have a matrix of 9 different configurations. GTK is not the defacto framework on linux. We now need to add QT to the mix and the whole collection of things there.
It seems like you've picked 1 option for Windows and decided that it's perfect, and then looked at every single remotely possible option on Linux, and then pretended that that was somehow a fair comparison. If we use every GUI toolkit that Microsoft has ever offered, and also every sound API they've ever offered, and also every distribution format (do you use the store? .msi? bundle up a Portable App so you don't need an installer?), your matrix will also blow up.
Feel free to look at the other comment thread here for my opinion on windows toolkits.
But to answer ypur question, if I pick winforms + an exe + wasapi for audio it will work on all supported versions of windows and I don't need to compromise on features. It will very likely also work under wine on linux and macos for that matter...
I use KDE Neon because Windows seems almost childish in comparison.
I use KDE Neon because I haven't bought a Mac yet but I don't know if that would be an upgrade. Neon is just superb.
I just can't imagine how anyone could get use to Neon and then use Windows without thinking it is a joke. Especially if you turn off the bells and whistles, everything is instant and instantly responsive.
I barely know any linux commands but installing software has been trivial in various software managers and apt get.
Beyond that everything just works. I think this experience is predicated on not playing games though. I have no idea what the state of games are for Linux, Windows or Mac.
As long as Neon has a critical mass to exist I could absolutely care less if more people use it or not.
The fact that there’s flatpak AND snap (and the distro’s packages) just points to another nail in the coffin — there are just too many standards. If people could at least rally around snap OR flatpak, then we’d have more of a fighting chance.
Windows has been isolating dependencies for a while now too, but for security, since their entire security model was pretty awful before, largely because of the need to support decades-old applications that business customers / governments still rely on. https://support.microsoft.com/en-us/windows/device-protectio...
I have really come around to this way of thinking. Either you use the walled garden that is the distro’s own repos with only the blessed software of specific slightly out of date versions, or you allow arbitrary software but have to isolate it. The former works for some use cases but not for “Linux on the desktop” as most typical users define it.
> And because every Linux distro uses a different theme and one of a dozen UI libraries/DEs/etc. the downloaded GUI application will look bad because it won’t fit in.
Most apps/DEs/etc. use either GTK or Qt. If your application uses GTK or Qt, it will use the user's preferred GTK/Qt theme by default, and fit in with all the other GTK/Qt apps on their system.
Sure, you might get unlucky, and your GTK app won't look great on a KDE desktop where that user doesn't have any other GTK apps and it sticks out. Or vice versa for your Qt app on a GTK-based desktop where the user hasn't picked a matching Qt theme.
But unless, for some reason known only to yourself, you decided to write your app for FLTK, EFL, wx, or some other niche toolkit, your app is going to work like at least one other app on 90% of users systems. And for those users running FLWM, Enlightenment, or some other weird graphical environment, I'm sure they'll cope.
So the world consists of apps like Slack, and Photoshop, and Final Cut Pro and none of them are written in Qt or GTK or any of the other libraries you mention. Any one of those applications has more installs than Debian on a desktop (this is an educated guesstimate).
I have to use Windows to test my apps, and each and every time it just infuriates me with ads and cluster fuck UI, constant notifications of different products, ads in start menu.
It's only consistent on delivering ads, not how the user interface is organized
How you have to tweak registry to remove the ad, but still can't get rid of OneDrives reminder, and then comes the forced updates. Settings are spread in between millions of places, extremely confusing, and twisted.
Search results are random, what the hell?! Can't even run the most used app with confidence, from search. Which is just a absurd.
Managing software, is freaking pain. Everything is everywhere, no proper centralization whatsoever. choco is good, but its cli, with which people have so much issues with.
And I have seen people suffering with bugs that was never solved, I had to setup another file browser just so the client can use his computer. Otherwise, it would take hours to load a simple folder.
The default Editor have no syntax hi lighting whatsoever, so streamlined developers, can't even provide a good editor, that could be compared with the most basic editor coming with gnome.
Windows is just not usable, and in my way, it's only feeding on the legacy, the apps. But Linux becoming much better now
Yeah, with hundreds of contributions to multiple Linux projects including the Linux kernel, GCC, KDE, Wine, etc.
A total hater.
> How you have to tweak registry to remove the ad, but still can't get rid of OneDrives reminder, and then comes the forced updates.
Takes roughly 2 minutes, ok.
> Settings are spread in between millions of places, extremely confusing, and twisted.
Not sure what you mean. In Linux settings are spread all over UI, /etc /home/.config /home/.app etc. etc. etc. And you need to learn shell and console editors to configure stuff.
> Search results are random, what the hell?! Can't even run the most used app with confidence, from search. Which is just a absurd.
Search is not even available for multiple Linux DEs.
> Managing software, is freaking pain. Everything is everywhere, no proper centralization whatsoever. choco is good, but its cli, with which people have so much issues with.
MSI and GPO exist. Most serious applications nowadays have auto-updaters. Others often need no updates.
> Windows is just not usable, and in my way, it's only feeding on the legacy, the apps.
Works near perfectly for 2 billion users.
> But Linux becoming much better now
Barely works for its 40 million users, riddled with bugs/regressions and missing features.
How does one make hundreds of contributions to a number of important projects yet be so woefully ignorant about things as you are? In this discussion, you have claimed that Qt is under the GPL, said that running old software on Linux systems is impossible, claimed Windows runs near perfectly and said that Linux barely works. All of that is provably false. Here is one of many examples of Windows having profound issues where Linux systems do the right thing:
That is far from near perfectly and there are many severe issues that have plagued Windows systems over the years if you take the time to look.
By the way, those auto-updaters you mention waste system resources. Linux systems use package managers that prevent you from having O(n) auto-updaters consuming resources all the time.
> For the purpose of complying with the LGPL (any extant version: v2, v2.1 or v3):
> If you statically link against an LGPLed library, you _must_ also provide your application in _an object_ (not necessarily source) format, so that a user has the opportunity to modify the library and relink the application.
Basically not a single software developer is going to go through these hoops to link with LGPL statically. I don't care about theory crafting. Linux has been there for over 30 years now. Show me the applications that comply with that. I dare you.
Actually I know a single example (!) and that's proprietary NVIDIA drivers. Not an application BTW. You cannot imagine how difficult Linux kernel developers have made life for NVIDIA. Yeah, there's a huge object file to be linked with the kernel. Other examples? None. In Windows you compile a driver and have it work flawlessly for at least a decade.
Sorry, I'm done with you. You're now baselessly and shamelessly accusing me of lying where a simple Google search reveals everything I say is true.
Windows requires none of this crap. What's funny is that Win32 is the only stable Linux API. Not even glibc provides it. What's even more funnier is that DirectX is still a far more richer set of APIs than what Linux provides despite Open Source making it as hard as possible to link to it. And basically no one does.
With most laptops and pre-assembled PCs Windows comes for "free" (included in the cost). If you're a builder, you can get a Windows license for a low as $10 and live happily ever after and use your old applications including I don't know Adobe Photoshop CS2 released ... almost 20 years ago. Still works fine in Windows 11.
You just provided evidence that your remarks were wrong and then claimed it validated your remarks as being right. Rather than accuse you of lying, I would accuse you of having a severe issue in your basic reasoning skills.
Furthermore, your rant is consistent with disorganized thinking, which is often a symptom of schizophrenia. I suggest seeing a psychiatrist.
That is not what I claimed and Nvidia does not statically link to LGPL code as far as I know. If you refer to the Nvidia kernel modules, there is no static linking being done with LGPL code.
I studied introductory psychology in college. I am a decent judge of whether people could benefit from psychiatric help and the more you write, the more convinced I become that you could benefit. Please go for an evaluation. Ask your regular physician for a referral. A psychiatrist likely could help you.
Oh, too bad, You should turn it on, I will remind you in a few days. > 3 days, 5 days
Oh, Sorry, never is NOT an option.
How can that be acceptable!
At least you know where your configuration might be! On Windows, You don't even know where your apps configurations are. Is it in some deep level underground of registry? Or in App Data, local or roaming, or somewhere else?
On Linux, I know user based configs are in `.config`, and system-wide configs are in `/etc`. Some older app may store their config in home, but that's all. How is that difficult?! And everything is just text files and most of the time very nicely commented.
And I probably never needed to touch anything in `/etc` for almost over a year, unless I am messing with something.
> Search is not even available for multiple Linux DEs.
What?! Gnome has excellent application search, Win + one or two key presses I can launch my app, and it's actually consistent. No ads inserted randomly to interrupt my muscle memory.
KDE also have it. In i3 I can use `rofi` to do the same.
> MSI and GPO exist. Most serious applications nowadays have auto-updaters. Others often need no updates.
Oh, lol. How can one excuse the mess of going to each application's website, download binaries and install, and then let each and every app phone home to check for update, and then go through the upgrade dialogs, keeping watch if the app has inserted any search box or toolbar opt-outs? That is just absurd! I can just run `yay -S --noconfirm` and put password, and my update kicks in. Most of the apps are not bothered if I am running their latest version or not.
> Works near perfectly for 2 billion users.
Because, again, it's only feeding on the legacy, and because people pay the Windows Tax, without knowing, or in my country, it was easily available with new purchases for free (Piracy).
IF, people had to install Windows by themselves, I can confidently say, most of the people would stay far, far away from it.
> Barely works for its 40 million users, riddled with bugs/regressions and missing features.
I have been using Linux for 20+ years. I am not riddled by any of those 'bugs' and 'regressions', funny thing is, sometimes there are minor hitches, but again, they are minor.
And if I face a problem, I can communicate with the respected community, and get a solution. For Windows, which is a black box, you never know if you'll get any solution for your inconveniences. Like, getting rid of OneDrive, permanently. Or File explorer getting stuck indefinitely for hours after hour, and there's no solution to it. The client suffered for almost years, and he had no way to reinstall.
Citations needed. Doesn't happen to anyone else but you.
> Oh, too bad, You should turn it on, I will remind you in a few days. > 3 days, 5 days Oh, Sorry, never is NOT an option.
Again 5 minutes of Googling disables it.
> On Windows, You don't even know where your apps configurations are.
In Linux they can be in a dozen of different locations as well. And Gnome even has (had?) a sort of registry.
> What?! Gnome has excellent application search, Win + one or two key presses I can launch my app, and it's actually consistent. No ads inserted randomly to interrupt my muscle memory.
"I use Gnome/KDE and I don't give a damn about all other DEs."
Got it!
> How can one excuse the mess of going to each application's website, download binaries and install, and then let each and every app phone home to check for update, and then go through the upgrade dialogs, keeping watch if the app has inserted any search box or toolbar opt-outs? That is just absurd! I can just run `yay -S --noconfirm` and put password, and my update kicks in. Most of the apps are not bothered if I am running their latest version or not.
Most serious Windows software doesn't need manual updates. Windows and MS Office update themselves. Adobe, Corel and 3dMax products do so as well. Tiny utilities? Who cares? They just work.
It's Linux where people get obsessed with updates because there's no API/ABI compatibility per se and you have no choice. In Windows? Run something from 20 years ago and don't bother.
> Because, again, it's only feeding on the legacy, and because people pay the Windows Tax,
$10 tax. Yeah. I've spent hundreds of hours fixing Linux. No tax at all.
> I am not riddled by any of those 'bugs' and 'regressions', funny thing is, sometimes there are minor hitches, but again, they are minor.
Anecdotal evidence rears its ugly head AGAIN AGAIN AND AGAIN.
"If it works me for Linux is perfect". Never mind people who actually do the dirty work of fixing hundreds of regressions every Linux kernel release.
Nothing ever changes with the Linux cult. "It works for me, I'm a seasoned developer, I know my way around console, Linux must work for everyone".
Even in this discussion this has been repeated ad nauseam.
If you're approach to fix things in Linux like the way you talk about Linux, no wonder you spent hundreds of hours fixing it. Work smarter not harder.
It's neither about if it works for me, it works for everyone, nor it should be, if it doesn't work for me then it doesn't work for everyone.
You're making some points, that most of us Linux users knows to be wrong, and pointing it out.
You're just a hater, with some outdated information about Linux. Obviously Linux is not for everyone, no one is saying it is. But it provides a open, no bullshit, interruption free, environment, that I own, not some corporate doing business with my data. That is alone enough to me, and many other
wxWidgets isn't niche; it's probably the most commonly used third party toolkit to build commercial Linux desktop applications (yes they exist!). I guess Qt licensing is too scary, and GTK too crap.
The “go to a website, download a binary, install it, and it runs” model has significant security issues.
The security issues are twofold. One is that you could easily be tricked into installing malware. Two is that you will never be able to keep up with security updates, leaving yourself vulnerable to being compromised by flaws in network applications.
Making that model of software distribution difficult is a feature, not a bug.
I fully understand that. And yet until you can convince Debian to include a copy of Adobe Photoshop in their repository you will cut off a significant amount of desktop users. How do you propose to solve that problem?
(Yes of course the solution is to fund Gimp until it’s better than Photoshop by so much that the industry switches. It was the solution 20 years ago too. Adobe has run away with this market. Photoshop is but one of many applications desktop users need.)
Most computer users do not use photoshop. For those that do, there are options. One is to use Krita. Another would be to use Wine to run the Windows version of Photoshop:
So I am friends with a bunch of photographers. Some are proponents of open source. Others don’t care. But universally they would rather have a thing that just works and feels right than mess with Wine. You can do almost anything. When your paycheck depends on your software working your patience is likely to be shorter.
I say this as a person who is a huge fan of Linux/Unix on the desktop. I wish I still was able to run it as my daily workhorse like I did for a decade and a half (and that was before the distros actually got good at this). You can make it work. But an average user isn’t interested because there are only downsides and little benefit.
It sounds like you're violently agreeing with the parent.
I worked for an open source company for over a decade. But, although things improved over time, within about a week of joining I went out and bought a MacBook to use (for the first time) because it was more politically acceptable than Windows but I didn't want to deal with either a locked-down corporate Linux distro or an unsupported free Linux.
My neighbor is a photographer. He uses photoshop on MacOS. It works for him. Until Adobe ports Photoshop to Linux, the “must have Photoshop with no issues whatsoever” demographic is better served by MacOS.
Yeah. I was hired to do a job and didn't want something that would really piss people off (Windows). But Macs were increasingly acceptable and that seemed a comfortable middle ground at the time. (And became increasingly so over time and I really grew to like a lot.)
> And yet until you can convince Debian to include a copy of Adobe Photoshop in their repository you will cut off a significant amount of desktop users.
Shouldn't you try to convice Adobe instead? AFAIK, they're already using their bespoke UI and if Sublime can do it, Adobe can sure deploy Photoshop on Linux even if they only want to bless Ubuntu.
What macOS provides is that each app is bundled with all the libraries it needs. That is basically what AppImage is on Linux and it works just as well. Most people find it too wasteful so Flatpak has become more popular. At least Flatpak allows apps to share many of the libraries that they both rely on.
Although Apple has also made a mistake IMO in not having a proper package manager in spite of hiring the writer of Homebrew at one point. probably less important than it used to be but not all roads lead to Apple apps or the apps of a few other companies.
The fundamental thing people need to realize is that package and app are different abstractions. They are not one to one related and they are not orthogonal. Distros deliver some open source apps as packages. But thats not the same as delivering apps.
You need to dial down the hysterics by about 1000%, or alternatively you might want to head back to the YouTube comment section since your vernacular seems more appropriate for it.
The lack of deduplication, or more like avoiding duplication, of what are basically files in some of these implementations is a problem.
But it's not a problem for me. It's also not a problem for most people. And it's not at all a problem next to the dumpster fire of closed source OS ; so ultimately there is no real problem.
Yet, all of that is moot, because someone already solved the problem. But I'll wait until they publish their work to talk about it.
Most Linux distros won’t jive with that very well. And because every Linux distro uses a different theme and one of a dozen UI libraries/DEs/etc. the downloaded GUI application will look bad because it won’t fit in. Flatpacks and snaps really are a solution that just allows you to not pollute your OS file system (which was never designed with the concept of apps: there are no reasonable namespaces, no easy ways to uninstall, etc.) and to statically compile the app so the next OS update doesn’t break it.
If the distro contains everything you want in its repositories you can use an “App Store” front end to get what you need and the OS will helpfully keep it up to date which is more than you can say for Windows and almost what you can say for macOS. But if you need a third party app you are out of luck: including it in the distro is a process most people won’t want to undertake.
The solution is likely not going to make the nerds happy: something like snaps are the right abstraction for Applications (I am using the capitalized version here to distinguish it from system programs). What will also happen is that some Linux distros will support this kind of solution out of the box and will be the desktop distros. Not every Linux distro will be blessed with being able to run popular apps. Ubuntu is likely on the right track for this and the Unix purists will hate it more every year as it loses the original shared system philosophy and inches closer to what macOS provides.
So the real question is: do you use your Linux distro desktop for the kernel, the package system, the package repositories, or the 1337 cred?