@glyph I mean, yes, but should I write my Windows app to use GDI, GDI+, WinForms, WPF, UWP, or whatever they're doing nowadays?
That only works on the corporate side because they throw oodles of money at propping up that hodgepodge of manager-getting-promotion frameworks, but yeah... that doesn't work so well when volunteer labor is fungible. Imitating corporate dysfunction without corporate resources is... suboptimal.
@glyph I mean, yes, right up until an application doesn't work, and then "computers are just like that."
The number of times .NET Framework is the wrong version, or that .NET is missing entirely (Windows ships with .NET Framework, not with .NET, same problem as Windows PowerShell vs PowerShell and for the same reasons), or it's the wrong version of the C++ runtime, or or or.
@glyph I've literally run into cases where a user-facing application fails entirely if Visual Studio is installed on the same computer.
UCRT helps somewhat, but not nearly enough. There's a reason why I not infrequently find that running Windows apps on Linux in separate Wine prefixes is more stable than running them on Windows.
@glyph I can't address macOS since I'm again entirely outside of that world, but IME, no matter how painful Linux dev is, it pales in comparison to Windows dev as soon as one single line of native code enters the chat.
Like, .NET applications that rely exclusively on .NET packages and so forth work *fine*. It's really once you try to interact with native code, appx publishing, or anything other than "run this NuGet command" that things break.
@xgranade @glyph Forgive me if I come off as a Rust fanboy, but Rust is pretty good about making it easy to ship a self-contained native executable on Windows. They just need to make the hybrid CRT (see my other post) the default. I guess I should open an issue and then a PR.
That also means it's easy to use Rust to build a native module in a larger Python or Node.js app. (Not sure about .NET; last time I tried, you were on your own for implementing and consuming a C API via P/Invoke.)
@xgranade although wow hats off to "Unknown", the real breakout star of the war for desktop OS marketshare https://gs.statcounter.com/os-market-share/desktop/worldwide/
are a lot of people running the QNX desktop now, or
@glyph there are problems, but I don't see the redundant efforts of various duplicated components as a core issue.
A lot of Linux is about avoiding monoculture. vim *and* emacs. Snap *and* flatpack.
It's something that emerges naturally from people trying to create a hackable platform.
I think we'd be better off if people shared ideas and infrastructure without denigrating one another's work. We should have both Qt and Gtk so that they can cross pollinate.
@glyph To be clear, I agree with your complaint, as I read it. It's the twofold
- you aren't providing something non-developers can use
- you aren't providing something developers can easily target
Canonical is trying to make Ubuntu the desktop distro. And tons of software ships as .debs, whether or not that's really the best choice.
The wild English garden of Linux can continue to exist, alongside a TiVo-ized, consumer oriented Ubuntu. But if you lose the anarchy, it's not Linux.
@glyph this is one of the problems solved by flatpak. We now have both multiple flatpak platforms and multiple flatpak-based app stores that developers can target while the apps themselves can be used on any Linux desktop. Portals provide a predictable and cross desktop set of APIs and are defined collaboratively in freedesktop.org
RE: https://hachyderm.io/@dalias/116189951658156876
@glyph And I know you're well-meaning, but this kind of wish to tear up the non-monoculture we've so painstakingly nourished over the decades, fighting to preserve consensus standards process and portability, is a big part of:
@matt they're free to read my analysis, think "nah", and forget about it. I'm not particularly influential here, it just bothers me.
but the reason it bothers me is that the cost here is permanent irrelevance. is the point of a free software desktop to have direct, monarchical control of the development process of your compositor or whatever, or is it to provide *users* with a more accessible and open computing experience where they can have agency and control over their applications?
@glyph @matt over time things have moved in the direction you're suggesting. I think systemd and sway are pretty good examples. Systemd in particular implemented a lot of core functionality and stayed committed to their bit long enough almost every distro has continued to shrink their init script footprint.
The gtk/qt thing would probably also be taken care of best by shrinking the space of responsibility those toolkits take up rather than choosing between them.
@glyph so XKCD “15 standards”…. but somehow in reverse? 😂
(I do agree that it’s almost entirely a set of social problems though. It always has been. Indeed the whole “15 standards” problem is basically social problems translated into tech.)
@glyph I don’t necessarily disagree (or 100% agree) but the odds of this seem… small.
Our problems really aren’t technical - they’re social and political. The same problems that keep us from solving other political and social problems: we just can’t seem to put things aside for the common good or organize for such things without personal interests, tribalism, and greed getting in the way.
@glyph (fully recognizing how helpful the following take isnt)
Yes, but also extremely no.
Being able to put forward a coherent, open-source, not-megacorp-owned product that is approachable for everyday use probably only happens if we do something like this.
On the other hand, there is strength and value in decentralization, and also value in specialist and niche distributions (even if some of their value is simply the delight they gave their developers)
I would also bet that a at least half of the stubborn split efforts are not around technical merits or the way they tie into developers egos.