Note that ES 2.0 only accepts one shader of each kind. We can allow having multiple shader for desktop, but we should promote to use one. Also, the API becomes easier, because you can just pass a string.