Los lenguajes que se conocen tradicionalmente son muy estructurados, y (en cierta manera) se parecen mucho a los lenguajes humanos. Ejemplos son Java, C++, Basic y PHP.
Pero la computadora no trabaja en esta forma (con funciones, clases y demás) sino mediante instrucciones pequeñas y secuenciales. El lenguaje ensamblador es el que más se acerca a la forma en que la máquina funciona.
En este lenguaje todo gira alrededor de movimientos de datos entre la memoria y los registros, usar operaciones del procesador, e invocar interrupciones de la bios. Por ejemplo, para realizar la suma de dos numeros debes mover los valores que tienes guardados en la memoria a los registros de la CPU, para poder luego invocar a la operación de suma, y finalmente copiar el resultado de la operación (almacenado en otro registro) a la memoria. Y eso sólo para una simple operación de suma.
Como se pueden dar cuenta, escribir programas de esta manera es una tarea muy tediosa sobre todo si estos son muy largos y complejos. Por eso se crearon los lenguajes de alto nivel, los cuales requieren una fase de transformación previa (la compilación) antes de poder ser ejecutados por la PC.
Cuando nVidia invento los pixel y vertex shaders (para permitir a los desarrolladores programar las GPUs) creó una especie de lenguaje ensamblador para ello. De este modo se podía obtener la máxima optimización (sobre todo teniendo en cuenta que los shaders son programas relativamente pequeños).
Luego ATI creo su propia versión para las tarjetas Radeon con soporte para shaders, y Microsoft creo una tercera para DirectX (usando tanto tarjetas de nVidia como de ATI).
Era necesario, por tanto, estandarizar los lenguajes de los shaders y crear un lenguaje de alto nivel. Dos proyectos estaban (y están) en camino: uno de DirectX 9 y otro de OpenGL 2.0. Pero se les adelanto nVidia con CG.
¿Qué es CG? Como dice nVidia, es el C para graficos. ¿Tendrá exito? Todo depende del apoyo que reciban, sobre todo si DirectX 9 y OpenGL 2 piensan sacar sus propias versiones de la misma cosa.