Compiladores de C, existen desde casi los comienzos de los ordenadores, desde 1972, mucho antes de que apareciera el PC de IBM. Sin duda el sector de los compiladores de C, ha sido una guerra cruenta. Sin ir más lejos, benchmarks, y programas que necesitaban un elevado desempeño, se compilaban con Watcom C++ hasta hace no muchos años.
Otro ejemplo anecdotista sería Microsoft, que con su C Compiler primero, luego C++ Compiler, y finalmente Visual C++, lleva desde el principio en el terreno de juego, y nunca ha conseguido ser el que mejor código generase.
En el campo del PC, existen desde el principio, naturalmente. Muchos de ellos se han extinguido como: IBM, Latice, Metaware, NDP, Clarion, DeSmet, DDS, Small C, Pacific, Power C. Otros han sido adquiridos como Zorland/Zortech/Symantech/DigitalMars, Watcom/OpenWatcom. Los menos, siguen todavía actualizándose y dando juego como GCC, Corneau, PGI, Microsoft/Visual C, Borland/Codegear/Embarcadero, …
Y entre estos últimos, el protagonista de hoy, y poco conocido Intel C++ Compiler. Tiene sus raíces en el Intel C Code Builder 1.0, especializado en el elevado rendimiento de 32 bits para arquitecturas i386 e i486, pero no es hasta la versión 6 de 2002, que adquiere la denominación actual de Intel C++ Compiler.
Luego seguiría la 7.0 (2002), 7.1 (2003), 8.0 (2003), 8.1 (2004), 9.0 (2005), 10.0 (2007), 10.1 (2007), 11.0 (2008), 11.1 (2009), 12.0 (2010) y 12.1 (2011), mientras ya se está desarrollando la 13.0, que todavía no se ha lanzado.
Para la mayoría, Intel suena a fabricante de hardware, pero como veremos con el avanzado optimizador, la paralelización, y las librerías optimizadas, C++ Compiler debería incluir a Intel en la tabla de desarrolladores de software, y con honores.
En su última versión 12.1, está disponible para Windows, OS X y Linux, siendo generalmente el compilador (no solamente de C/C++, sino de todos los lenguajes), que genera un código más veloz, al menos si nos ceñimos a procesadores de arquitectura Intel, cifrada entorno al 5%-15% respecto al siguiente competidor, y se incluye en las suites Intel Parallel Studio XE, Intel C++ Studio XE e Intel C++ Composer XE, como correspondencia con el Intel Fortran Compiler, del que hablaremos en un futuro artículo.
Como ocurriera con Watcom, benchmarks como el SpecCPU, están compilados con Intel C++. Recuerdo algunas versiones del player de Flash compiladas con ICC, pero a día de hoy, y de manera inexplicable, la mayoría de aplicaciones siguen estando compiladas con Visual C++. De hecho, si miro los programas instalados en mi ordenador, tantos comerciales, como gratuitos y de código abierto, la mayoría están escrito en C/C++, y de ellos, la mayoría compilados con Visual C++. Que usen Intel C++, hay pocos, y generalmente son mods, compilaciones no-oficiales, o simplemente pequeños proyectos de amantes del rendimiento como Notepad2, compilaciones no oficiales de Firefox o Media Player Classic, …
Seguramente sus puntos más débiles sean que no es totalmente compatible con Visual C++ o GCC, que a veces genera un código erróneo (aunque cada vez menos), y que su código es el más veloz en procesadores Intel, pero no tiene porque serlo en otros, un tema que ha estado tradicionalente rodeado de controversia.
Hace algunos años, era reconocido por ser el compilador más caro, y es que no sólamente era necesario para su abultada licencia, sino que requería además pagar por Visual C++, para contar con un entorno de desarrollo profesional.