If you want a list of pain-points in OpenGL’s API, in priority order, from most important to least:
1: Inability to mix&match vertex and fragment (and soon geometry and other) shaders without having to do a heavy-weight linking operation for each match.
2: Inability to have program state data be separated from the fully-linked program, so that one can have program state data that is instanced between all models that use the same program.
3: Inability to have uniform values that are shared between separate programs, without resorting to build-ins.
4: Framebuffer UNSUPPORTED. That is, we do everything right, and for a reason that the driver won’t even deign to explain, it says no. This makes framebuffers completely unreliable, and therefore unusable.
5: Not being able to attach textures directly to the programs that use them; instead, we have to use this ridiculously circuitous method (which is very unintuitive).
6: Binary blobs for shaders.
And the way stupid thing? All of the above will require higher-end graphics hardware (G70+, R600+), even though older hardware can support it just fine. The ARB entangled added graphics functionality with any API improvements, and that’s not acceptable.
Not unsurprisingly, these are exactly the problems that Longs Peak was going to solve. So it’s not like the ARB doesn’t already have working knowledge of what needs to be fixed. They just never fix it.
glFX is not something that competes for time among the OpenGL working group members as far as I can tell. It’s a separate group.
Yes, but glFX doesn’t control glslang. Changing the definition of “main” would require changing glslang.