according the reference of glDeleteShader, an attached shader object will not be deleted as long as the attached program alive
draft