Top all-time · #1653
David Teller
Personal blog · yoric.github.io · on HN as Yoricprogrammingsystemsweb
David Teller writes Il y a du thé renversé au bord de la table, by David "Yoric" Teller, a personal blog at yoric.github.io about programming, systems and web. Since 2017, 43 different Hacker News readers have linked it 80 times, most often “Why Did Mozilla Remove XUL Add-Ons?”. It is still writing: the last post was on 2026-03-13, and you can follow it by feed.
Too few sampled comments (25) to say how often HN recommends it.?
Why HN links it
HN readers link David Teller's blog to explain Mozilla's removal of XUL add-ons, which many commenters cite as the reference account. Other posts cover Rust typestates and the JavaScript Binary AST.
- Recommended for · 3 comments
- Called the 'best account' of why XUL add-ons were removed; a 'great if lengthy treatment' of the topic; recommended for detail on typestates.
Summarised by Claude from a sample of 25 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- Why Did Mozilla Remove XUL Add-Ons?14 people · 18 mentions · first linked 2020-08-21
- Typestates in Rust (2018)8 people · 11 mentions · first linked 2018-02-22
- A Few Words About Async5 people · 6 mentions · first linked 2025-07-09
- Units of Measure in Rust, with Refinement Types5 people · 5 mentions · first linked 2020-01-18
- Possibly one step towards named arguments in Rust5 people · 5 mentions · first linked 2020-08-08
- Coding for a Finite World4 people · 5 mentions · first linked 2023-11-01
- About Safety, Security and yes, C++ and Rust3 people · 5 mentions · first linked 2023-02-04
- Towards a JavaScript Binary AST3 people · 3 mentions · first linked 2017-08-04
- Thinkerbell: A minimal scripting language for the SmartHome (post-mortem)3 people · 3 mentions · first linked 2018-03-08
- What would it take to add refinement types to Rust?2 people · 2 mentions · first linked 2024-12-22
What Hacker News says?
An opposing point of view, from somebody at Mozilla who cared about the browser and wrote the code: https://yoric.github.io/post/why-did-mozilla-remove-xul-addo...
Comment linking /post/why-did-mozilla-remove-xul-addons/
on “Firefox usage is down despite Mozilla's top exec pay going up”Submitted Why Did Mozilla Remove XUL Add-Ons? as a story · 399 points
HN discussionThanks for the reply! I'm a big fan of your work. I can only imagine the nightmare of trying to implement two separate XUL <=> HTML/CSS flex/box models in Servo/Rust. For readers that are unaware, there is also a great blog post breaking down some of these points in finer detail [0][1]. I guess my question is — are there replacements planned for any of the legacy yet performant XPCOM interfaces / XUL elements like n…
Comment linking /post/why-did-mozilla-remove-xul-addons/
on “Google Docs will now use canvas based rendering”Submitted Programming languages that blew my mind (2023) as a story · 370 points
HN discussionI believe this is the best account: https://yoric.github.io/post/why-did-mozilla-remove-xul-addo...
Comment linking /post/why-did-mozilla-remove-xul-addons/
on “Firefox Was Always Enough”Submitted Towards a JavaScript Binary AST as a story · 310 points
HN discussionSo when FF reduces customization by changing the extension system they are bad. When they let you customize the UI ad-infinitum through userChrome.css it's because, "its UI is THAT bad.". Right, got it, FF bad. Some of the devs who have worked on the FF extension system over the years both before and after the changes have blogged about why they had to do what they did, https://yoric.github.io/post/why-did-mozilla-r…
Comment linking /post/why-did-mozilla-remove-xul-addons/
on “Mozilla has defeated Microsoft’s default browser protections in Windows”Submitted Typestates in Rust (2018) as a story · 205 points
HN discussionOops. This is why I try not to rush HN comments. This one I did and tried to remove my partial list of complaints about Mozilla and left one element, that’s not the most important one.¹ Mozilla markets Firefox as ‘the only browser made for people, not profit’. But they’ve done the exact opposite time and time again. Virtually the single most prominent UI element, the omnibar, has been sold out to the single largest…
Comment linking /post/why-did-mozilla-remove-xul-addons/
on “Supporting Linux kernel development in Rust”Submitted What would it take to add refinement types to Rust? as a story · 136 points
HN discussion> like XUL depreciation There were specific reasons for that: https://yoric.github.io/post/why-did-mozilla-remove-xul-addo...
Comment linking /post/why-did-mozilla-remove-xul-addons/
on “Supporting Linux kernel development in Rust”Submitted Things to do before your project dies as a story · 96 points
HN discussionI will give you a few examples. My knowledge of Ada is insufficient, so I'll let you tell me whether Ada can solve that without using an external prover (note: being able to use an external prover is great and I haven't seen this done in Rust yet :) – but that's not the topic at hand). 1/ Consider a file `f` (or a socket, etc.). Using the standard library, Rust will statically ensure that, once the file is closed, y…
Comment linking /post/rust-typestate/
on “Implications of Rewriting a Browser Component in Rust”Submitted A Few Words About Async as a story · 89 points
HN discussionGot it, now it makes sense :) I may accidentally have been inspired from your message when I wrote the following piece, yesterday: https://yoric.github.io/post/formal-ai/
Comment linking /post/formal-ai/
on “A messy experiment that changed how I think about AI code analysis”Submitted What would it take to add refinement types to Rust? as a story · 26 points
HN discussionI also hate they had to kill XUL addons, but they had good reasons to do so: https://yoric.github.io/post/why-did-mozilla-remove-xul-addo...
Comment linking /post/why-did-mozilla-remove-xul-addons/
on “Google sets burial date for legacy Chrome Extensions, fears for ad-blockers grow”Submitted (Quite) a Few Words About Async as a story · 5 points
HN discussionI hesitate to reply to this, because it's such a caricature of negativity. It's kind of a rollup of all of the crap that HN comes up with to fling at Mozilla. Everything has some kernel of truth in it, but it's pretty heavily buried. 1) The majority of developers at Mozilla are working on Firefox. Many more than 50. It is true that we have fewer staff than Google has working on Chrome (Mozilla is less than half, I h…
Comment linking /post/why-did-mozilla-remove-xul-addons/
on “What happened to Firefox Send?”Submitted Typestates in Rust as a story · 5 points
HN discussion> If it is so unpopular, how come Firefox hasn’t axed it? "I don't like it and some people I know don't like it" is not evidence for something being unpopular in general. > How come only popular things like advanced extension support gets axed? https://yoric.github.io/post/why-did-mozilla-remove-xul-addo...
Comment linking /post/why-did-mozilla-remove-xul-addons/
on “Firefox 80”Submitted Units of Measure in Rust, with Refinement Types as a story · 4 points
HN discussionOne example that comes to mind is type state [0]. I'm not aware of any other language (including those with support for dependent types, like Agda) where these properties can be checked without external static analysis tools and the problems they bring. [0] https://yoric.github.io/post/rust-typestate/
Comment linking /post/rust-typestate/
on “Rust Ownership Rules”Submitted (Quite) a few words about async as a story · 3 points
HN discussionDefining async is hard. And I'm writing this as one of the many people who designed async in JavaScript. I don't quite agree with the definition in this post: just because it's async doesn't mean that it's correct. You can get all sorts of user-land race conditions with async code, whether it uses `async`/`await` (in languages that need/support it) or not. My latest formulation (and I think that it still needs work)…
Comment linking /post/quite-a-few-words-about-async/
on “Asynchrony is not concurrency”Submitted Go Zero Values as a story · 3 points
HN discussionSo does Firefox, btw. This is addressed here: https://yoric.github.io/post/binary-ast-newsletter-1/#improv...
Comment linking /post/binary-ast-newsletter-1/
on “Towards a JavaScript Binary AST”Submitted Possibly one step towards named arguments in Rust as a story · 3 points
HN discussion> If parsing is so slow, maybe browsers should be caching the parsed representation of javascript sources to speed up page loading, or even better: the bytecode/JIT-generated code. This is addressed in the article: https://yoric.github.io/post/binary-ast-newsletter-1/#improv...
Comment linking /post/binary-ast-newsletter-1/
on “Towards a JavaScript Binary AST”Submitted Rust Typestates as a story · 3 points
HN discussion