title: Why it is necessary to set precision for the fragment shader?
body: <p>I learn WebGL. Next shaders work fine:</p>
  
  <pre><code>// vertex.shader
  // precision mediump float;
  attribute vec4 a_Position;
  attribute float a_PointSize;
  
  void main(){
    gl_Position = a_Position;
    gl_PointSize = a_PointSize;
  }
  </code></pre>
  
  <p>and</p>
  
  <pre><code>// fragment.shader
  precision mediump float;
  uniform vec4 u_FragColor;
  
  void main(){
    gl_FragColor = u_FragColor;
  }
  </code></pre>
  
  <p>Why it is <em>necessary</em> to set precission for the fragment shader? Vertex shader works without this, but fragment shader doesn't work without this code row (as I see). Why the different behaviour exist?</p>
  
  <p>I read <a href="https://stackoverflow.com/questions/13780609/what-does-precision-mediump-float-mean">this</a> before, but it didn't help me.</p>