Unread post
by athenian200 » 2024-02-24, 09:12
I guess it depends on your definition of "relevant." If you mean "how is XUL broadly relevant or significant to most people in 2024," then the answer is simply that it's not relevant. The vast majority of the world has gone along with the path carved out by Google and Mozilla and accepted HTML5 and WebExtensions as the replacement for XUL. If you are looking for something with mainstream appeal that will easily attract average developers, you are in the wrong place.
But if you're here asking us this question, I would hope that what you're really asking is "Why is XUL still relevant to us, even though the rest of the world decided they don't care about it anymore?" And that's the only question we are really qualified to answer.
Well, the first reason is the most obvious answer, which is the same reason we give for continuing to support NPAPI plugins. There's an entire wealth of old XUL extensions and themes that have already been created, which would not usable at all anymore without a project like Pale Moon. So in part, there is a desire for preservation. Most old XUL-based Firefox extensions can be made to work with Pale Moon with a minimum of tweaking, and while it's not bug-for-bug compatible with old Firefox, it provides a future path for those old projects that is more realistic than porting to WebExtensions. While some extensions may have been rewritten as WebExtensions, not all of them can be, and even those that can have been left behind in some cases. This is doubly true for entire applications built on XUL as a platform, which would obviously be even harder to adapt than just an extension.
The second answer is that WebExtensions are a lot more locked down and limited than XUL. XUL extensions have a lot more power to hook into the browser and change behavior in big ways than WebExtensions do. If you weren't around back then, think about the difference between Manifest v2 and Manifest v3, but even bigger... the move from XUL to WebExtensions was effectively that, but for a previous generation that was used to even more freedom than what people are angry Google is trying to take from them now. That is to say, the very "security" you're touting as a feature is precisely what we don't like about it. It sacrifices flexibility and power, in favor of trying to provide security and stability in a way that shifts the balance of power away from users and towards browser vendors. A lot of XUL extensions that did make the jump to WebExtensions had to sacrifice features in the process, and we are the minority that was not okay with that and decided to try and preserve the technology that made the previous extensions possible.
Finally, there is the fact that XUL tends to integrate well with desktop environments. On Windows, you have native Win32 widgets. On Linux, you get GTK. On Mac, you get Cocoa. HTML5 tends to be sealed off inside the browser and insulated from the underlying platform in such a way that you can't do that, and tend to be stuck with generic widgets that don't really fit in with your underlying OS, and look more like what you'd see on a smartphone than an average desktop PC. It's part of why Firefox is so ugly these days... the newer HTML5 stuff isn't really capable of providing the older look with a lot of native OS widgets and independent dialog boxes, instead having to offer up interfaces that render inside browser tabs, and which aren't really aligned with the underlying OS at all. Most Electron apps stick out like a sore thumb and look nothing like native applications for a given OS, instead looking more like an interactive website.
It's also worth noting that Pale Moon does support HTML5 as a standard, and that you can even use HTML5 with XUL if you want to...
If you want more evidence that having an XML-based syntax like XUL for writing GUI interfaces in something other than HTML does still have value, then consider that Microsoft still supports WinUI 3 that's based on XAML, and that only works on Windows. XUL does something very similar, but in a cross-platform way. The main difference between WinUI 3 and XUL, is that WinUI 3 is Windows-only and is intended to provide consistency between desktop and mobile environments, while XUL is cross-platform and intended to make applications look native on multiple desktop operating systems.
"The Athenians, however, represent the unity of these opposites; in them, mind or spirit has emerged from the Theban subjectivity without losing itself in the Spartan objectivity of ethical life. With the Athenians, the rights of the State and of the individual found as perfect a union as was possible at all at the level of the Greek spirit." -- Hegel's philosophy of Mind