I've been programming all my life, and have been looking into these stuff lately.
The CUDA architecture enables developers to leverage the parallel processing power of NVIDIA GPUs. CUDA enables this via standard APIs such OpenCL and DirectCompute, and high level programming languages such as C/C++, Fortran, Java, Python, and the Microsoft .NET Framework.