やっと全貌が見え始めてきたので。

・頂点描画方法
以下の記事の続き、補足です。
http://akasuku.blog.jp/archives/62740578.html
http://akasuku.blog.jp/archives/44623464.html

これについては、わかりやすくまとめられたページがあります。
http://mklearning.blogspot.jp/2014/08/opengl.html

glBegin()/glEnd()を用いる描画はOpenGL1.0のみであって、その後はずっとglVertex(Attrib)Pointerを使っているのですね。
そして、VBOまではOpenGL1.xの範疇。
OpenGL2.0でシェーダー対応、OpenGL3.0でVAO。

・シェーダー変数の変遷。
以下の記事の続き、補足です。
http://akasuku.blog.jp/archives/50856177.html

参考ページ
http://wlog.flatlib.jp/item/1633
http://marina.sys.wakayama-u.ac.jp/~tokoi/?date=20090827

OpenGL3.0(glsl ver1.3)以前はattribute/varying, 以降は.in/out。
glGetAttribLocationとglBindAttribLocationはどちらもOpenGL2.0から使えるようですね。