I am following the book 'OpenGL SuperBible' and am trying to run one of the first examples of drawing a point to the screen, bit instead of using there lib, im using GLFW. I'm not sure where I am going wrong.

Using GLFW 3.0 and Opengl 4.5

Creating shader

Code :
static const GLchar *vertex_shader_source[] = {
    "#version 450 core \n",
    " \n",
    "void main(void){ \n",
    "gl_Position = vec4(0.0,0.0,0.5,1.0); \n",
    "} \n",
    " \n",
};
static const GLchar *fragment_shader_source[] = {
    "#version 450 core \n",
    "out vec4 color; \n",
    "void main(void){ \n",
    "color = vec4(0.0,0.8,1.0,1.0); \n",
    "} \n",
    " \n",
};
 
vertex_shader = glCreateShader(GL_VERTEX_SHADER);
glShaderSource(vertex_shader, 1, vertex_shader_source, NULL);
glCompileShader(vertex_shader);
fragment_shader = glCreateShader(GL_FRAGMENT_SHADER);
glShaderSource(fragment_shader, 1, fragment_shader_source, NULL);
glCompileShader(fragment_shader);
 
program = glCreateProgram();
glAttachShader(program, vertex_shader);
glAttachShader(program, fragment_shader);
glLinkProgram(program);
 
glDeleteShader(vertex_shader);
glDeleteShader(fragment_shader);
Setting up the VAO

Code :
GLuint vertex_array_object;
glGenVertexArrays(1, &vertex_array_object);
glBindVertexArray(vertex_array_object);
Rendering

Code :
glClearColor(0.0f, 0.0f, 0.4f, 0.0f);
glUseProgram(program);
glPointSize(40.0f);
glDrawArrays(GL_POINT, 0, 1);
I'm still quite new to game development, so i'm sorry if its something silly i missed