Microsoft está echando toda la carne al asador con Windows 8.1 y hay opiniones encontradas sobre cómo están haciendo las cosas. De entrada, pareciera que hablamos de dos sistemas diferentes para el programador, lo que viene a ser el desarrollo para la máquina de escritorio y el que se va a hacer para dispositivos móviles. La diferencia radica en lo que se llama WinRT, que es una nueva capa que supuesta y eventualmente reemplazará al API de Win32, el cual ha crecido por muchos años y que es claro que se ha convertido en algo difícilmente manejable.
Ahora se podrá empezar casi de cero, pues Microsoft ha decidido tirar a la basura mucho de lo hecho y no reutilizar código antiguo. No obstante las buenas intenciones de rehacer y mejorar todo el entorno, es evidente que habrá muchas características que no se han implementado aún en este nuevo WinRT. Microsoft, evidentemente, no dirá de que algo anda mal. Al contrario, afirmará que todo corre maravillosamente bien, pero es natural que los nuevos APIs tendrán que desarrollarse más, amén de pulirlos y depurarlos.
En la conferencia /Build// 2013, la empresa de las ventanas ha indicado que ya hay unos 5000 APIs con los cuales trabajar. El problema es que no están listados en ninguna parte todos estos APIs pero podríamos asumir que la lista completa aparecerá pronto en el Windows Dev Center. Cabe decir que todos los nuevos APIs son para apps de WinRT, lo cual hace pensar que Microsoft en el fondo piensa desechar a la larga (o a la corta), todo Win32. Cosa que es en el fondo rara, porque Microsoft afirmó en esta misma conferencia que las apps de escritorio seguirán siendo apoyadas y soportadas. Quizás haya que esperar a ver cómo se mueven las cosas al paso del tiempo.
Si observamos la lista de las nuevas APIs observaremos que algunas son muy simples lo cual significan dos cosas: por una parte, que están trabajando en el tema jerárquico sobre qué va primero y qué después; por otra parte, es claro que WinRT dista de estar completo y finalizado.
Las APIs más importantes funcionales son las que tienen que ver con las capacidades básicas de entrada/salida (I/O). No obstante hay un API nuevo para un cliente HTTP, conectividad en tiempo real, WiFi y opciones de transferencias en segundo plano. Las capacidades de filtrado en HTTP pueden reducir la carga de trabajo al sistema. En lo que se refiere a multimedia, se incluye ahora una nueva fuente de streaming, más codecs (codificadores/decodificadores), actualizaciones para captura de audio y video y mejoras en el elemento HTML5 para hacer multimedia. Hay mejoras en el manejo de elección de archivos, la carpeta padre de donde se obtienen, la comparación de archivos y el soporte a SkyDrive.
A bajo nivel hay bibliotecas para manejar la interfaz HID USB (usada cuando se hacen prototipos y sistemas embebidos con hardware creado para dicha causa), y soporte para USB en general. Sin embargo, debido a problemas de seguridad, solamente se pueden trabajar con los drivers que son parte de Windows 8.1. También se soportan dispositivos POS (Point of Service), como scanners de códigos de barra y Bluetooth, por ejemplo. También hay un nuevo API para manejar scanners de imágenes e incluso, ya hay un API para trabajar con impresoras 3D.
Evidentemente hay apoyo a DirectX y hay nuevos APIs para HLSL Shades, GPU Overlay, Frame Buffer scaling entre otras, para hacer que las cosas corran más rápido y mejor. Hay un nuevo rango de 10 controles para XML y Javascript. También se tiene un nuevo API para el manejo de objetos en Javascript que es asíncrono. La interfaz ha sido actualizada para incluir los nuevos modos de windows. También hay cambios en las funciones de TextToSpeech, Charms, etcetera.
El resto de los nuevos APIs tienen que ver con la administración, por ejemplo, para llevar un control mucho más preciso de las cosas que se hacen al administrar una tienda de apps. El API de seguridad incluye autentificacion de huellas digitales, tarjetas smartcards, reales y virtuales.
Muchas de las características pueden verse aquí pero esencialmente hay pocos añadidos y actualizaciones. La mayor omisión por el momento parece ser la falta de soporte a la conectividad de bases de datos en WinRT.
En fin, es un mundo de código nuevo y poco a poco veremos cómo se desarrollan todas estas cosas. Por el momento ya hay toneladas por aprender.
Referencias: