Disclaimer: This is a personal web page. Contents written here do not represent the position of my employer.

Saturday, October 01, 2005

 

Artículos interesantes

Es interesante descubrir a veces cómo existen interesantes artículos, aunque antiguos, en internet, que te pueden enseñar muchas cosas. Hoy le ha tocado a How Microsoft Lost the API War.

En principio, parece un título esperanzador para toda la gente que amamos el software libre, pues en resumen viene a decirnos que Microsoft está de capa caída en el mundo del desarrollo. En mi opinión, Joel está algo equivocado en esta argumentación, sobre todo teniendo en cuenta lo que ha hecho Microsoft con .NET (publicar sus especificaciones como un estándar ECMA) y las consecuencias que ello ha traído (que se estén creando compiladores CLI para los más variopintos lenguajes, de los cuales sólo se aprovecha la sintaxis y se usa la API de Microsoft). Por el contrario, esto no significa que Microsoft gane un monopolio con su API, porque como todos sabemos, Mono la está implementando con código abierto y libre. Por tanto, yo podría sacar una conclusión de todo esto, y no es que Microsoft haya perdido la guerra de las APIs, sino que la ha ganado o la va a ganar, pero a costa de facilitarles las cosas al software libre, de manera que la consecuencia de ello no tiene porqué estar ligada a un aumento de la cuota de uso de productos Microsoft en el ámbito del desarrollo de software.

Lo que me ha parecido más interesante de descubrir en este artículo ha sido el tema de las "dos caras" de Microsoft, las cuales se contraponen entre sí y luchan por su dominio. Es aberrante pensar que una de esas caras consistía en salvaguardar a toda costa la compatibilidad hacia atrás de los programas, desarrollando hacks y workarounds en los sistemas operativos para que los programas que funcionaban en versiones anteriores y no en las actuales (por culpa de un mal uso de la API del sistema operativo) pudieran seguir funcionando. Afortunadamente, la otra cara de Microsoft que se opone a estas prácticas, y que aboga por la renovación de las APIs a costa de la compatibilidad hacia atrás (para así obtener un mejor resultado) le está ganando terreno a la primera.

También me ha gustado la forma que ha tenido Joel de analizar las ventajas de los lenguajes sin aritmética de punteros (como C# o Java), y creo que es muy acertado usar el siguiente símil para comparar dos lenguajes como C# y C++: la diferencia entre éstos es análoga a la diferencia que existe entre los coches de cambio automático y los de cambio manual; es raro el caso en el que una buena transmisión automática resulte menos adecuada que la transmisión manual.

Por último, sólo indicar que es interesante el modo con el que analiza la historia de la evolución de los lenguajes de desarrollo de Microsoft: antes se disponía de Visual Basic y C++. El primero, sin aritmética de punteros (administración automática de la memoria) pero con una orientación a objetos pobre; el segundo, con una orientación a objetos robusta, pero poco productivo por el hecho de la complejidad que supone la aritmética de punteros (administración manual de memoria). De alguna manera se puede decir, entonces, que C#, el lenguaje resultado de la evolución natural de los lenguajes de Microsoft, no es sólo una mezcla entre C++ y Java, sino también representa una evolución de Visual Basic en cuanto a propósitos se refiere (nunca en cuanto a sintaxis, la cual, por cierto, me parece mucho más limpia que la caótica de VB/VB.NET).

Labels: , , ,


Comments: Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?

Categories

RSS of the category Gnome
RSS of the category Mono
RSS of the category C#
RSS of the category Programming
RSS of the category Mozilla
RSS of the category Web Development
RSS of the category Security
RSS of the category Open Source
RSS of the category Engineering
RSS of the category Misc
RSS of the category Politics

Contact with me:
aaragonesNOSPAMes@gnNOSPAMome.org

Archive
My Photo
Name:
Location: Hong Kong, Hong Kong
Follow me on Twitter