Top
Best
New

Posted by CharlesW 11/1/2025

Intent to Deprecate and Remove XSLT(groups.google.com)
87 points | 149 commentspage 2
codedokode 11/1/2025|
I want browsers to be minimal and simple. For example, canvas should only provide a framebuffer to draw into, and all the rest can be done with WASM libraries. Web Audio should only provide an audio thread, and things like low-pass filters can be implemented in WASM. WebRTC should only provide UDP support, etc.

This would make creating competition easier and reduce attack surface. As a nice side effect, it would become impossible to use canvas or web audio for fingerprinting.

bartread 11/1/2025||
Dude… no.

Firstly, it puts a huge burden of non-value-adding work onto developers and the organisations they work for.

Secondly it would lead to even higher frequency and prevalence of people inventing their own half-arsed ways of doing things that used to be in the box. Nobody would think about standard usability affordances, accessibility, etc.

Thirdly, it would simply move the attack surface into an emergent library ecosystem without really solving anything.

Fourthly, it would increase website payloads even further. Developers have historically been awful at using bandwidth efficiently (still a concern in many scenarios due to connectivity limitations and costs), and we don’t need to offer more opportunities for them to demonstrate how terrible and undisciplined they are at it.

Fifthly, not everyone wants or needs (or should!) to learn web assembly in the same way that not everyone wants or needs to learn x86/64 assembly, ARM assembly, C or Rust.

Sixthly, it would lead to a huge amount of retooling and rewriting which, yes, to some extent would happen anyway because, apparently, we all love endless churn masquerading as progress, but it would be considerably worse.

The web would become significantly buggier and more unusable as a result of all of the above.

dwb 11/1/2025|||
That sounds awful! For a start, accessibility would get even worse than it already is. The browser may become more “minimal” and “simple” from the point of view of the implementer, but certainly not the user.
chrismorgan 11/1/2025|||
On the off chance that by “canvas” you didn’t mean all rendering (which is a terrible idea for reasons addressed by others) but only what is currently covered by <canvas>—the frame buffer approach is incompatible with GPU acceleration, so 3D would basically not be possible. For better or for worse, WebGL is pretty close to the minimum acceptable for that kind of functionality.
sureglymop 11/1/2025|||
I think it sounds good to have that "on top" of what's already there. So that those who want to can use a lower level abstraction.
massifist 11/1/2025||
I like the idea but you could take it a step further and have just a core virtual machine that you could attach virtual (input/output) devices to. So then the canvas and audio would just be virtual devices that met some specification. Or say for example, you just want to listen to an audio playlist, you could attach an audio device, a keyboard and a terminal device (for feedback). A canvas device wouldn't necessarily be required (if there was no use for one). And it would be up to the user to attach the devices required by an application, or at least the user would have direct control.

TLDR: QEMU but much simpler and only WASM need be supported.

codedokode 11/1/2025||
Yes, but it also would be good to have some dumbed down version of HTML/DOM/CSS, so that the text can be copied and accessibility works.
thro1 11/1/2025||
Gecko currently has much deeper integration of the XSLT engine with the browser internals: The XSLT engine operates on the browser DOM implementation. WebKit and Chromium integrate with libxslt in a way that's inherently bad for performance ( https://github.com/whatwg/html/issues/11578#issuecomment-321... )

Just Firefox XSLT is faster, better, cheaper than Google's (and JS), same, old Firefox extensions were to powerful Google could compete with Firefox (or block adblocks).

JS is very needed for ads, tracking and other strings attaching - and XSLT is not for that - but would make JS mostly obsolete in many cases.. [..]

Google pay Mozilla to criple Firefox. It's money from ads, to not let the web be free. Right now, how much $ and CPU power a JS engine could cost, for that, is irrelevant - except for the final user [paying for that saving on costs by some big company - or having to redo NOW in less efficient way something that still works well so far regardless of decades passed] !

https://news.ycombinator.com/item?id=44994459 - with answering lame questions of a developer not having a clue what is all about.

(Just.. live and let others live too ? Thx.)

Moreover.. Content First - and browser is a secondary thing to existing content (Chrome came after) - not the (double) opposite (primary, for ads n tracking instead)

- isn't Google as a public servant - so part of their job is to fix their bugs - but not in the position to decide to kill someone else existing content or solution - for not displaying ads so easy?

thro1 11/1/2025||
Moreover: there is no JS solution being so stable and for so long as that standard: "25 year old version of XSLT".

Can be "made with JS" doesn't mean that by chance it would be in any bit better than long proved and still used solution - not a one of many crippled, always changing, excluding imitations of it - for example like that one: https://news.ycombinator.com/item?id=45183624 (no caching, not instant, transparent or othogonal etc.).

With XSLT removed, Chrome can not claim to be a standard internet browser neither.

There is nothing wrong with XSLT - it's just Google not wanting to fix few bugs since decades - but others have to follow, nothing changes.

Actually.. I can't care less about Chrome - if others will not follow neither allow Google to reach such position claiming to be able to dastandardize working and used solutions.

harrisi 11/1/2025||
For what it's worth, there does not exist a "standard internet browser," assuming that means an application that adheres to all relevant web standards. No piece of software exists (at least not publicly) that even adheres to the entirety of any single relevant web standard (e.g. HTML, CSS, ECMAScript, etc.), as far as I know.

Maybe for a few small things like JSON, I suppose, but not for any of the major standards. And not just as in they implement a superset of the standards - every browser implements a distinct set of each standard that is neither a subset nor a superset.

I'm still not a fan of Chrome nor the effect it has on the web.

thro1 11/1/2025||
The standard so far is to respect existing standards still in use, peoples effort and work done already - but not to outsource bug fixing costs by forcing any of that to be redone or lost.
thro1 11/1/2025||
- as in Europe, I don't see neither how taxpayers money or users time (if still alive) could be forcibly used to cover the costs of some far away corporation savings (on bug fixing) and profit, downgrading then a lot into more costly, less maintainable, not standard solutions.

But I see less of that money but much better used - to support any of open, independent, not for profit, conforming to standards browsers instead - in not following what a big corporation says and want.

29athrowaway 11/1/2025||
XSLT is amazing.
Kimitri 11/1/2025|
It really is. It's extremely handy albeit a bit niche these days.
29athrowaway 11/2/2025||
XSLT is very useful to transform nested structures.

The input has to be XML, but you can get there via YAML, JSON, tree-sitter etc. And the output doesn't have to be XML.

xsltproc is usually easy to install.

icameron 11/1/2025||
During my college undergrad CS series we had a practicum with a real engineer from HP or somewhere. Our project was to help the world find and download printer drivers over the web. The project was to make a Java web service send XML that conformed to a schema, which would be turned into a webpage by a transform aka XSLT. It seemed convoluted at the time. The teacher showed us “the how” but I guess “the why” was left as an exercise for the reader. I never understood the big picture- at the time it seemed rather complex. But now I realize this probably would have scaled quite well on turn of the century hardware.
swiftcoder 11/1/2025||
Makes sense, but I'll have to update my rss feed (which currently uses XSLT to display in browsers that don't have native RSS capabilities - i.e. basically all modern browsers)
postepowanieadm 11/1/2025||
In Europe some countries still use XML as the official data format and XSLT as the official code format.
rhdunn 11/1/2025||
It's used a lot in the publishing industry, which stores the content in JATS and other similar XML markup. It's also used by the US government for bills, etc.

Typically, these use XSLT on the backend to transform the content to HTML to be sent to the web browser.

And there's RSS which was mentioned in the previous discussions. Podcasts will typically have HTML renderings of that data, but if you opened the RSS in a web browser you could use XSLT to provide a user-friendly view of the content.

XSLT can also be used to provide fallback rendering for unsupported content, such as converting MathML to HTML for browsers without support. -- Chrome as of 109 supports MathML Core, but doesn't support the content markup (used for more semantic markup of common constructs like N-ary sum, integrals, etc.), so would still need something like XSLT to convert that markup to the presentation markup supported by Chrome.

0x000xca0xfe 11/1/2025||
Not just "still use", at least here in Germany our brand new e-invoicing system (mandatory since this year) is built on XML.

And XSL is used to validate invoice documents.

ExoticPearTree 11/1/2025||
It's not only in Germany, it's an EU mandated thing to have e-invoicing to prevent fraud and whatever other things the bureaucrats in Brussels felt like it would be solved with technology.

And yes, sadly the powers that be decided that this crap needs to be XML. Because why not, why use a modern standard...

Devasta 11/1/2025||
What about XML isn't modern? It's a far more capable format than JSON or anything else you can devise.
ExoticPearTree 11/1/2025||
How about we agree to disagree? XML has no place in the modern world. If it wouldn't be for the likes of Microsoft, IBM, Oracle and a few others that keep using it and pushing it, it would have sailed into the sunset a long time ago.
lolive 11/1/2025||
JSON and XML are basically syntactic variant of the same data storage strategy [:tree of attributes and children]. [1]

Where XSLT shines, and JavaScript currently has no equivalent afaik, is in transforming a tree into another one, rule-based.

The lack of support of XSLT 2.0 in browsers is a major issue, as it includes many solutions to problems absolutely not covered by XSLT 1.0.

[1]: xml2dict/dict2xml is an implementation of exactly this duality.

sam_lowry_ 11/2/2025||
XML allows multiple trees in one file via namespaces, this is a big difference
ExoticPearTree 11/1/2025||
> The lack of support of XSLT 2.0 in browsers is a major issue,

... for who?

lolive 11/1/2025|||
People stuck with XSLT 1.0 [or worse, javascript] as your tree transformation engine
indolering 11/2/2025||
Yeah, just because browser vendors put XML tech in maintenance mode doesn't mean that it wouldn't be nice to have.

We might see real world usage of these technologies had browser vendors not frozen them out.

sam_lowry_ 11/2/2025|||
XSLT 2.0 is a failed language, only Michael Kay could implement it in the paid version of Saxon and that because he was the editor if the spec, so he did as he pleased.
elric 11/1/2025|
I'm an XSLT fanboy. I've used it for all kinds of things, from generating docs to generating entire UIs from an XML declaration. But never in all my years have I used it in a browser. I didn't even know that was an option.
rhdunn 11/1/2025|
Part of the issue is that XSLT in the browser is stuck at version 1.0 so lacks a lot of the improvements added in 2.0 and later that make working with it a lot nicer.
sam_lowry_ 11/2/2025||
XSLT 2.0 is a failed spec, there is only one implementation by Michael Kay in the paid version of Saxon.

And he was also the spec editor, his incentive was to get lucrative contracts from BigTech, not make the world a better place.

rhdunn 11/2/2025||
XSLT 2.0 is not a failed spec. From [1] RaptorXML (XSLT 3.0) and xjslt (XSLT 2.0) are listed as implementing that spec. MarkLogic also provides XSLT 2.0 support.

Saxon has a free HE version [2] that has the source code available and implements XSLT 2.0 REC, 3.0 REC, and 4.0 ED at the baseline conformance. The paid version implements optional features and vendor-specific extensions [3].

Even though Michael Kay is the editor of the spec, several others are involved in the standardization of XSLT, XPath, and XQuery, including members from BaseX and eXist-db which provide XQuery implementations. And as XPath is a subset of XSLT and XQuery there's a lot of overlap there, and features come from many people, not just Michael Kay.

[1] https://en.wikipedia.org/wiki/XSLT#Processor_implementations

[2] https://www.saxonica.com/download/java.xml

[3] https://www.saxonica.com/products/products.xml

More comments...