glVertex()の代わりとしてglVertexAttrib()、glVertexPointer()の代わりとしてglVertexAttribPointer()が存在します。
これらの関数の存在意義は何か。
それはGLSL(OpenGL)のバージョンと大きく関係しています。

新しいバージョン(GLSL1.5くらいから?)では、gl_Vertexなどの自動で設定されるAttribute変数が廃止となっており、アプリケーションプログラムからglVertex()を呼んだだけではシェーダーによる描画ができなくなっています。
そこで必要となるのがAttribute変数の明示的な設定であり、それを行うのが前述の~Attrib()です。
Attribute変数の明示的設定の手順は以下の通りです。

1. glGetAttribLocation()で、Attribute変数のインデックス(アドレスみたいなもの?)を取得。
  →GLuint appPos = glGetAttribLocation(program, "vertexPos");
2. gEnableVertexAttribArray(appPos)で、Attribute変数を有効にする。
3. glVertexAttrib()で、頂点情報を設定する。
4. glDrawArrays()で描画。

なお、GLSLのバージョン指定は、シェーダープログラムの最初に、#version 120などと書くことによって行います。
この指定をしないとPCに入っているOpenGLのバージョンなどによって挙動が変わってしまいますので、ちゃんと指定した方がよいと思われます。

参考サイト
http://mklearning.blogspot.jp/2014/08/opengl.html
http://wlog.flatlib.jp/item/1633
http://www.arakin.dyndns.org/glsl_qualifier.php