How about merge the implementation into GLProgram::initWithByteArrays().