Revisando entradas de blogs del fin de semana, me he encontrado una buena cantidad de páginas que hablaban de diversas interpretaciones acerca de lo que está pasando en Microsoft a raíz del anunciado retraso de Windows Vista. Entre las más recomendables está este artículo del New York Times, «Windows is so slow, but why?«, en el que Steve Lohr y John Markoff atribuyen la lentitud de desarrollo y ejecución a la complejidad derivada del tamaño de su código base (cincuenta millones de LOC, líneas de código), al brutal tamaño de su monopolístico ecosistema (más de trescientos treinta millones de ordenadores, trescientos fabricantes y miles de periféricos de todo tipo) y a la insistencia en mantener la compatibilidad reversa con todo el software y el hardware anterior. Como el propio Ray Ozzie comentaba en su memo del pasado Octubre, «la complejidad mata»
«Complexity kills. It sucks the life out of developers, it makes products difficult to plan, build and test, it introduces security challenges and it causes end-user and administrator frustration.»
Los resultados del anuncio de retraso no se han hecho esperar. Microsoft ha cortado cabezas en el equipo de desarrollo, se respira un mal rollo impresionante de petición de responsabilidades según puede verse en este hilo de más de 470 comentarios en Mini-Microsoft, y se afirma que más del 60% del código de Vista será reescrito, tirando de programadores del exitoso equipo de XBox. Prestigiosas revistas para directivos como Forbes se dedican a atizar duramente a la compañía (Microsoft Vista: Not ‘People Ready’), terminan sus artículos invitando a cambiarse a Apple
«Why not at least switch to an Apple Mac? Apple’s new operating system is stable, reliable and easy to use. The applications are simple, gorgeous and work well together. And they’re here. Steve Jobs must be waking up a happy man this morning.»
y comentan el también anunciado y consecuente retraso de Office 2007 («Can Microsoft make the trains run on time?«).
Y el caso es que a mí todo esto me va sonando conocido… ¿será tal vez porque ya lo comenté hace más de seis meses en este artículo de PC Actual?
ACTUALIZACIÓN (09:00, 28/03/2006): Como me indican en los comentarios, la noticia de David Richards en Smarthouse citada con cautela arriba acerca de la necesidad de reescribir el 60% del código de Vista y la incorporación de desarrolladores de XBox ha sido duramente desmentida por Robert Scoble y por el propio equipo de XBox, además de puesta en duda por Dave Winer. Algunos, no obstante, como The Inquirer, la siguen reflejando.
Los fracasos en proyectos de esa envergadura son más corrientes de lo que parece, porque la coordinación de los numerosos equipos de programación que interviene es dificilisima.
Los problemas de comunicacion en el primer peldaño de la piramide jerarquica, los programadores, son muy difíciles de resolver, con lo que el caos se extiende con una facilidad pasmosa, casi inevitablemente se produce un efecto «Babel». Terminos como fecha de inicio, importe y cosas parecidas adquieren diferente significado en cada uno de los equipo de programación.
En mi larga vida profesional he tenido la suerte de toparme solo una vez con un proyecto de este tipo, el «Arco» de Telefónica y ternminó como el rosario de la aurora.
Una cosilla, ¿por qué en lugar de líneas de código pones LOC? Unas abreviaturas o siglas pues son imprescindible shoy día (aunque crean una brcha entre los usuarios más especializados y el común de los mortales que no está del todo bien, y a mí es al primero al que a veces se le va la pinza con los tecnicismos) pero a veces (sin darnos cuenta) podemos escribir cosas que ya quedan sólo al alcance o de unos pocos especialistas o de los dispuestos a jugar a acertar al acertijo…
Lineas de código es largo, pero (y no es por un aniamericanismo bobo) poner Lines of Code no es que sea necesario, y ni te cuento LOC. En mi humildisima opinión…
Pues no me he dado cuenta. Es una de las variables que utilicé de forma constante en algún paper (en el del mantenimiento, el de MISQ) y me parece algo superconocido, como muy normal, como si me hubiese pasado un año LOC p’arriba, LOC p’abajo. Pero si esa es tu apreciación, será que me he equivocado. Lo cambio.
Anda que no hay follón con esa noticia, según Microsoft es FALSO.
Lo escribe Scoble en su blog
http://scobleizer.wordpress.com/2006/03/24/where-the-heck-is-scoble/
El equipo de XBox tambien lo desmiente en su blog:
http://gamerscoreblog.com/team/archive/2006/03/24/533961.aspx
Y David Winer tambien lo argumenta en su blog:
http://www.scripting.com/2006/03/24.html#When:12:39:30PM
Y es que no es razonable, tener que reescribir el 60% de algo tan inmenso como el Windows, simplemente no puede ser y ademas, es imposible.
Creo que M$ está caminando en contra del cliente.
Man-Tener una posición dominante es difícil… y en la industria de software se mantiene con innovación (o la apariencia de ello) en períodos muy cortos de tiempo -comparado con otras industrias-
Cosas como las que está haciendo con OpenDocument le serán difíciles de levantar, si no reacciona a tiempo.
Yo ya pronostiqué erradamente el fin de M$ cuando OS/2 y vi como supo imponer Windows95, mejorado con W98, y estos Sres. enseñaron al mundo como imponer su mediocre sistema.
Hoy creo que su peor enemigo son ellos mismos.
Lo del 60% de codigo reescrito no tiene ni pies ni cabeza. Es imposible.
Sobra gente que está deseando echar mierda encima del nombre de microsoft. Cualquiera que crea saber algo del mundo del desarrollo puede deducir que reescribir el 60% de +50 millones de lineas de codigo ( es decir, casi 30 millones ), es cosa de casi un lustro, cuanto menos. Lean lo que scoblaizer y otros dicen al respecto.
Saludos
De todas maneras, hasta donde yo tengo entendido, la versión que se retrasa es la consumo, mientras que las empresas podrán comprar por licencias a partir de noviembre el nuevo Windows…
Gracias, Herme y Antonio. A mí me pareció muy extraño, por eso escribí «… se afirma que… »
Subo esos vínculos a la entrada original y le pongo una actualización.
¿Reescribir 50M líneas de código es difícil? ¿Windows es «demasiado» grande? ¿La «retro-compatibilidad» es un lastre?
Todo esto me parecen penosas excusas, por parte tanto de MS, como de sus fan-boys. ¿Cuántas líneas de código componen las distintas distribuciones de Linux? ¿Qué tamaño tienen, sumados, todos los proyectos de código libre? El tamaño y complejidad de Windows se queda ridículamente pequeño al lado de los 14 CDs que reparte Debian, por ejemplo, como distribución (de los que sólo es imprescindible el primero). Otras distros vienen incluso en DVD(s). Y mientras Windows sigue con su patético CD, que incluye el Paint, el Notepad, y esa penosa parodia de navegador llamada IE.
Y que no me vengan con que Debian (por seguir con el ejemplo) lo hacen entre muuucha gente, porque precisamente MS se vanagloria siempre de que al hacer Windows entre un relativamente pequeño grupo de gente, las dificultades en el (y supuestos errores de) desarrollo se minimizan.
En cuanto a retrocompatibilidad, si MS se adhiriera a los estándares, en vez de sabotearlos siempre, no habría ningún problema. Que levante la mano el lector que tenga un fichero LaTeX de hace 20 años y no le siga funcionando exáctamente igual que el primer día. ¿Y con .doc? Pues eso.
Un saludo
Este video integro de la primera KeyNote de 1997 y que fue la primera KeyNote que dio Steve a su regreso a Apple en 1997. Explica muchos interrogantes que se pueden estar abriendo en estos momentos. Y es a mi juicio una clase magistral que bien se podria titular: ME LA ENVAINO SIN VASELINA; … X Q YO LO VALGO Y MIS COJO-MANZANAS MAS.
Entre las perlas: … 8)
a) Bill Gates en video conferencia comprometiendose a ayudar a Apple en diversos frentes, entre ellos comprando un paquete de acciones descomunal.
b) Steve reconociendo y reflexionando sobre las razones de la situacion de 1997.
Quien hoy tirita mañana suda ;-)
Y a esos niveles, como todos sabemos se comparten muchas cosas, desde fabricantes a distribuidores etc etc…
Al final todos estan en el mismo «circo», todo esta mega-inter-relacionado-al-cubo. En el mundo empresarial y a ese nivel los seis grados de separacion famosos, no llegan ni a 0,5 dioptrias.
¿Cuantas acciones conservara Bill de Apple de las de 1997?. ¿Y cuantas acciones compro Steve de Microsoft cuando se le paso el cabreo del «exilio forzoso». :?:
Como dice la frase… A tus amigos cerca, pero a tus enemigos en la camita calentitos no se te vayan a resfriar y te pegen la gripe. :)
Una cosita, ¿No estamos ante el mejor momento para que Apple lanzara MacOs para Pcs intel? Os imaginais el golpe de efecto que significaría, con Microsoft aplazando aun más su nuevo sistema, si además va a ser inevitable que se instale MacOs en pc intel de forma casera, ¡que mejor momento que este!
¿Reescribir 50M líneas de código es difícil?
No es que sea difícil, es que se me antoja complicadísimo. ¿Por qué?:
Cuando dicen reescribir código, se refieren a cambiar la forma en la que el programa se comporta. No se trata de un programa aislado, sino que tendrá que interactuar con el resto ya escrito. Sobre el papel parece muy bonito, ya que se supone que para eso están las APIs, la modularización, los esquemas y demás teorías que muchas veces no se llevan a la práctica.
¿Windows es «demasiado» grande?
Posiblemente sí y el problema, me aventuro a imaginar, es que está poco modularizado. En GNU/Linux, por ejemplo, el núcleo es la base y luego el resto de sistemas (interfaz gráfico y demás) están aparte. Además, el núcleo lo puedes optimizar para tu hardware seleccionando qué incluyes, qué pones como módulo, qué dejas fuera, etc.
Cualquiera que haya estado inmerso en un proyecto de software, sabe que al principio se piensan las cosas para que funcionen con los requisitos iniciales y se intenta prever cómo será el futuro para poder ir adaptándose. Sin embargo, la experiencia enseña que llega un momento que la adición de nuevas funcionalidades requiere una revisión exhaustiva de la estructura general de funcionamiento, la llamada «arquitectura» del programa.
¿La «retro-compatibilidad» es un lastre?
Y bien gordo. Hace que se tenga que destinar esfuerzo para ese objetivo y que las cosas no estén tan optimizadas como debieran para las tecnologías actuales.
En cuanto a retrocompatibilidad, si MS se adhiriera a los estándares, en vez de sabotearlos siempre, no habría ningún problema
Los estándares son en su mayoría dinámicos. Lo que hace X años era de una manera, ahora ha evolucionado, por lo que sigue siendo necesario mantener compatibilidad hacia atrás (con el coste en rendimiento que eso supone) en muchas aplicaciones. Sí, escribir en texto plano sin formato no varía, pero un documento complicado (con tablas, con imágenes, con objetos incrustados, etc.) se rige por una serie de normas que cambian con el tiempo.
De cualquier manera, no entiendo la manía que tiene la gente a Microsoft: si no te gusta, no lo uses.
Saludos
¿Reescribir 50M líneas de código es difícil?
No es que sea difícil, es que se me antoja complicadísimo. ¿Por qué?:
Cuando dicen reescribir código, se refieren a cambiar la forma en la que el programa se comporta. No se trata de un programa aislado, sino que tendrá que interactuar con el resto ya escrito. Sobre el papel parece muy bonito, ya que se supone que para eso están las APIs, la modularización, los esquemas y demás teorías que muchas veces no se llevan a la práctica.
O sea, que MS ha hecho las cosas mal, y a causa de eso le es difícil progresar. ¡Vaya noticia!
¿Windows es «demasiado» grande?
Posiblemente sí y el problema, me aventuro a imaginar, es que está poco modularizado. En GNU/Linux, por ejemplo, el núcleo es la base y luego el resto de sistemas (interfaz gráfico y demás) están aparte. Además, el núcleo lo puedes optimizar para tu hardware seleccionando qué incluyes, qué pones como módulo, qué dejas
fuera, etc.
O sea, que MS ha hecho las cosas mal, y a causa de eso le es difícil progresar. ¡Vaya noticia! (bis)
[…]
En cuanto a retrocompatibilidad, si MS se adhiriera a los estándares, en vez de sabotearlos siempre, no habría ningún problema
Los estándares son en su mayoría dinámicos.
MS ha sido siempre el que ha dicho que no quería adherirse a los estándares porque «quedaban obsoletos demasiado rápido» y porque las nuevas ‘features’ hay que implementarlas en cuanto es humanamente posible, en vez de cuando ya se han testeado e introducido en estándares.
¿Hay algo más dinámico que la creación de páginas web? Sin embargo todos los navegadores que se adhieren a los estándares (o sea, todos menos IE) avanzan tan rápido o más que IE (p.e., soporte para CSS2 y CSS3), y tienen menos agujeros… y siguen siendo compatibles con las páginas que los «viejos» navegadores podían ver en «los viejos tiempos».
O hablemos de compiladores. Los compiladores actuales se adhieren a los estándares actuales, al menos en el mundo GNU/Linux. Si quieres compilar código viejo, usas un compilador viejo, que nunca será retirado del mercado, y te lo sigues pudiendo bajar gratis.
[…]
Sí, escribir en texto plano sin formato no varía, pero un documento complicado (con tablas, con imágenes, con objetos incrustados, etc.) se rige por una serie de normas que cambian con el tiempo.
¿»Texto plano»? ¿Te refieres a LaTeX?. Porque LaTeX es tan texto plano como el HTML, o, si a eso vamos, un programa en C. Tú escribes texto plano, pero el producto es tan «complejo» como quieras. En LaTeX se pueden «incrustar» tantas tablas, imágenes y objetos como uno quiera. De hecho la gestión de la numeración y referencias cruzadas de las tablas, imágenes y citas (p.e., artículos científicos) es órdenes de magnitud mejor que MS Word, por ejemplo. Cualquiera que haya escrito un libro, una tesis doctoral, un artículo científico (algo con referencias y citas que cambias mil veces mientras escribes), sabe de lo que hablo.
De cualquier manera, no entiendo la manía que tiene la gente a Microsoft: si no te gusta, no lo uses.
1) Efectivamente. Yo, al igual que el 99% de la gente que cambia a Linux, no volvería a Windows aunque Bill Gates me pusiera una pistola en la cabeza.
2) Siendo prácticamente un monopolio, es difícil para el usuario medio «desenchufarse» del status quo. Un ejemplo: la página del MAP (Ministerio de Administraciones Públicas) pide «Windows 98 o superior» e «Internet Explorer 5.5 o superior» para ser vista correctamente… Menudo palo en las ruedas de la bici de mi fantasía de «si no lo quieres no lo uses», ¿no?. Obviamente, si IE se adhiriera a los estándares, aunque los descerebrados del MAP hubiesen hecho la página teniendo en cuenta sólo un producto propietario, hecho por una compañía privada extranjera, seguiría siendo cierto que con los otros navegadores (que siguen «también» los estándares) también se puede ver, ¿no?
Un saludo
O sea, que MS ha hecho las cosas mal, y a causa de eso le es difícil progresar. ¡Vaya noticia!
No creo que Microsoft sea una empresa perfecta, pero desde luego tiene margen para la mejora. Por ejemplo, en Windows 98 no hay soporte nativo de USB, por lo que cada dispositivo lleva sus propios drivers, algunos incompatibles con otros, lo que lleva al sistema operativo muchas veces a colgarse.
Si alguien cree que en un proyecto medianamente importante de software, la primera arquitectura soportará todas las funcionalidades que se quieran incluir es que no lo ha pensado bien del todo ;-).
Respecto a los estándares, creo que ha sido política estratégica de Microsoft aprovechar su postura dominante en el mercado para imponer lo que le ha dado la gana. Lo cierto es que estaba más centrado en estándares ofimáticos. Por ejemplo, recuerdo los años cuando WordStar era el rey. En aquellos tiempos ni se te podía ocurrir meter en un documento un hiperenlace, por ejemplo, seguro que en las primeras implementaciones del «doc» de MS tampoco, no lo sé.
Latex es un caso aparte porque es «casi» un lenguaje de programación y no sé por qué Microsoft dejó al Explorer con el culo al aire, se me ha quedado la bola de cristal sin pilas ;-).
Efectivamente. Yo, al igual que el 99% de la gente que cambia a Linux, no volvería a Windows aunque Bill Gates me pusiera una pistola en la cabeza.
Supongo que tendrá cosas mejores que hacer. Yo llevo tiempo usando ambos sistemas operativos (GNU/Linux en concreto desde 1999) y no me pasa nada por usar Windows (por si acaso aclaro que tengo una licencia legal de Windows XP). De hecho también me he instalado la beta de Internet Explorer 7, para ver qué tal va.
La página del MAP (Ministerio de Administraciones Públicas) pide «Windows 98 o superior» e «Internet Explorer 5.5 o superior» para ser vista correctamente… Menudo palo en las ruedas de la bici de mi fantasía de «si no lo quieres no lo uses», ¿no?.
Pues es problema del MAP, no de Microsoft, !quéjate!. Como anécdota, comentar que me he quejado a cuantas administraciones públicas he podido acerca del uso de formatos cerrados y cerrados (recuerdo una a Tráfico para poner una reclamación, porque tardaron la leche en renovarme el carnet de conducir). Cuando me han contestado (diciendo que «muy interesante y bla, bla, bla»), lo han hecho con un documento MS Word.
Casi todo esto se olvidará si al final el vista sale al mercado y es güeno.
Pocas cosas deben tener un efecto tan rapido e importante en la productividad de las sociedades occidentales como los programas de microsoft (aunque tienen que correr en cacharros adecuados que hacen otros). Supongo que por eso el tio bill se pueden permitir gastar 6.000 millones de € en R+D
Eso si ninguna situación dominante es sostenible indefinidamente………. aunque los teclados siguen teniendo la distribución qwerty
No puedo dejar de recomendar leer este largo artículo sobre la historia, defectos de diseño, e intentos de «dominación mundial» de Microsoft.