Hacker News new | ask | show | jobs
by _pmf_ 2231 days ago
XUL could have been a tolerable cross platform toolkit. Still not sure how you can blow something like that.
4 comments

> tolerable cross platform toolkit

..for the 90s. There was very little about XUL that would survive today other than its layout model

Ignoring that XUL has a single implementation and for the most part a single application suite actually using it (not 100% true but very close), I'm not sure what there was to blow.

OTOH I remember some custom XUL apps of yesteryear, and they were always pretty nice to use. Does Firefox have any XUL left? I know there have been ideas to rip it out for a very long time.

I remember there was a whole Linux distro written in XUL. Can't remember its name for the life of me, but from memory it was vaguely based on RedHat and was targeting kiosks and internet appliances. I remember setting it up for my parents circa 2001 as it looked fool proof and tamper proof.
> XUL has a single implementation

What's the issue with that? GTK, WPF Qt, Flutter ... all have a single major implementation.

> for the most part a single application suite actually using it

That is now, but it could've been a lot different.

I'm not that familiar with XUL (I'm just old enough to experience it being phased out) but it appears like a great idea to me: XML is not exactly bad for a UI, but XAML is Microsoft-specific (and not exactly great) and HTML is made for documents (leading to problems with worries about semantic tags, lack of layout features ...).

I also quite like how well Firefox integrates with all kinds of platforms. But who knows, maybe that's not in XUL, but specific to FF.

> Does Firefox have any XUL left?

Yes, recently there's been a big rewrite of lots of things as web components, but some XUL leftovers are still there.

Remember XULRunner that was doing Electron stuff about 6-7 years before the first version came out. Mozilla has so many good ideas and such terrible execution.
The problem is that XUL was a) nonstandard and b) pretty badly designed and implemented. (For example: XUL trees relied on Javascript callbacks being called at paint time in horribly unsafe ways; XUL flexbox never integrated well with CSS block layout.) It was mostly hacked together in a hurry to get Netscape 6 out the door (and we know how that went). It was XML-centric and the Web ended up going in a different direction. All in all, it was clear pretty early on that XUL was going to be a dead end. Most of the good parts of XUL were standardized as CSS features (or in a few cases, HTML features).

Given more resources, Mozilla absolutely could have done a better job of transitioning faster from XUL to standards-friendly equivalents, and popularizing the latter in an Electron-like framework. But there was never a time when Mozilla had excess resources floating around, and other things took priority. (Also see my comment above about how architectural churn made it unattractive to support a stable embedding API.) As was pointed out in other comments, the benefits of regular Web market share tend to outweigh the benefits of embedding popularity.

XULRunner was working great.

Unfortunately, there were strategic decisions to basically never maintain it :(

Clearly you never tried the original Firefox for Android, which was XUL-based. It was unusable.

I remember trying it on my Nexus One, back when that phone was hot shit. Constant full-screen checkerboarding.

Mozilla literally had to rewrite Firefox for Android and eliminate XUL from the Android version before it became a usable product.

Maybe they lacked resources and dev mind share ? Javascript of those days wasn't javascript of today ? “Apps” were almost just glorified shortcuts for some.

Now that I think about it Winamp 3 had its own interesting application framework (https://en.wikipedia.org/wiki/Wasabi_(software)).