What are the differences between OpenGL ES and OpenGL ?
The terminology and versions are quite confusing (especially for newbies). For a more holistic view on OpenGL and OpenGL-ES (GLES), see OpenGL - Then and Now.
The main difference between the two is that OpenGL ES is made for embedded systems like smartphones, while OpenGL is the one on desktops. On the coding level, OpenGL ES does not support fixed-function functions like glBegin/glEnd etc... OpenGL can support fixed-function pipeline (using a compatibility profile).
Review the OpenGL ES overview here: http://www.khronos.org/opengles/
In short, ES is a subset of Open GL for "embedded systems". Specific differences will depend on the versions and feature sets you're comparing.
OpenGL ES is simply the OpenGL api for embedded systems (OpenGL ES refers to OpenGL Embedded Systems). so its a subset of OpenGL and widely used in cell phones and some VR systems it's designed for less sophisticated hardware . OpenGL ES has less terms and functions than OpenGL , think of it as : you take just what you need for that system because if we dont need a function in whole our work or the hardware can't deal with it, so no mean to add that function but in this makes the use of this API more hard because of the need to write more Shaders and complicated codes to make something simple because OpenGL ES does not provide Shaders in the graphics pipeline as OpenGL. the last version of OpenGL ES is 3.2 it can now provide support Tessellation for additional geometry details, new geometry shaders. so I advise you to start learning or using OpenGL ES 3.0+ (in case its your target language) because now and the next generation will not use the old versions with more powerful hardware and graphics cards and if your target is OpenGL start with v3.3+ or 4.0+. if you have more time no problem to make a quick view on the old versions for more understand how was the things get developed and why. you can check this link for more details : https://en.wikipedia.org/wiki/OpenGL_ES
The OpenGL ES registry contains detailed API differences between OpenGL ES and the corresponding version of OpenGL:
However, there isn't a document containing the differences for OpenGL ES 3.0.
Just like to add that OpenGL 3.3 and OpenGL ES 2.0 are mostly interoperable, by using a subset of the features of OpenGL 3.3. My custom C++ engine uses the same API calls, with a few defines, for Android/IOS/Windows/OSX/Linux.
Among the key differences are:
There are also many other differences, but that covers several of the important ones.