ok I understood you , but what do you mean when you saying : "vertex arrays is your only option". ?
The only way to draw something in the modern OpenGL API (from version 3.0 and forward, excluding some early versions including compatibility mode) is by using vertex arrays. Immediate mode rendering, using glBegin/glEnd, has been removed from the API and is no longer an option.
and antoher question , if my objects change constantly , so should I save his vertexs in the regualr varrible, in addition to VBO ?
Create a dynamic buffer object. You specify your intended read and write usage as the last parameter to glBufferData, so if you intend to modify it alot, you create a dynamic buffer object. And depending on what you mean by changing, there may be other solutions better suited for shaders and uniform parameters.