CodeWarrior es un entorno de desarrollo integrado (IDE) publicado por NXP Semiconductors para editar, compilar y depurar software para varios microcontroladores y microprocesadores ( Freescale ColdFire , ColdFire+, Kinetis, Qorivva , PX, Freescale RS08 , Freescale S08 y S12Z) y controladores de señales digitales (DSC MC56F80X y MC5680XX) utilizados en sistemas integrados .
El sistema fue desarrollado por Metrowerks en Macintosh , y fue uno de los primeros sistemas de desarrollo en esa plataforma en soportar claramente tanto las arquitecturas de conjunto de instrucciones Motorola 68k como PowerPC (PPC) . Durante la transición de Apple a PowerPC, CodeWarrior rápidamente se convirtió en el sistema de desarrollo estándar de facto para Mac, desplazando rápidamente a THINK C de Symantec y al propio Macintosh Programmer's Workshop de Apple . La compra de NeXT por parte de Apple en 1996 condujo a una disminución en la relevancia de CodeWarrior a medida que la programación de Mac se trasladó a las herramientas de desarrollo propias de la plataforma NeXT: Interface Builder y Project Builder , que se construyeron sobre la Colección de compiladores GNU .
Metrowerks respondió trasladando CodeWarrior a Microsoft Windows e introduciendo compiladores para una mayor variedad de plataformas. Se convirtió en una parte importante de la pila de software para las variadas líneas de microcontroladores de Motorola y, finalmente, los llevó a comprar Metrowerks en 1999. Se usó ampliamente en la mayoría de las plataformas basadas en PPC u otros procesadores Motorola, así como en muchas consolas de juegos . El producto se trasladó a Freescale Semiconductor cuando se formó esa empresa en 2004, y luego a NXP cuando compraron Freescale en 2015.
Originalmente era un producto integrado único, ahora conocido como "Classic IDE", pero luego fue reemplazado por Eclipse IDE. Las versiones actuales son la 6.3 de Classic IDE, [1] y la 11.0 de Eclipse IDE. [2] Los lenguajes admitidos son C , C++ y lenguaje ensamblador .
En octubre de 1992, John McEnerney, ex director de desarrollo del grupo de productos lingüísticos de Symantec, dejó la empresa para trabajar por su cuenta en un producto PowerPC, pensando inicialmente en un compilador Pascal . Rich Siegel, autor de BBEdit , se enteró de que McEnerney había dejado Symantec y se lo contó a Greg Galanos de Metrowerks en Montreal . Galanos telefoneó a McEnerney y le pidió que "describa su trabajo soñado". McEnerney dijo que quería escribir un generador de código para el nuevo chip PowerPC (PPC) que Apple había anunciado que utilizaría en el futuro. [3]
Metrowerks ya había desarrollado compiladores Pascal y Modula-II , originalmente para el Atari ST , pero que luego fueron portados a una serie de máquinas contemporáneas, incluida la Mac. Llevaron a McEnerney a Montreal para reunirse con Galanos y su socio Jean Belanger. Pensaron que había una gran oportunidad para una nueva cadena de herramientas en el PPC, combinando sus compiladores con un nuevo generador de código PPC escrito por McEnerney. Pensaron que podrían llegar al mercado más rápidamente que Symantec , el proveedor líder de sistemas de desarrollo en Mac. Symantec estaba lejos de lanzar sus productos para PPC, y Apple estaba usando versiones actualizadas de su propio Macintosh Programmers Workshop (MPW) para el desarrollo en el PPC, un producto que había sido ignorado durante años. McEnerney estaba interesado, pero no impresionado con sus compiladores, y poco se logró de este contacto inicial. [3]
Por la misma época, Andreas Hommel estaba en la universidad en Alemania completando un máster en informática . Desarrolló un interés en escribir juegos de ordenador en C, pero se dio cuenta de que los compiladores existentes generaban código de mala calidad. A lo largo de una serie de años desarrolló su propio compilador de C para el 68k junto con un entorno de desarrollo integrado (IDE) sencillo. Cuando terminó la universidad le ofrecieron un trabajo en Hamburgo, pero decidió intentar ver si había un mercado para su compilador. Unos meses más tarde recibió una llamada de Galanos. Después de varias llamadas telefónicas transatlánticas, Galanos invitó a Hommel a ir a Montreal y hablar sobre trabajar con ellos. [4]
En febrero de 1993, Galanos llamó a McEnerney y le preguntó si podían reunirse en Palo Alto para que McEnerney pudiera revisar un nuevo compilador de C que Metrowerks había adquirido. McEnerney quedó muy impresionado; el sistema parecía versiones anteriores de Think C y era muy rápido. McEnerney lo describió como "un diamante en bruto" y firmó un contrato con Metrowerks en cuestión de horas. Hommel ampliaría su compilador de C a una implementación completa de C++ , desenredándolo de la etapa de generación de código. McEnerney escribiría un nuevo generador de código PPC que sería controlado por el compilador de Hommel. El generador de código de 68K existente de Hommel se usaría para esa plataforma, ligeramente modificado para soportar también Pascal. Berardino Baratta y Marcel Achim en Montreal continuarían desarrollando el IDE y desarrollarían un compilador de Pascal que se ejecutaría en los mismos generadores de código. [3]
Al examinar el nuevo sistema, McEnerney decidió adoptar un enfoque completamente nuevo para la generación de código. Los compiladores típicos de la época examinaban repetidamente su representación intermedia (IR) y producían versiones cada vez más optimizadas del código hasta que finalmente lo convertían en instrucciones de máquina. Este enfoque era menos importante para las plataformas RISC , ya que la arquitectura del conjunto de instrucciones era mucho más simple y había mucho menos trabajo involucrado en decidir qué tipo particular de instrucción usar para una tarea determinada. En cambio, el nuevo generador de código de McEnerney tomó la IR inicial y la convirtió directamente en código PPC. [3]
El cambio más importante fue implementar el algoritmo de Chaitin para el uso de registros. Este sistema, introducido en 1982, fue un hito en la técnica de compilación. Permitió que un generador de código asignara variables locales a registros de procesador con una eficiencia muy alta. En una máquina que dependía del uso de registros para el rendimiento, que es uno de los conceptos principales de los procesadores RISC, esta técnica puede llevar a enormes mejoras. La desventaja es que es costoso calcular los resultados, al ser un proceso O(N 2 ) . [3]
Para ayudar a desarrollar el compilador PPC, Jordan Mattson de Apple envió a McEnerney uno de sus sistemas RS/6000 . En agosto de 1993, el sistema básico ya estaba funcionando. McEnerney recibió una llamada telefónica de un antiguo colega de Symantec, Dan Podwall, que buscaba trabajo en Metrowerks. Galanos llamó a Podwall, que fue contratado inmediatamente para escribir un depurador , que se completó en sólo cuatro semanas. [3]
En septiembre de 1993 se envió a la empresa un prototipo de Power Macintosh. En ese momento, el IDE principal y la cadena de herramientas de compilación todavía se estaban ejecutando en las máquinas de 68k, produciendo binarios de PPC que luego se trasladaron al prototipo y se depuraron. Esto les permitió trasladar rápidamente el sistema a PPC y, en diciembre, todo el sistema estaba listo para producción. [3]
El sistema fue lanzado como CodeWarrior en la MacWorld Expo en enero de 1994. Las Power Macs también estaban programadas para ser lanzadas ese mes, pero una serie de retrasos obligaron a posponerlo hasta el lanzamiento oficial de las máquinas Power Mac el 14 de marzo. [3]
En ese momento, tanto MPW de Apple como Think C de Symantec sólo funcionaban en máquinas de 68k, y sólo MPW era capaz de generar binarios PPC. Al funcionar de forma nativa en PPC y basándose en código dedicado a la plataforma, CodeWarrior ofrecía un rendimiento considerablemente superior, al tiempo que permitía desarrollar y depurar en una única máquina. Las ventas de otros sistemas de desarrollo terminaron prácticamente de la noche a la mañana. Symantec, que había dominado el mercado de desarrollo para Mac desde 1986, no lanzó una versión nativa de PPC hasta finales de marzo de 1995. Para entonces, varios de los principales proveedores de software para Mac se habían pasado a CodeWarrior y Symantec nunca pudo restablecer ningún tipo de cuota de mercado en Mac. [5]
CodeWarrior fue un factor clave en el éxito de la transición de la arquitectura de máquinas de Apple de procesadores 68K a PowerPC porque proporcionó un compilador PowerPC completo y sólido cuando la competencia (las herramientas MPW de Apple y Symantec C++) estaba mayoritariamente incompleta o llegó tarde al mercado. [5] Metrowerks también facilitó la generación de binarios fat , que incluían código 68K y PowerPC.
El soporte de Java en CodeWarrior para Macintosh se anunció para mayo de 1996, previsto para CodeWarrior 9. [6] Metrowerks adoptó el enfoque de agregar soporte de herramientas Java en CodeWarrior, incluida la depuración, en lugar de escribir un nuevo IDE. [7]
En 1997, Apple compró NeXT para utilizar su sistema operativo , OpenStep , como base para futuros productos Mac. OpenStep se basaba en el concepto de que todo el sistema operativo y todas sus aplicaciones se creaban utilizando un sistema de desarrollo interno. Este, a su vez, se basaba en la Colección de compiladores GNU (GCC). Si bien CodeWarrior seguiría siendo importante para los desarrolladores que escribieran aplicaciones Mac "clásicas" en la plataforma, había un marco temporal claro después del cual el desarrollo se realizaría principalmente a través de la nueva plataforma OpenStep y, por lo tanto, a través de GCC.
En agosto de 1996, Metrowerks anunció CodeWarrior para BeBox, [8] una versión BeOS del IDE llamada BeIDE que complementaba el compilador PowerPC que ya estaba disponible para los desarrolladores de software BeOS.
Después de que Metrowerks fuera adquirida por Motorola en 1999, la compañía se concentró en aplicaciones integradas , dedicando una fracción más pequeña de sus esfuerzos a compiladores para computadoras de escritorio. El 29 de julio de 2005, anunciaron que CodeWarrior para Mac se discontinuaría después del siguiente lanzamiento, CodeWarrior Pro 10. Metrowerks indicó que la participación en los ingresos del producto cayó del 22% al 5% en los últimos cuatro años y el esfuerzo de la compañía por concentrarse en el mercado de desarrollo integrado. La demanda de CodeWarrior presumiblemente había caído durante el tiempo en que Apple comenzó a distribuir Xcode (su propio kit de desarrollo de software para OS X) de forma gratuita. [9] Además, el cambio de Apple a los chips Intel dejó a Metrowerks sin un producto obvio, ya que habían vendido su tecnología de compiladores Intel a Nokia a principios de 2005. [ cita requerida ]
Durante su apogeo, el producto era conocido por su rápido ciclo de lanzamiento, con múltiples revisiones cada año, y por su peculiar campaña publicitaria. Sus camisetas "geekware" aparecieron en las páginas de moda de The New York Times . [10]
Antes de la adquisición del producto por Freescale, existían versiones destinadas a Macintosh , Microsoft Windows , Linux , Solaris , PlayStation , PlayStation 2 , GameCube , Nintendo DS , Wii , [11] Dreamcast , SuperH , M·CORE , Palm OS , [12] Symbian OS y BeOS . [8]
Las versiones de Metrowerks de CodeWarrior también incluían compiladores Pascal , Object Pascal , Objective-C y Java .
Se pueden utilizar versiones anteriores de CodeWarrior para desarrollar en el sistema operativo Mac clásico. Classilla está desarrollado con Metrowerks CodeWarrior 7.1. [13]
Durante la década de 1990, Apple Computer lanzó una serie mensual de CD-ROM para desarrolladores que contenían recursos para programar Macintosh. En sus inicios, estos CD tenían títulos extravagantes que utilizaban referencias a varias películas, pero con un toque de codificación; por ejemplo, "El hexorcista" ( El exorcista ), "El señor de los archivos" ( El señor de las moscas ), "Gorilas en el disco" ( Gorilas en la niebla ), etc. [20]
Uno de ellos, el volumen 9, se titulaba "Code Warrior", en referencia a la película The Road Warrior . Más tarde, Apple abandonó el extravagante título en favor de un título más sobrio: "Serie de CD para desarrolladores". Casualmente, el fundador de Metrowerks, el australiano Greg Galanos, también se inspiró en la película y propuso el nombre CodeWarrior. Posteriormente, Metrowerks utilizó el nombre para su nuevo producto para desarrolladores.
El empaquetado de los CD de CodeWarrior seguía la tradición de los CD para desarrolladores de Apple, con eslóganes como "Sangre, sudor y código" y "Veni, Vidi, Codi" en letras prominentes. Los productos de la competencia, como THINK C de Symantec, se comercializaban de forma más convencional.
Metrowerks previó, como lo había hecho con la transición a PowerPC, la necesidad de proporcionar una herramienta para desarrolladores imprescindible para ayudar a los desarrolladores a realizar la transición del software MacOS al futuro sistema operativo de Apple, cuyo nombre en código era Rhapsody . [21]
En 1997, Metrowerks adquirió los principales activos de The Latitude Group Inc. de manos de David Hempling y sus socios. Latitude era una capa de compatibilidad de software utilizada para trasladar aplicaciones Macintosh a NeXT Computer y otros sistemas UNIX. [22]
Latitude se presentó como una biblioteca que implementaba la API del Macintosh System 7 de la misma manera que el software Altura Mac2Win de Lee Lorenzen y el propio Quicktime para Windows SDK de Apple permitían que las aplicaciones de Macintosh se recompilaran para Windows con modificaciones mínimas. Adobe había utilizado con éxito Latitude anteriormente para adaptar Photoshop y Premiere a las estaciones de trabajo Silicon Graphics y Solaris . [23]
Metrowerks renombró Latitude como CodeWarrior Latitude, [24] lo actualizó para Rhapsody comenzando con Developer Preview 1 y luego lo comercializó para desarrolladores de Macintosh como un producto separado por $399, junto con CodeWarrior Professional. [25] [26]
Latitude Developer Release 1 (DR1) se presentó en forma preliminar en la WWDC de 1997 en el CodeWarrior Lounge. Latitude DR2 se lanzó el 27 de octubre de 1997 y ganó un premio Eddy en la edición de 1998 de Macworld a la mejor herramienta para nuevas tecnologías, superando a Joy de AAA+ Software F&E y Visual Cafe para Macintosh 1.0.2 de Symantec. [27]
En ese momento, Steve Jobs estaba promocionando intensamente la API OPENSTEP (rebautizada como Yellow Box ) para acceder a las nuevas características del sistema operativo. Para los desarrolladores de Macintosh que utilizaban C/C++/Pascal, esto representaba un obstáculo importante porque era marcadamente diferente de la API clásica de MacOS que se ejecutaba dentro de Blue Box y estaba basada en Objective-C . Latitude fue conocida durante un breve período como la "Green Box" [28] por razones obvias y parecía ser otro éxito para Metrowerks y consolidar aún más su dominio en el mercado de herramientas para desarrolladores de Macintosh, pero Apple tenía sus propios planes en secreto.
El IDE de CodeWarrior para Rhapsody y CodeWarrior Latitude se presentaron en la Conferencia Mundial de Desarrolladores de 1998 en el pabellón de desarrolladores externos, pero se dejaron de fabricar discretamente en la feria tras el discurso inaugural de Steve Jobs. El anuncio de Apple de su próxima API Carbon (con nombre en código "Ivory Tower") para atraer a los desarrolladores que necesitaban una forma práctica de realizar la transición al nuevo sistema operativo eliminó la necesidad de soluciones de terceros. [29]
Metrowerks utilizó Latitude internamente para adaptar CodeWarrior para que se ejecutara en Red Hat y SuSE Linux para su venta comercial y, además, en Solaris bajo contrato con Sun Microsystems. Ambos productos utilizaron compiladores de línea de comandos gcc en lugar de las tecnologías de compilación propias de Metrowerks para promover su adopción dentro de la comunidad de desarrolladores de UNIX.
La versión final de Latitude admitió Solaris 2.3, SGI Irix 5.2 y Rhapsody DP2, eliminando la compatibilidad con HP-UX.
Sitio web oficial