sábado 10 de mayo de 2008

Saturday Night Live!

Hola a Todos,

Hoy escribiré algo sobre programación; espero que no se aburran con esto.

De partida, hay que explicar el título de este post. Conocí Symfony Project el año 2005, cuando desarrollaba aplicaciones en Ruby on Rails para una empresa regional. Fue a través del blog de un desarrollador de Ruby on Rails que estaba probando una alternativa en PHP. El post se titulaba "No Ruby Tuesday" (No será martes de Ruby).

Pues hoy, aunque no es martes sino sábado, probaré una experiencia similar, pero ahora soy declarado desarrollador PHP, y lo que probaré es una de las mejores cosas de Microsoft, que es el Framework .NET, la base de su plataforma Windows Live!... Pensé que Saturday Night Live! sería un buen nombre para esto.

¿Por qué hago esto? Porque si bien en el pasado estudié Visual Basic y ASP.NET en la academia Microsoft mientras era alumno de INACAP, e inclusive dicté clase sobre el Framework .NET, en la actualidad me siento incapaz de desarrollar algo en este lenguaje.

Para empeorar un poco las cosas, doy mi exámen de título el día 16 de mayo... O sea, debo hacerlo sí o sí. Y por el contrario de lo que creen, no me desagrada para nada la idea de desarrollar algo en .NET, pues considero que es una buena plataforma. Por ende, no puedo trabajar con Microsoft Visual Studio 2008, debo obligatoriamente trabajar con la versión 2005 y el Framework .NET 2.0

Mauricio Gómez me dijo que en Santiago habían hecho una comparativa de .NET 2008 con un equipo de fútbol. Y utilizaré esta forma para explicar un poco qué es lo que hay en .NET cuando uno quiere proporcionar una solución para una empresa. Difiere, lógicamente, de la demostración que se hizo, pero intentaré darle un orden lógico.

Arquero:
  • SQL Server: Si le pasan goles a la base de datos, estamos mal.
Defensas:
  • .NET Framework SDK: (Defensa Central). Aquí se centra todo el trabajo del resto del equipo. Una buena defensa debe ser proactiva y estar atenta a todo.
  • .NET Runtime Framework: (Al costado derecho). Permite la ejecución del trabajo en entornos donde no esté el SDK.
  • .NET Mobile Framework: (Por el flanco derecho). Hace que la salida en espacios pequeños (como celulares o PDA's) sea posible.
  • Internet Information Services: (Por el flanco izquierdo). Permite cubrir las salidas por aire (Aplicaciones de Internet).
Mediocampo:
  • Visual Studio .NET: Volante de creación y contención. Permite la creación de jugadas por tierra (Aplicaciones de Escritorio), por aire (Aplicaciones de Internet) y comunicaciones entre ambas (XML Web Services), además de ser el primer soporte para el resto de las aplicaciones.
  • Expression: Más creación, jugadas lindas (sitios Web y un set gráfico).
  • Microsoft Developer Network: Contención. Cuando hay problemas, se presenta como un salvador.
Atacantes:
  • SharePoint: Centro delantero. Especialista en aire (Internet).
  • Codeplex: Alero, soporta todas las jugadas y permite la creación de oportunidades en el exterior.
  • Windows Live: Alero, permite conectar los servicios y el terreno.
Cancha:
  • Microsoft Windows
De este equipo de fútbol, podemos decir una cosa: Microsoft Visual Studio es un muy buen equipo, bastante sólido, pero la cancha de futbol... es horrible y está llena de hoyos.

jueves 8 de mayo de 2008

De las peleas, el Open Source, el Software Propietario y mi posición al respecto.

Hola a Todos,

No me referiré a los eventos ocurridos en un lugar no muy lejano en una fecha no muy lejana. Es pelea de perros callejeros, y a veces es bueno dárselas de perro lanudo, sin meterse en discusiones que no llegan a ningún fin concreto, más que lograr el desprestigio de dos grandes y polarizados bandos.

Uno es el bando del software libre, en el sentido no open source de la palabra: aquellos que abogan por el software "gratis" únicamente porque es gratis y da la libertad de elegirlo sin temor a reclamar...

El otro es el bando del software propietario, abanderado, lógicamente, por Microsoft, en el pleno sentido de la palabra: aquellos que gustan de las grandes corporaciones porque tienen dinero para invertir en software y actividades anexas.

Ahora, ¿por qué digo "software libre no open source"? Si bien, todo el software de código abierto cumple con las libertades del software libre según Richard "Diva" Stallman, no todo el software libre cumple con las normativas que rigen al software de código abierto. Por lo tanto, no se confundan con esto. Es mejor leer las definiciones.

Para ponerles en contexto, es importante hacer esta diferencia sin necesidad de decir "que el software libre es malo", porque no es 100% exacto, o "que el software open source es un negociado para lucrar con software libre", porque tampoco es 100% exacto.

El Lado Comercial de la Fuerza: Software Propietario.

En mis varios años como usuario (y desde la perspectiva del usuario), siempre pensé que el software libre sería una buena salida a futuro. Windows 98 tenía más fallos que Windows 95 (o por lo menos, fallos más serios), y Windows 2000 no era algo que gustara al usuario promedio, por su bajo desempeño en tareas comunes para cualquiera (no está optimizado para multimedios, y ejecutar un juego es un parto).

Muchos creímos firmemente que Windows XP sería la muerte de Microsoft, y al parecer apuntamos con el dedo diciendo "se los dijimos" cuando Blaster y Sasser evidenciaron la falta de seguridad de RPC. Sin embargo, hubo muchas soluciones que permitieron que el usuario no tuviera tantos problemas. El resultado, XP ha sido la mejor versión de Windows considerando las tecnologías existentes en ese tiempo.

Dicho esto, debo decir que aprendí a usar XP y creo que lo manejo lo suficiente como para que funcione bien (muchos de mis amigos a los que Linux les da urticaria me preguntan cómo solucionar tal o cual cosa en Windows XP, a pesar de que saben que desarrollé mucho tiempo en Linux).

Y como lo aprendí, puedo decir con autoridad (toda la que me confiere el ser un analista programador con conocimientos de sistemas operativos y su funcionamiento interno) que no me gusta... lo encuentro lento e inusable, y muy poco personalizable. Para qué hablar de portabilidad. El navegador Web que tiene por defecto (Internet Explorer 6) no soporta estándares avanzados. Microsoft Office 2003 es un formato propietario, difícil de parsear. Pero aunque no me gusta, tiene cosas buenas. Por ejemplo, la integración que logra el Framework .NET con el sistema operativo es algo digno de destacar, así como el desempeño de SQL Server 2005 y la interfaz de Office 2007.

Sobre Windows Vista, pues... no hay comentario posible. No me gusta. Con todo lo que consume de memoria, podría hacer mucho más. Probé por un rato la versión Ultimate, que es la que tiene mi notebook personal (que por cierto, ya ni lo uso, lo tiene mi novia para su tesis... en lo sucesivo intentaré desprenderme de ese notebook y me compraré algo más profesional y que funcione bien). Como no lo he usado tanto tiempo, no puedo hablar más sobre él.

El lado no comercial de la fuerza: Software Libre

Llevo usando Linux desde 1995. Esto es, tres años antes de que se creara la iniciativa del código abierto (Open Source Initiative). Por ende, en mis tiempos no se hablaba de software de código abierto, sino que software libre. Y no había difusión a usuarios, más allá que la de comunidades y empresas cerradas.

Rara vez se encontraban empresas que ofrecían soporte, pero cada vez aparecían más. Sin tener mucha idea sobre negocios relacionados con la informática (en realidad, sin tener mucha idea sobre negocios), realmente no me interesaba mucho lo que ocurriera. Yo usaba mi software, si se caía, intentaba buscar soluciones por las mías y no faltaba la comunidad que ya había tenido esos problemas.

Linux 2.2 tenía mucho menos soporte que Linux 2.4, y en general no era algo que le gustara al usuario por lo mismo. Era muy poco probable que tarjeta X de video funcionara bien, y para qué decir del sonido. Sin embargo, muchos de los que vimos crecer a Linux desde esos tiempos, creímos que 2.4 sería el repunte de nuestro sistema operativo favorito. Dijimos lo mismo de 2.6, pero algunos hasta habíamos perdido la esperanza y continuamos con 2.4, pues a nosotros nos funcionaba bien.

Sin embargo, muchas empresas comenzaron a preguntar, y varios usuarios de software libre, que aprendimos con software libre nos profesionalizamos adoptando el modelo de código abierto, que era una forma más profesional de programar software libre por comida. Esto permitió que en la actualidad los usuarios no tuvieran tantos problemas. El resultado, cada vez me impresionan más las nuevas distribuciones; de las últimas que he probado, puedo hablar con fe de openSUSE y Mandriva.

Tal como aprendí a usar XP, sé usar software libre, y creo que lo manejo lo suficiente como para que funcione bien. Y como lo aprendí, puedo decir con autoridad (toda la que me confiere el ser un desarrollador de software) que no me gusta su modelo de desarrollo basado en la comunidad, cerrado a las plataformas libres, sin ofrecer soporte al nicho de mercado que quizás quiere migrar, pero no les dejan. Sí, hay software libre para Windows, pero no deja de ser una pesadilla el planteamiento filosófico que hay detrás.

¿Qué hay del Open Source?

En medio de la pelea, generalmente apoyando al software libre en público, está el software de código abierto. ¿Qué ventajas tiene? Varias. Por sobre ambos. ¿Desventajas? Ninguna, pues a mi parecer, es capaz de aprovechar lo mejor de ambas partes.

En primer lugar, el software de código abierto implementa un modelo de negocios que resulta más conveniente que el software propietario para las empresas. Es así como, a través de los servicios (Google es un excelente ejemplo, siempre lo cito en mis charlas), hay programadores que no sólo tienen qué comer, sino que tienen una excelente calidad de vida.

En segundo lugar, el software de código abierto es una muy buena forma de llegar a otros mercados; su enfoque siempre ha sido el que el software no es el fin, sino el medio para conseguir un fin, cualquiera que sea; a diferencia de las disonantes opiniones de los fanáticos del software libre, quienes muchas veces son inexpertos en temas de software. El Open Source es un excelente trampolín para ofrecer productos y servicios, demostrando la calidad a través de la transparencia del código y la alta estandarización.

Con estos dos puntos anteriores, se ha logrado captar el interés de muchas empresas (Oracle, IBM, HP, NEC, Sun Microsystems, al vuelo) por apoyar la iniciativa del software de código abierto.

¿Qué han hecho estas empresas? Poner la maquinaria comercial a disposición del Open Source, dictar los estándares de calidad que deberían cumplir y hacer posible que se cumpla una condición importante: la neutralidad tecnológica.

La maquinaria comercial permite interactuar con los usuarios finales de tal manera que el resultado final sea agradable, se mejoren las interfaces (comparen KDE 3.5 con KDE 1.2 y sabrán de lo que hablo) y se aprovechen mejor las tecnologías (yo me acostumbré a usar Compiz Fusion, lo encuentro muy práctico). Además, genera una cantidad de publicidad tal que la gente común cada vez está más cercana a este fenómeno de los negocios.

Los estándares de calidad son otro punto a favor. No sólo se ha mejorado la forma de escribir código, también se ha visto beneficiada la calidad de la prestación de servicios en todo orden de cosas.

Y lo que más me ha interesado en este momento, la neutralidad tecnológica. Esto elimina la dependencia de un único proveedor, algo que podría ser malo para un proveedor (sólo si es malo en su servicio), pero genera una cantidad de trabajo y una competencia tal que se eleva la calidad de la informática a nivel global.

¿Quién gana con ésto? El usuario final, que puede acceder a la información de una manera más rápida, segura y eficiente; que es capaz de decidir qué hacer y cómo se siente más cómodo trabajando.

Sin embargo, para que el usuario gane, debemos comprender que el software libre y el software propietario no deben entrar en competencia. Debemos comprender que debe existir la interoperatividad entre los sistemas, y la competencia entre éstos debe ser una competencia leal. Es horrible hacerse famoso por el hecho de tirarle barro al resto (al estilo del programa chileno llamado SQP); es mucho mejor hacerse famoso por aportar, a cualquiera de los dos mundos mencionados arriba, con el que cada uno se sienta más cómodo.

La Gran Pregunta

¿A Rodrigo Fuentealba se le dio vuelta la chaqueta, hablando no tan mal de Microsoft? Respuesta definitiva: ¡¡¡NO!!!. No me iré a pasear a Microsoft buscando fotografías con los gerentes; prefiero gastar [memoria SD|memoria flash|rollo de celulosa] en sacarme fotos con las mujeres del Team Brahma.

Me basta con saber qué es bueno para mí, saber usarlo bien, guiar en algo a la gente que se interese por seguir el camino del software Open Source (dentro de mis posibilidades, claro está), y disfrutar de compartir con una comunidad de gente con experiencias y conocimientos distintos, con ganas de hacer cosas distintas.

Este planteamiento fue lo que me hizo tomar en mis manos el ofrecimiento de Pablo Campos, profesor del DUOC, para dictar una charla en un evento que se realizará próximamente. Creo que es mejor hacer una pequeña cosa bien y reafirmar mi posición, que hacer dos grandes cosas mal y quedar como un imbécil.

Saludos.