6 ms·
This was basically Electron before there was Electron. It was hoped that other people would follow the Mozilla Suite's (before Firefox, Mozilla's standard dist
by 876978095789789 4y ago
This was basically Electron before there was Electron.
It was hoped that other people would follow the Mozilla Suite's (before Firefox, Mozilla's standard distro was an application suite containing a browser, email reader, chat client, and HTML editor) example and use JavaScript, XUL, and XPCOM to build cross-platform desktop applications. The last of those, XPCOM (Xross Platform COM), was Mozilla's take on Microsoft's Component Object Model, where you would write lower-level components in C or C++ (using the NSPR, Netscape Portable Runtime) that were callable from JavaScript
Unfortunately, virtually no one outside of Mozilla adopted the XUL/JS/XPCOM stack. One of the few I remember was ActiveState's Komodo IDE.
I still regard it as a huge missed opportunity for Mozilla.
- rwmj 4y agoI tried to adopt it, but it was (a) undocumented with no simple examples, (b) ever-changing, and (c) required you to use the Mozilla build system, even IIRC requiring you to basically build your code as part of the browser tree (I don't recall the exact details on this last point, but it was extremely difficult to use). We ditched it quickly and just wrote a Gtk application instead. A great case for why having a simple "hello world" application with simple instructions for building it goes a long way.
- 876978095789789 4y ago>tried to adopt it, but it was (a) undocumented with no simple examples, (b) ever-changing, and (c) required you to use the Mozilla build system, even IIRC requiring you to basically build your code as part of the browser tree (I don't recall the exact details on this last point, but it was extremely difficult to use). you're right, and I almost mentioned some of this. I developed some extensions in 2007-11, and lack of documentation was definitely a big issue.
- carrja99 4y agoI don't get it? I was excited about XUL back in 2007 (call me silly) and there was a whole resource site dedicated to it, complete with documentation and examples. XUL Plannet (https://web.archive.org/web/20070607174323/http://www.xulplanet.com/#content https://web.archive.org/web/20070607174323/http://www.xulpla...) if I recall it correctly. Back then, I wrote a pretty slick client for some RESTful API (I think it was a photo browser for flickr).
- jacobyoder 4y agore: "undocumented". I bought whatever big oreilly book there was on it - "building XUL apps" or similar (https://www.oreilly.com/library/view/creating-applications-with/9780596000523 https://www.oreilly.com/library/view/creating-applications-w...) it was impossible to follow. Granted, some new-to-me concepts and such in there, but after having respected colleagues try to work through the book with me, and they also gave up, I had to conclude this was not something worth pursuing. I mean no explicit disrespect to the authors; any book is a big effort, and the publisher sometimes overrides decisions or releases something too early. In any event, I vacillate between 'what a big missed opportunity' and 'we all dodged a massive bullet there' - I still can't decide which.
- rwmj 4y agoI also had that book. I think a problem with it was that XUL was moving quite quickly and the book itself was out of date.
- thrashh 4y agoI tried too and had the same experience. XUL always felt like it was just made for Mozilla. It wasn’t but when you don’t provide documentation, stable APIs, and good tooling, that’s the message that you give. As a user, you also know other users will have trouble too and that just tells you that it won’t take off.
- akamaka 4y agoIronically, it was their own success that made the XUL stack die off. Mozilla’s work on making browsers better enabled developers to write ever more complex webapps, and we’ve never looked back.
- Yoric 4y agoThat was by design, actually. A long time ago, Mozilla had a choice between making XUL an open standard or investing in HTML5 and decided very consciously to invest in HTML5, rather than fragmenting the web. Source: I worked at Mozilla around that time.
- mikae1 4y agoIt has been used under the radar till this day. VimFX[1] uses it for keyboard navigation that works. Real keyboard navigation is impossible to implement with WebExtensions. And yes yes, Vimium-FF[2] and all the other extensions that attempt to do this are broken. Here are some things that won't work with WebExtensions… * Vimium-FF does does not respond to input when a page is loading. With VimFX I press the h key to “go back one page” and the l key to “go forward one page” and it works while the page is loading, in Vimium-FF it does not. Imagine, in age of 5 MB web pages, not being able to go back because the page is loading. * Focusing on the address bar is only possible if you open a new tab. With VimFX you press o and you can immediately begin to type your URL in your current tab. In Vimium-FF an HTML/CSS/JS input box opens in your viewport. It can access your bookmarks and history but sorts them in strange ways and it does not understand bookmark keywords. * Opening a new tab disables Vimium-FF. Firefox can be set to show either “Blank Page” or “Firefox Home” when opening a new tab. Both of these options will focus on the address bar and focus can’t be reclaimed using Vimium-FF shortcuts. Actually, it can’t be reclaimed at all. So, effectively, opening a new tab using the Vimium-FF shortcut t disables Vimium-FF. The ugly way around it is to install the New Tab Override add-on and set an HTML document as your new tab URL. * It routinely and unexplainably fails when browsing some pages. XUL and VimFX will be sorely missed. It still works in Waterfox, but who knows for how long… [1] https://github.com/akhodakivskiy/VimFx/ https://github.com/akhodakivskiy/VimFx/ [2] https://addons.mozilla.org/firefox/addon/vimium-ff/ https://addons.mozilla.org/firefox/addon/vimium-ff/
- Izkata 4y agoI think Vimperator was the same. I don't recall blank and loading pages, but it definitely didn't have the "page is not focused" issue all the current ones have (where you have to click on the page and then it starts responding to keys).
- mikae1 4y agoYes, it was the same. Killing XUL killed effectively keyboard navigation. My only hope is Qutebrowser, but I'm not sure who wants to surf the web without access to any extensions these days.
- pjmlp 4y agoThat honour belongs to MSHTML though, unless we count in the cross platform part.
- jeremycarter 4y agoI used to write HTAs all the time. Active Desktop anyone?
- adzm 4y agoOne of the neatest features of MSHTML was how everything was exposed as a classic COM object, which allows you to drive and interact and customize it with anything that can speak COM, and do a bunch of neat things easily. Of course, that certainly prevented some optimizations.
- i386 4y agoI think Songbird was the most consumer facing XUL app that didn’t originate from Mozilla
- pointlessone 4y agoThere was Songbird [1] and Postbox [2] at least at some point was based on Thunderbird. I believe, Zotero [3] still uses XULRunner. I'm sure there were more. [1]: https://en.wikipedia.org/wiki/Songbird_(software) https://en.wikipedia.org/wiki/Songbird_(software) [2]: https://www.postbox-inc.com/ https://www.postbox-inc.com/ [3]: https://www.zotero.org/ https://www.zotero.org/
- dalf 4y agoScenari is based on XULRunner too. * https://scenari.software/en/ https://scenari.software/en/ * Repository: https://source.scenari.software/projects/dev-core/repository https://source.scenari.software/projects/dev-core/repository
- alexvoda 4y agoThere were also, among others: - InstantBird, a multi network instant messenger client - Celtx, a media prepoduction software - Boxee, a HTPC app - Kiwix, an offline Wikipedia reader Many of these either vanished or transitioned to something else (I think both Komodo and Celtx did).
- ripdog 4y agoAnd songbird, a media player.
- WorldMaker 4y ago> Many of these either vanished or transitioned to something else (I think both Komodo and Celtx did). I know Celtx decided to drop the concept of desktop app altogether and went full web-based-only SaaS. The desktop Celtx app was a good screenwriting program that was easily affordable for hobbyists and the pivot to a paid subscription service with less focus on just screenwriting and more focus on other preproduction activities left a small hole for a short while. (These days the Fountain ecosystem seems the best suggestion for the hobbyest screenwriter.)
- donatj 4y ago
- alexvoda 4y agoI agree it there were several missed opportunities. Mozilla Prism was basically PWA before there were PWAs. Mozilla gave up all of the head start if had with regards to embedability and extensibility.
- yrro 4y ago> virtually no one outside of Mozilla adopted the XUL/JS/XPCOM stack In fact those that tried (epiphany AKA the GNOME web browser) gave up on it because Mozilla were so hostile towards third parties actually trying to use xulrunner!
- InTheArena 4y agoGiven the popularity of things like SwiftUI and other declarative models it was way ahead of its time. What killed it wasn’t the technology per se, but rather all of the other things that you have to do to make a technology successful in the open-source community. I have an app that i am writing on SwiftUI. I hate it because it’s so good, and there’s no real way to make it cross platform. Taking a step back on any other technology. Feels like a horrific waste of my time. But not being able to target. Linux is a huge issue.
- regularfry 4y agoIf I want to use the Firefox platform as an Electron alternative today, is that possible? Sounds like it should be.
- Ar-Curunir 4y agoZotero also used (uses?) XUL I think.
- codewiz 4y agoApache also offered a portable runtime called APR. Like NSPR, it had few adopters besides Apache's own web server. Subversion picked APR, along with other poor ideas such as storing the repository in Berkeley DB, basing the network protocol on WebDAV, and running the server as an Apache module (mod_dav_svn). On the other hand, choosing http(s) as transport turned out to be a huge advantage.
- tabtab 4y agoThere is a big need for a state-ful GUI markup standard, for both desktops and http apps, as HTML/CSS/DOM has many gaps and problems (see link), and reinventing them via JS/HTML/CSS/DOM has proven to be a chaos party. However, I didn't find XUL very intuitive. For one, it seemed verbose for common stuff. If there were a rhyme and reason behind its oddball approach, it never clicked with me. https://www.reddit.com/r/CRUDology/comments/10ze9hu/missing_or_defective_gui_idioms_in_htmldom/ https://www.reddit.com/r/CRUDology/comments/10ze9hu/missing_...