*Actualizado*: Apple ha sacado un artículo en la zona de desarrolladores sobre las nuevas características de Xcode, con enlaces a la descripción del formato DWARF, y otras novedades (como la posibilidad de incluir directamente referencias a URLs externos en el código fuente, para ir a la descripción, tutorial, o cualquier otro recurso web). Ver enlaces
23 de Mayo de 2006: Apple ha aprovechado el día de mi cumpleaños para lanzar diferentes actualizaciones en las herramientas de desarrollo y su documentación. Una de las más importantes es Xcode, que ha pasado a la versión 2.3, con las siguientes mejoras.
* Nuevo formato DWARF para depuración
* Nuevo sistema Dedicated Network Builds para compilación repartida entre servidores
Hay otras novedades, pero las dos que Apple resalta son las que he indicado arriba. ¿Y por qué digo que estas modificaciones indican que las versiones Intel de Adobe Photoshop y de Microsoft Office están más cerca? Porque, como explicaré a continuación, esas modificaciones están dirigidas a hacer de Xcode un entorno mejor para los grandes programas.
h3. Antecedentes
A finales de Marzo, tanto Scott Byer (de Adobe) como Rick Schaut (de Microsoft) indicaron cuáles eran las razones que tenían para no haberse pasado a Xcode con anterioridad (ver enlaces. Rescato este párrafo del artículo sobre las opiniones de Rick Schaut:
También señala que el código generado por Xcode a través de gcc no es tan compacto como el generado por CodeWarrior, y que el sistema de símbolos para depuración tampoco es tan eficiente como los archivos xSYM de los productos de Metrowerks, y que ha llegado a haber un caso de aplicación —al parecer, no de Microsoft— que ha crecido tanto a la hora de compilar con gcc y símbolos de depuración que sobrepasaba los límites del sistema de memoria virtual. Incluso propone un test para comprobar la diferencia de tamaño entre un binario compilado sin símbolos de depuración y otro compilado con ellos.
Justamente, el nuevo formato DWARF —ENANO en castellano— está pensado para reducir significativamente el tamaño del código generado con símbolos de depuración, y existe un archivo .dSYM —similar a los xSYM de Metrowerks— que funciona como índice sobre los ejecutables, lo que acelera la depuración.
Otra pega, en este caso puesta por Scott Byer:
Respecto a por qué, después de todo, no es posible pasar el proyecto de CodeWarrior a Xcode y recompilar, la razón que da Scott es que aún no se ha dado el paso hacia Xcode, porque Xcode aún está por detrás de CodeWarrior en velocidad a la hora de abrir grandes proyectos, en velocidad a la hora de compilar —si bien Xcode puede distribuir la compilación entre varias máquinas, y CodeWarrior no—, en el tamaño del código compilado… y para Adobe, aún no es capaz de gestionar una aplicación mastodóntica como las que componen CS2.
Al parecer, la posibilidad de repartir la compilación entre varias máquinas era algo que no disgustaba a los ingenieros de Adobe… pero el sistema de reparto, a través de distcc, era inadecuado para grandes aplicaciones. De ahí la utilidad de Dedicated Network Builds (DNB), que hace que puedas tener una granja de máquinas completamente dedicada a la compilación —hay que especificar las máquinas que se utilizarán para el proyecto—, y con un protocolo mejorado de reparto de las tareas de compilación, que minimiza el tráfico en red, de modo que es posible utilizar muchas más máquinas. Al parecer, Apple ha probado DNB simultáneamente hasta en 32 máquinas, cuando el máximo utilizable por el mecanismo anterior, basado en distcc estaba entre 6 y 12 máquinas.
Un punto más: Xcode 2.3 mejora el importador de proyectos CodeWarrior —aunque sigue necesitando que exista una copia de CodeWarrior; no funciona de forma independiente—, así que se sigue yendo en la dirección apropiada. Y hay muchas mejoras también en lo que se refiere al uso de sistemas de control de versiones (especialmente Subversion), dirigidas a todos los desarrolladores profesionales.
Por cierto, no deja de ser curioso que haya muchas correcciones de errores de una característica nueva como DNB, lo que indicaría que se ha estado utilizando mucho por parte de estos grandes desarrolladores que hemos mencionado. Seguramente no van a adelantar sus fechas de lanzamiento, pero es muy bueno ver que Apple está haciendo de Xcode el entorno que ellos necesitan para lograrlo.
Enlaces
* Faq-Mac: “Apple lanza Xcode 2.3”:http://www.faq-mac.com/mt/archives/017442.php
* Apple: “Introducing Xcode 2.3”:http://developer.apple.com/tools/xcode/newinxcode23.html
* Apple: “Developer Connection: Downloads”:http://developer.apple.com/tools/xcode/
* Memoria de Acceso Aleatorio: “Macintosh y el cambio a Intel, según Scott Byer (Adobe)”:http://www.entremaqueros.com/bitacoras/memoria/?p=453
* Memoria de Acceso Aleatorio: Rick Schaut (Microsoft MacBU): No basta con recompilar
Comentarios
Una respuesta a «Xcode 2.3 implica Binarios Universales de Photoshop, Office más cerca»
Pues los Mac Pro deben de estar a la vuelta de la esquina, como no se den prisa los de Adobe, van a vender pocas máquinas Intel.