> They could not drop core functionality from X11; somewhere, there is a client that expects it and dropping it would break it.
Of course they can. Dropping it from new versions won't wipe old servers off the planet, and as we can see from the existence of Wayland, the OSS world is very much prepared ditch far more backwards compatibility than just breaking an occasional obsolete client.
If anything, it's a far easier transition because shimming some Xlib calls is far easier than migrating applications to a whole different display model.
> That's exactly the reason why everything is an extension is Wayland: so the client is forced to enumerate, what features are available and adjust its behavior when something is not. It is exactly this, that allows Wayland to drop features, once they became obsolete. It is the lesson from not being able to drop core X11 primitives.
That doesn't work that way once something becomes reasonably ubiquitous. Experience from X is that people will expect a given extension to be there (heck, most of my own X software will categorically not work on an X server without XRender, so if that extension is ever dropped from X, my software will stop working and need to be updated - that's a tradeoff I'm perfectly fine with), not have older alternatives that make sense, and obviously not be able to predict future alternatives that do not yet exist.
In other words: You'll still need to either support those APIs, or deprecate them and update the clients. Doesn't matter if they're part of the core or extensions.
Of course they can. Dropping it from new versions won't wipe old servers off the planet, and as we can see from the existence of Wayland, the OSS world is very much prepared ditch far more backwards compatibility than just breaking an occasional obsolete client.
If anything, it's a far easier transition because shimming some Xlib calls is far easier than migrating applications to a whole different display model.
> That's exactly the reason why everything is an extension is Wayland: so the client is forced to enumerate, what features are available and adjust its behavior when something is not. It is exactly this, that allows Wayland to drop features, once they became obsolete. It is the lesson from not being able to drop core X11 primitives.
That doesn't work that way once something becomes reasonably ubiquitous. Experience from X is that people will expect a given extension to be there (heck, most of my own X software will categorically not work on an X server without XRender, so if that extension is ever dropped from X, my software will stop working and need to be updated - that's a tradeoff I'm perfectly fine with), not have older alternatives that make sense, and obviously not be able to predict future alternatives that do not yet exist.
In other words: You'll still need to either support those APIs, or deprecate them and update the clients. Doesn't matter if they're part of the core or extensions.