That doesn’t matter at all, I’m talking about investment. Why continue to develop the older API while a new one is already underway? Sorry I just think it’s a waste of time and resources. What is WebGL 2 going to give us that WebGPU isn’t promising to deliver?
Something that works now and will continue to work for years without changing any code.
To turn this on its head, if I'm creating a new product now, why invest time into an API where by the time the product would be ready with WebGL, instead I chose WebGPU, so now have the risks:
- The API is still years away from mainstream.
- Doesn't solve anything for my use case that wouldn't be solved with WebGL.
- Is too buggy to use on most configurations.
- Isn't supported by X hardware or Y OS.
- Has security issues that make browsers disable it for years.
- The code has to be regularly updated/maintained/fixed when browsers update.
- Performance could be lower for low end systems.
- Even if everything worked, it's a lot more work to do everything (e.g. VULKAN).
- To beat webGL, you have to optimise specifically for mobile/desktop/amd/nvidia/etc
- The documentation is poor.
- It's impossible to hire an expert in webGPU.
- It's very expensive to test every combination of GPU/OS/driver so you have no confidence it is working correctly.
Most rendering code should abstract to many APIs anyway, so not starting with a webgl version would be quite insane.
I'm not talking about today though, my concern is more around future investment. The web has to be backwards compatible, meaning that years from now, browser vendors will be tasked with supporting WebGL 1, WebGL 2, and WebGPU. Given that browsers are already the most complex programs in the world, is the benefit of WebGL 2 so great that it's worth it?
Luckily that cost is fairly small, due to how bad GL drivers were on Windows ages ago Google initiated the LibAngle project that abstracted the GLES parts needed for WebGL(1&2) onto DirectX.
With much of the heavy lifting done for API support the code was then adopted as an abstraction for other low-level APIs, so iirc the recent WebGL 2 implementation that now bought us to this stage is also dependent on a fork of that lib that targets Metal. (And yes, it brings us a monoculture implementation but I'd rather have that than dozens of broken mainline OpenGL drivers from Intel, AMD and Nvidia).
They are not mutually exclusive, and organization can invest in developing both. WebGL also has the advantage that it’s immediately useful (lots of sites already using it).