Try to simplify syntax as much as possible.
Do we really need to get thrown in our faces inner details of OpenGL when writing user programs?
For example use glEnable/glDisable where ever possible. Why do I need to know that GL_VERTEX_ARRAY is client state and use glEnableClientState, instead of only glEnable(GL_VERTEX_ARRAY)? (just as a quick illustration).
There are other places as well where OpenGL syntax could be simpler. Those details those contribute to perceive OpenGL as more or less elegant.
Why do we have to use “gl_” prefix in GLSL shaders? Why not using “gl” prefix and be consistent? Once you are used to “gl” the “gl_” prefix is ugly and annoying.
Create only one header file (gl.h) instead of gl3.h gl4.h etc. Same goes for gl3ext.h and alike. That is just annoying to have to hunt headers and versions around.
Get rid of that ridiculous horrible demand that we first have to create older OpenGL context just to be able to create newer 3.xx context.
Get back fixed function & Co back; especially math functions. Deprecating those is idiotic since those are oldest parts of OpenGL and by now probably any vendor has those parts well-working. New vendors will have to work harder …
Fixed function is simple way to start with OpenGL and do some prototyping. It is also well standardized and understood.
Math routines are also a standard way of sending transformations to graphic card, why deprecating those? Vendors could make optimized routines that everybody uses instead of having everybody doing their own math routines. If this puts too much work on driver writers, than OpenGL board could have standard implementation that vendors could ship with their drivers or that people could use. Those old math routines are not only way to upload vectors to graphic cards, but they are also a conception around which applications are programmed (hierarchical modeling and transformations).
Well I hope I don’t sound too harsh; but those are changes I would like to see in OpenGL. I perceive later specifications of OpenGL like just wrong in spirit of OpenGL. Just because we get functionality on par with DirextX, does not mean that OpenGL specs have to look like directx. Why aping dx api, when it is possible to do better?
OpenGL was an elegant and easy to use API. I would really like to see that elegance come back. I think the board should think and create API from user programmers perspective rather than from driver programmers. It is really good to expose details of OpenGL, but it is unnecessary to remind us of those details in API calls.