Hacker News new | ask | show | jobs
by M_- 3396 days ago
> the way Thunderbird is designed was that it was a kind-of-fork of Firefox, and too many resources were being wasted just keeping the "fork" up to date from changes to internal Firefox APIs.

No. Thunderbird was built against something that the Mozilla foundation used to tout as the future of building software in general: XUL. And there also was a XULRunner which was to Gecko/Firefox what Electron is to Blink/Chrome: a way to develop native apps using the browser engine as a UI toolkit. The difference with electron is that it was built with more native-apps facilities, like spawning up Wizard dialogs: https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Tu... All written in their XML.

It wasn't developed specifically for Thunderbird. Firefox is also built on top of the same technologies. XULRunner versions were released concurrently with new Firefox versions.

The reason why Thunderbird is a dead is because XUL is dead, or rather, will die soon. They are rewriting everything related to UI in Firefox and also terminating the traditional addon API which.. required XUL, in favor of Chrome's addon API.

Thunderbird is not the only notable app written in XUL beside Firefox. There's also Miro, Songbird, Google's adwords editor ( https://support.google.com/adwords/editor/answer/106323?hl=e... ) and many others.

Most software written in XUL has either been abandoned or going to die, anyway.

1 comments

XUL was the future of old-school, heavy desktop applications. But people generally aren't interested in those anymore. At least HTML and the rest of the web stack work OK on mobile platforms.
> XUL was the future of old-school, heavy desktop applications.

The old-school, heavy desktop apps seem to be so unbelievably light in comparison to current electron-based craziness. But I guess we deserve all the bloat for not being able to come up with sensible common API for desktop development :(

Thunderbird didn't lose to an Electron-based app, it lost to Gmail.
Yes, but we're talking about XUL the platform. That platform was built with the same use-case in mind that Electron has: allowing people to build cross-platform desktop applications with web technologies (html, js etc).

Unfortunately Mozilla failed to execute on that vision, leaving the field open for Electron and friends to emerge. Part of that failure was due to bad technological choices (RDF-XML was terrible), part to the unwieldy Mozilla legacy (the build system was notoriously byzantine) and part to them de-prioritizing anything that Firefox did not need. They had a working general-purpose JS-based UI runtime more than 15 years ago, and still the rise of nodeJS and html-based toolkits passed them by pretty spectacularly - because they had eyes only for Firefox and vanity projects like FFOS.

But lots of people did write apps in XUL. My first IRC client and my first FTP client were both XUL apps. I'm not convinced that Electron today is any more popular than XUL was back then (aside from Atom (or VS Code, based on Atom), I can't name any programs that use Electron).

Additionally, XUL uses web tech, but it is not a standard and was never intended to be a standard (not even an informal specification exists AFAIK), so it's a stretch to say that Mozilla failed to execute on pushing XUL. What would the web gain by pushing it?

> I'm not convinced that Electron today is any more popular than XUL was back then

comex already named two highly popular ones (slack in particular can't be overlooked) but there are more. https://github.com/sindresorhus/awesome-electron

https://electron.atom.io/apps/

Outside of Slack, WhatsApp and Discord (see a pattern? pretty much all new chat apps are using it), I'm not sure if there's any other truly popular (among users) electron app, but among developers, electron definitely is popular and far more often used than XUL was. It's arguably more popular now for new apps than even toolkits like Qt and WxWidgets. People are writing, not one, but multiple competing implementations of things like.. unix terminal emulators in electron. These are not just webapps contained in chrome, they definitely need native access to local APIs. There's a frenzy among devs.

> so it's a stretch to say that Mozilla failed to execute on pushing XUL. What would the web gain by pushing it?

They didn't fail to "push it to the web". They failed to push it to app devs. They were rather enthusiastic at some point:

https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Th...

> Whether you need to migrate an existing web application to the desktop, are looking for a technology that will enable you to easily port your applications to multiple platforms, or want to integrate your own cool features into the browser, XUL warrants serious consideration.

And now they are arguably failing to push it to themselves as they're entirely abandoning it for Firefox and will rewrite the UI and extensions APIs to get rid of XUL.

Slack and Riot.im use Electron; Signal's desktop app uses the soon-to-be-deprecated Chrome app platform and will probably end up on Electron (AFAIK). I refuse to use any of them, having been spoiled by IRC clients that can actually handle large message volumes without flopping over.
VS Code is not based on Atom.
In an amusingly ironic twist though, Electron apps with their Javascript frontends also have byzantine and terrible build processes.
FWIW, and this is not make a point either way, Google Mail downloads about 14 MB, two thirds of which is JS. Most of that can be cached, though. It also uses 120 MB RAM after initial load, more as I click around. Figures as reported by the Firefox dev tools.
Because Google usually does a pretty good job as far as performance is concerned.

ie: They have a simple 404 page instead of some novelty page with funny text and a random webm playing in the background

Maybe different Google departments have different opinions about such things. Chrome's error pages include a game http://www.omgchrome.com/chrome-easter-egg-trex-game-offline
But performance-wise, the error pages still load instantly and don't waste CPU when the game isn't activated, so who cares?

...though I don't know why anyone would care about slow 404 pages either, given that they should be rarely visited and quickly left.

I know this might sound insane to everyone, just hear me out.

I always thought Mozilla should have built a Linux distribution (or rather, forked debian like everyone else ha!) and implemented their Firefox UI kit (Gecko right? I'm not as familiar.) and made a Front end for it that was smooth and easy to build apps for using web technologies, but could still run native *nix apps via debion packages.

I believe that now as much as I did when I was younger, but the itme for desktop OSs may have passed.

It would have been a hit I think. Well designed, well maintained, well documented. At least in my starry eyed version of this universe where unicorns exist

They tried that for mobile devices and failed. I doubt they'd have done any better on the desktop.
in my opinion, the last iteration of FFOS looked pretty good. Granted, apps were not there, no shocker. I thought they did a great job with it design wise though, and it had some neat features. I think if it was done 5 years ago it'd been a game changer for linux on the desktop.
I think you might be describing something fairly close to ChromeOS.
Yeah, except ChromeOS is shipped with ubuntu 15.04 i think, and its heavily modified, and you don't have regular access to the greater file system, and the front end isn't really rendered out from blink/chrome, i don't believe.
What definition of heavy are you using here? Because despite often being 'thin clients', most of the programs I run that embed HTML engines for the UI end up being stupendously resource-intensive compared to their native equivalents.
I think that your parent commentator is noting that people pretty much just stopped writing desktop apps altogether, at least relative to webapps. In my childhood I downloaded desktop apps left and right for everything, but nowadays I only download apps in two categories: developer tools and Steam games. E.g. something like http://hirnsohle.de/test/fractalLab/ would have invariably been a desktop app only a few years ago.