DirectX 11 es sin duda un gran avance en lo que se refiere a tecnologías de imagen y uso de GPGPU. Ya vimos cómo nos permitirá el transcodeo de video nos permitirá sacarle más partido a nuestros PMP y las nuevas tecnologías que se introducirán como el uso de teselación para formar polígonos mas complejos y reales. La pregunta es: utilizaremos todo eso?
Un buen hardware de nada sirve si no tiene un software que lo aproveche a la perfección. Ya vimos en nuestro primer Fanboy Wars cómo hasta los mismos usuarios se dan cuenta de que a menos que hagas edición de video o imagen intensiva con un dual core estás más que bien por ahora ya que los desarrolladores simplemente no los aprovechan. DirectX 10, la prometedora nueva API que salió junto a Windows Vista prometía maravillas a los gamers y desarrolladores del mundo, pero NVIDIA nunca produjo gráficas que fueran 100% compatibles con el estándar por lo que DX 10 pasó a llamarse DX 10.1 y la versión recortada y con menos características fué nombrada DX10. Esto frenó enormemente el avance de juegos que simplemente no podían aprovechar la API a la perfección porque eso significaría dejar de lado una gran parte del mercado, mientras que títulos como Tom Clancy’s H.A.W.X. obtuvieron un parche para actualizar el juego y utilizarlo con DX10.1, lo que aumentó drásticamente el rendimiento con tarjetas ATI.
El problema vuelve a verse. Tal como contamos cuando ATI presentó sus gráficos DirectX 11 durante la Computex 2009, ellos han implementado la teselación desde la Radeon 8500 pero recién con la serie HD 5000 ésta entrará en la API, sólo si es que NVIDIA puede preparar un hardware a la altura y no un refrito a medio hacer de su arquitectura actual para dejarnos nuevamente con un DX11 y DX11.1 para complacerlos. Curiosamente cuando ha sido al revez como es el caso de CUDA y el uso de físicas, los desarrolladores aprovechan al máximo las APIs y ATI ha tenido que esforzarse como pueda para no morir en este mercado tan competitivo.
Este -al menos- es uno de los casos donde la justificación radica en el hardware y flojera empresarial, pero hay miles de ejemplos donde el programador es quien no hace bien su trabajo. Los ejemplos más simples son las microempresas que le pagan a algún «webmaster» para hacerles un sitio y el correo de contacto está en yahoo, hotmail o gmail cuando hay servicios poderosísimos como Google Apps para tener un correo robusto y que -a pesar de no ser el más seguro- es la mejor opción para un pequeño negocio, sin contar que se ve muchísimo más profesional.
Algunos pueden discutir que no todos tienen para comprar un Core i7 965 extreme con un quad SLI de ASUS MARS y 24GB de ram DDR3 y es cierto, pero muchos de estos softwares son -de hecho- de última generación y están diseñados para correr en hardware de última generación también. Desde hace ya varios años que virtualmente todos los procesadores que se venden en la actualidad soportan instrucciones de 64 bits excepto los procesadores Atom de la serie Z y N. El utilizar un ancho de banda mayor en las instrucciones significa que puedes llevar más datos en la misma cantidad de tiempo, haciendo al programa más eficiente y necesitando menos ciclos de reloj para completar las tareas pero sin embargo sólo vemos software en 64 bits de grandes empresas como Adobe, Apple, Arcsoft o Microsoft y de desarrolladores de programas open source que tienen la eficiencia en mente. El resto de los desarrolladores tienen un interés casi nulo en aprovechar las capacidades que el hardware ofrece y no son menores.
Han tenido experiencias frustrantes con algún software que sin importar el hardware que tengas se comporta pésimo? Los desarrolladores que nos leen aprovechan al máximo sus conocimientos y entornos de programación o simplemente terminan el código en la fecha límite y avanzan al siguiente proyecto?