I would like to keep the class names short. What about
I think we can omit the word Shader in most of the classes, because of GLSL being an abbreviation of GL Shading Language...
I agree almost totally. Since GLSLShaderProgram is an implementation/extension of the abstract class ShaderProgram it is not only common use, but also nice to use a prefix plus the name of the abstract class. And the "S" from GLSL doesn't obsolete the Shader term, since it means "Shading-Language". So we have a ShaderProgram in the GL-shading-language.
I really like GLSLContext