viernes, abril 17, 2009

Microsoft, you did it again !

A principios de este año, se origino una polémica por una parte de la comunidad de desarrolladores de Microsoft, en relación a la mala calidad de diseño y código de la aplicación Oxite, la cual inicialmente en su sitio web citaba que era una aplicación que podría ser usada como guía para el desarrollo de aplicaciones con el framework ASP.NET MVC.

La polémica causo que se quitara la leyenda de que era una aplicación de referencia y que entrara sobre una fuerte re-factorizacion para cubrir los puntos criticados por la comunidad.

Pues, Microsoft lo ha hecho otra vez. En esta ocacion Microsoft libero en su centro de arquitectura la aplicación Kobe: Kit de recursos de desarrollo y servicios Web 2.0; la cual segun su descripcion es:

El proyecto Kobe es un kit de recursos de iniciación para la planeación, arquitectura e implementación de aplicaciones y servicios Web 2.0 que usen la plataforma de Microsoft. Este kit de recursos tiene como enfoca a los que toman decisiones tecnologicas, arquitectos de soluciones, gerentes de desarrollo y programadores que aspiran al desarrollo de empresas "Startups" y de negocios - corporativas, que buscan invertir en nuevas aplicaciones/servicios Web 2.0

Hasta aquí todo esta bien, pero el problema se origino una vez mas cuando la comunidad comenzó a analizar el código fuente de Kobe y se encontró con que repitió muchos de los errores iniciales de Oxite, ademas de introducir sus propios errores, simplemente voy a lista algunos de los puntos que se trataron ya en los blogs en Ingles:

  • Controladores "Gordos", demasiado código dentro de los controladores
  • Métodos complejos y muy largos
  • Uso de cadenas de texto "mágicas"
  • Un controlador puede regresar diferentes vistas bajo una gran cantidad de condiciones
  • Bloques try-catch usados de forma absurda
  • No hay separación en la lógica y la vista
  • Uso de dos diferentes frameworks de JavaScript
  • Manejo extraño CSS
  • Inconsistencia en el código y los nombres de variables
  • Código que nunca se ejecuta
  • Abuso de ViewData
  • Entre otros muchos mas
El día de hoy Microsoft opto por retirar el código fuente de la aplicación, usando la siguiente nota como explicación:

Esta aplicación de ejemplo esta siendo actualizada para incorporar la retro-alimentación de la comunidad. Una versión actualizada va a ser publicada nuevamente en corto tiempo.

Mi pregunta, es ¿Porque?, ¿Porque Microsoft? ¿Porque no se tomo como base la experiencia previa con Oxite?, ¿Porque si gente como Scott Hanselman, Phil Haack y Rob Conery, que trabajan para Microsoft y que en Mix09 evangelizaron sobre como debe de ser la anatomía de una aplicación ASP.NET MVC no se tomaron en cuenta para desarrollo de Kobe?, o ya de perdida los desarrolladores de Kobe hubieran comprado el libro "Profesional ASP.NET MVC 1.0", en donde también participa Scott Guthrie ademas de los antes mencionados.

¿Que esta pasando, acaso las aplicaciones de referencia de Microsoft cada vez son mas malas? o ¿Ya antes eran así, solo que nadie levantaba la mano para criticarlas?, o ¿Simplemente la comunidad hace mucho escandalo por detalles insignificantes?

Sitios donde se comenta sobre Kobe:

Ayende - Kobe – In the nuts & bolts and don’t really liking it
Karl Seguin - Kobe - Oh Dear Lord Why?!
Kazi Manzur - KOBE – MS NEW WEB 2.0 RESOURCE KIT IN ASP.NET MVC AND MY THOUGHTS
Phil Haack - Code Sample Taxonomy


4 comentarios:

Fernando dijo...

Quizá es un buen ejemplo de que tan fraccionado esta Microsoft y la poca comunicación que tienen entre su gente como para no incluir a las personas que estan mas metidas en el desarrollo web como las que mensionaste.

Van dos "strikes" esperemos que ahora si aprendan de ello.

Saludos.

jgamba dijo...

Ese es el tipo de cosas que hacen tomar más conciencia de la importancia de movimientos como ALT.NET que nos motivan a no depender de solo esa mainstream. Los grupos de usuarios desarrollan cada vez más y mejores recursos.

Unknown dijo...

Cuando vi el código de Oxite por primera vez también me pareció algo difícil de entender. No le dedique mucho tiempo tampoco.

Nada se compara a blogengine.net ;)

Kementeus Xtian dijo...

@Fabian
BlogEngine.net no tiene NADA que ver con Oxite, compararlo es como comparar peras y manzanas.
La lectura del codigo esta mal, pero creeme, eso es lo de menos.

@jgamba
ALT.NET tampoco es la solución, el problema radica en que la gente lo esta viendo como "el nuevo mesias" y realmente es una simple red o mailing list de impartir conocimiento. Querer adjudicarles papeles de "liderazgo" a alt.net creo que esta en contra de los propositos con que fue creado.

@Fernando
Microsoft es una empresa de 75000 empleados. Luego de revisar el código de Kobe hasta me atrevería a decir que nisiquiera fue escrita en Microsoft. Viola hasta reglas internas de nomenclatura (sin mencionar cuantos capítulos de la guideline de MS) y nisiquiera FxCop la pasa. Para mi que simplemente la outsourcearon a algún partner de MS o la escribió un simio con los ojos vendados.

OJO, el problema principal de la app no es que sea de referencia, ni que este hecha con los pies, ES QUE ES UNA APP REFERENCIA DE ARQUITECTURA!!!