Molonator69 escribió:Lo mismo utilizan una medida intermedia.
En vez de utilizar el Runtime de .net podrian compilar directamente el codigo y así seria mas optimo, ya que X360 es una maquina cerrada, no le veria mucho sentido que utilizaran el runtime de .NEt si al final es lo que se utiliza claro.
También lo había pensado yo pero lo descarté por dos razones:
* La ventaja de velocidad de una precompilación a código nativo y una compilación en tiempo de ejecución no es apreciable. Por otra parte el compilador JIT de Microsoft es muy avanzado y optimiza muy bien el código (sólo tiene una pérdida de rendimiento alrededer del 15% respecto al código C++ no administrado, pero ninguna sobre compilación directa administrada). Por otro lado asumiendo esa posible pérdida de rendimiento, las ventajas del código .NET administrado serían muchas: Portabilidad total entre diferentes plataformas actuales y futuras del programa compilado [al MSIL], sin más que insertar el DVD y jugar. Futuras optimizaciones de la máquina virtual que reportarían aumentos de rendimiento para la misma aplicación. Mayor sencillez en las complicaciones internas de programación como liberación de memoria, administración de hilos, interconexión con Internet, etc.
* Con cada nueva generación de consolas es más difícil emular la anterior, por lo que no sería mala idea empezar a tomar medidas desde el principio haciendo una programación más limpia. Me explico: en windows es muy fácil emular una funcionalidad que no está presente con otra alternativa, tal era el caso de los famosos emuladores de OpenGL a través de DirectX y viceversa. Esto es porque los programas Windows se vinculan en tiempo de ejecución con las bibliotecas que van a usar; por tanto si se mantiene la interfaz de llamada, con relativa sencillez se puede cambiar la implementación de la biblioteca y hacer así que la aplicación de usuario se pueda ejecutar sin enterarse del cambiazo (así es como funciona Wine para GNU/Linux). Sin embargo los que conozcais el
XBOX Developer Kit sabréis que la vinculación con la biblioteca personalizada de DirectX 8.0 es estática, es decir, en el propio archivo ejecutable están las llamadas al sistema necesarias para interacturar con el hardware, y no en bibliotecas de enlace dinámico. Esto ha forzado a realizar un emulador de XBOX para la XBOX 360 altamente complicado ya que incorpora elementos de alto y bajo nivel simultáneamente. Según palabras del desarrollador jefe ha utilizado algo de magia para conseguirlo.
Por otra parte y como aclaración aunque un programa .NET se compile a código nativo (el de PowerPC en este caso), se sigue necesitando del runtime de .NET, es decir, la biblioteca de tiempo de ejecución de .NET es de enlace dinámico, una versión muy evolucionada de las clásicas .dll de windows. Aunque vamos en la línea de lo que dice
Molonator69 , también podrían haberla compilado a código nativo toda entera, con lo que incluso se podría vincular estáticamente.
No obstante y aun habiendo soltado esta parrafada, me imagino que los programas para la XBOX 360 se seguirán haciendo en C++ y con compilación directa a código máquina de PowerPC, y que las bibliotecas se vincularán estáticamente, con lo que los programadores eliminarán el indeterminismo de una capa de abstracción como es .NET, y le podrán sacar el máximo partido a la máquina.
Vamos ánimo, que alguien más de sus impresiones al respecto!!!
Saludos a tós.