title: Should I use the last GLSL version where it is possible?
body: <p>My cross-platform graphics program uses shaders written in GLSL version 1.40.
  GLSL 1.40 features fully satisfy the needs of the application. In fact, very basic shaders are used for rendering textures:</p>
  <p>vertex shader:</p>
  <pre><code>attribute vec2 position;
  attribute vec2 textureCoordinates;
  
  uniform mat3 transformationProjectionMatrix;
  
  varying vec2 interpolatedTextureCoordinates;
  
  void main() {
      interpolatedTextureCoordinates = textureCoordinates;
      gl_Position.xywz = vec4(transformationProjectionMatrix * vec3(position, 1.0), 0.0);
  }
  </code></pre>
  <p>fragment shader:</p>
  <pre><code>precision mediump float;
  
  uniform vec4 color;
  uniform sampler2D textureData;
  
  varying vec2 interpolatedTextureCoordinates;
  
  void main() {
      gl_FragColor.rgba = color * texture(textureData, interpolatedTextureCoordinates).bgra;
  }
  </code></pre>
  <p>Does it make sense to have several shaders in the program for different versions of GLSL that will be selected depending on the support on a specific hardware?
  Is it possible to get acceleration when using more modern versions of the shader language?</p>