Why are there so many plotting backends?

Hello, I’m learning to use Makie, but have also looked at some other packages like GadFly and Plots, but Makie seems my favorite. I’m just wondering why does it have 4 different backends(WGLMakie, GLMakie, and CairoMakie), even though they are very similar, why don’t we just have 1 tool that can do everything.
Are there backends specifically designed for one use case?
Thank you for your clarification.

No need to answer as answer on this post:
What are the biggest differences between Makie.jl and Plots.jl? - #5 by sdanisch from joules(7th) has given a great answer.

OpenGL can make the best 3D bitmaps, but no 2D vector graphics. That’s the split between GLMakie and CairoMakie. GLMakie runs in native windows but can’t be embedded in web contexts, that’s the split between GLMakie and WGLMakie. Why are they not all bundled up in one package? Because then everyone would have to pay compilation costs for all functionality even if they only wanted 2D vector graphics.


Oh, you answered, just wanted to give you a credit since you have answered a question on my previous question. Thank you.

If you don’t mind may I ask you, what is that JavaScript offers that other languages don’t since it seems like you want to use it quite a lot? What am I missing, because as far as I know, Julia is much faster?

It runs natively in browsers, that’s the only thing, but it’s a big thing.

What about with GLMakie, it doesn’t use JavaScript right?

No it doesn’t, only WGLMakie. But only glue code is written in Javascript, not the full logic.