15 de noviembre de 2007

Microsoft y Vista...de nuevo en entredicho

Resulta que acaba salir Mac OS X 10.5.1, o sea, el primer parcheado de Leopard. Y lo primero que viene a la cabeza tras enterarse es: ¿Por qué Microsoft no hace nada para evitar quedar en ridículo con Vista? No solo Vista está siendo muy criticado: Ahora van y dejan adelantarse a Apple en la salida del primer service pack. Y dijo "se dejan", porque por dinero y tiempo no será.

La impresión que da Apple ahora es que si bien Leopard venía con su buena carga de fallos -un caso de corrupción de datos incluido-, Apple es capaz de estabilizar su sistema antes que Microsoft el suyo. En menos de un mes, ya está el 10.5.1. Teniendo en cuenta que las versiones .0 tienen más fallos, tiene su lógica sacar rápidamente un primer SP corrigiendo los fallos más graves. Y en Ubuntu, como es habitual, no hay "packs", sino actualizaciones progresivas que van resolviendo fallos graves. Vista sin embargo fue lanzado el 30 de Noviembre del 2006 para licenciamientos por volumen y el 30 de Enero del 2007 para el pueblo llano...es decir, ha pasado prácticamente un año, y aun no hay SP1 de Vista. Un año. Originalmente, el SP1 se esperaba para la última parte del verano, para Octubre-Noviembre....sin embargo ha sido retrasado hasta el 2008. Más de un año.

13 de noviembre de 2007

Sobre Android

Despues de haber estado ojeando el sdk de android, se me ocurren unas cuantas cosas sobre este aparato.

En primer lugar, es lento. No me refiero al SDK de mi sistema -que consiste de un emulador que arranca un sistema ARM con un qemu que tiene embebido-, sino a Android funcionando sobre hardware. Se puede comprobar en el video-demo que Google ha publicado sobre Android: hay momentos en los que se ve claramente que el sistema va lento. Y es que está construido sobre Java, y eso tiene sus ventajas y sus desventajas, se pongan los zealots de Java como se pongan: Una cosa es una aplicación Java, que acaba ejecutando librerías compartidas escritas en C/C++ para muchas funciones, y otra cosa es un framework escrito en buena parte en Java. Y además, tal como se anunció, la VM de Android no es la de Sun, sino Dalvik, una VM propia de Google optimizada para bajo consumo de memoria en sistemas embebidos. En el mundo de los lenguajes interpretados, "optimizado para sistemas embebidos" implica a menudo que se elimina la parte del JIT y se deja la VM como un puro intérprete de bytecode. Los benchmarks que los fans de Java hacen para intentar demostrar a la gente que Java es tan bueno como el código nativo se hacen con las VMs de Sun o IBM, que tienen complejísimos JITs....pero sin un JIT, el argumento del java veloz se esfuma en las nubes. Android parece confirmar que Dalvik es un simple interprete: The Dalvik VM is an interpreter-only virtual machine that executes files in the Dalvik Executable (.dex) format, a format that is optimized for efficient storage and memory-mappable execution. Es decir, que Android es simplemente lento. Al iPhone, cuyo software está escrito en Obj-C, se le podrá acusar de cualquier cosa menos de lentitud, y eso se ve reflejado en como vuela ese aparatito.

Esa es por cierto una de las ventajas que Apple tiene sobre absolutamente todas las plataformas de software: el hecho de tener todo escrito en un solo lenguaje, un lenguaje moderno y competitivo, y un framework claro y definido. Microsoft tenía todo eso con C++, pero ahora con .NET han partido el mundo de los desarrolladores en dos, y dios sabe como acabará. En cuanto a Linux...en fin: unas partes en C, otras en C++, dividas en decenas de librerias que juntas formarían un teórico framework completo, cada una con diferentes convenciones de utilización, documentación, etc. En las plataformas Apple está Cocoa y los frameworks disponibles tanto en un mac como en un iphone, bindings para algunos lenguajes, y punto.

Otro aspecto a destacar de Android es la recien citada VM Dalvik. Aquí han hecho una reflexión extremadamente interesante sobre esta VM: Dalvik utiliza un bytecode propio. Eso significa que los programas compilados en bytecode para Android no podrán ser ejecutados por las VMs de Sun. El código de programas para Android se pasa primero a bytecode de la VM de Sun, y luego se pasa al bytecode de Dalvik (un formato optimizado para ocupar menos tamaño y memoria). En ese blog afirman que esto es un jaque a Sun y al férreo control que mantiene -por mucha palabrería opensource que suelten- sobre el lenguaje Java y el JCP (Java Community Process) que define los futuros cambios en Java, y los procesos de estandarización. Para más INRI, Android utiliza Harmony, la reimplementación opensource de Java fomentada por IBM que fue, en realidad, lo que forzó a Sun a liberar el código de su JVM. Yo sin embargo pienso que esto no fue más que decisión técnica del grupo de desarrollo de Android antes de unirse a Google que bien podría cambiar en el futuro.

Por último, Robert Scobler dice que Android es vaporware, que la interfaz no es tan buena y simple como la del iPhone -lo cual es cierto-, y que no atrae a muchos desarrolladores y que la prueba de esto último es que Google ofrece 10 millones de dóalres en premios para quien cree aplicaciones, mientras que en el iPhone la gente está creando decenas de aplicaciones gratis a pesar de no tener SDK y a pesar de tener que hackear el iPhone para instalarlas. De nuevo tiene toda la razón del mundo. Tambien dice que en muchos aspectos es una pobre imitación del iPhone. De nuevo da en el clavo. Pero eso no significa que Android no vaya a tener cierto éxito. El iPhone no va a copar todo el mercado del mundo, un mal clon del iPhone distribuido por todos los socios del Open Handset Alliance bien puede tener mucho éxito comercial.

Lista TOP500 de supercomputadores

Se ha anunciado recientemente la publicación de la lista bianual de los 500 supercomputadores más potentes del mundo, que siempre excluyen a Google y demás empresas o gobiernos que por alguna razón no quieren presumir de superordenador, algo que yo jamás haría si estuviera en su lugar. La lista tiene 5 nuevos sistemas en su Top 10, lo cual indica que el sector está agitado como un avispero. Lejos quedan los tiempos de la Explosión de la Burbuja y posterior recesión del sector informático, que hicieron que muchas de las empresas que trabajaban con procesadores RISC de 64 bytes (Alpha, MIPS, PA-RISC) disminuyeran de manera estúpida drásticamente la inversión en I+D de procesadores (y sistemas operativos), condenando a muchos de ellos a desaparecer en años recientes a manos de los infames clusters x86+linux/win, exceptuando contados casos de empresas inteligentes como IBM o (solo hasta cierto punto) Sun.

Esos procesadores eran los que dominaban los supercomputadores, pero la ceguera comercial llevó a esas liebres a ser superadas una vez más por la lenta pero constante tortuga, que de paso se compró un caparazón de fibra de carbono y se operó para injertarse músculos en las piernas, de manera que las liebres no pudieron alcanzarla nunca más, aunque no dejara de ser una tortuga. Por eso es que en la lista recién publicada han desaparecido los 20 sistemas PA-RISC que quedaban, al ser superados por sistemas nuevos, por eso ya solo queda un Alpha en la lista de los 3 que había hace 1 año. SPARC tambien solo queda solo uno, aunque es probable que no desaparezca del top-500, pues no es una arquitectura muerta y Sun está intentándole hacer respiración artificial. Itanium se supone que no está muerta, pero de 35 sistemas hace un año solo quedan 19, que mira que es mala suerte para SGI, que confia en esa arquitectura para alejar el fantasma de la quiebra.

¿Quien se ha comido sus posiciones? Intel, que tiene el 71% de cuota, una subida bastante grande desde el 57% de hace 6 meses. Incluso ha robado cuota a AMD e IBM en la subida. ¿Y en cuanto a sistemas operativos? Linux pasa del 75% al 85%, reforzando su implacable dominancia del sector. Windows 2003 Cluster Edition ha conseguido 6 sistemas, un 1%, lo cual no está tan mal, aunque sea probablemente un fracaso teniendo en cuenta el dinero que se habrán gastado en marketing.