secciones

Linux y la (falta) de compatibilidad binaria

En Velocidad de Escape hay un análisis muy interesante sobre un texto de Miguel de Icaza acerca del problema que supone para los vendedores de software la falta de compatibilidad binaria (y de API) de Linux.

Me ha parecido un análisis bastante justo, cosa que en mi opinión (y que me perdone jomaweb) no suele ocurrir en esa bitácora, que suele dar una visión muy negativa de Linux (entiendo que da esa opinión porque esa es la impresión del autor, no lo critico, simplemente no lo comparto).

Es cierto que Microsoft tiene un buen historial de compatibilidad binaria entre las versiones de sus sistemas operativos. Eso es algo que yo siempre he alabado de Microsoft en cualquier conversación con colegas, del mismo modo que he sido bastante pro-linux en otros temas. En cualquier caso, en mi opinión Icaza no debería confiar tanto en que Microsoft mantenga dicha compatibilidad con su entorno .NET. Desde luego, Microsoft no ha tenido ningún problema en convertir la vida de cualquier desarrollador en un infierno con sus mil y una versiones del API de acceso a base de datos, por ejemplo.

5 Comentarios
jomaweb
jomaweb
5 noviembre 2003, 09:53 — #1
Perdonado
;)
mariscal
18 noviembre 2003, 00:13 — #2
Bueno, no puedo más que discrepar frontalmente con estas afirmaciones que, por lo que veo, se basan en cierto desconocimiento. Vayamos por partes:

* Cualquiera que conozca un poco la trayectoria de Icaza, sabe de sobra que hace tiempo que dejó de ser imparcial. Vamos, que la decisión de hacer una versión libre de .NET ni es casualidad, ni por necesidad, ni la hizo (su parte) gratis precisamente ;)

* Sobre la falta de compatibilidad binaria en Linux, simplemente es falso. Llevo años con Linux y nunca he tenido ese problema. Es más, conozco a mucha gente que lleva muchos más años que yo con Unix y Linux, y tampoco lo han tenido. Por cierto, hasta en otros unices como *BSD se pueden ejecutar binarios de Linux.

* Sobre la falta de compatibilidad entre APIs: exsite POSIX (que para quien no lo sepa es un estándar del IEEE), LSB (Linux Standard Base) y FHS (Filesystem Hierarchy Standard), con lo cual todo queda basado en estándares. Un poquito de Google con estas siglas es algo recomendable.

* Sobre la buena compatibilidad entre APIs de Microsoft, esto vuelve a ser simplemente falso. ¿Qué compatibilidad hay entre 3.1 y 95? ¿entre 95 y NT4? ¿entre 9X/Me y 2000? Muy escasa, por no decir ninguna. Y no sólo eso, dentro de la misma versión de Windows está el dichoso problema de las versiones de las DLL. Si desde luego este no es un problema grave de compatibilidad hacia atrás...

En Windows, por no haber compatibilidad, a veces no la hay ni siquiera de los parches, ni de los parches para los parches. Por no hablar de otras muchas cosas como Directx, etc.

Y en cualquier caso, si hubiera compatibilidad hacia atrás en Windows, ¿de qué te serviría si a los pocos meses Microsoft te obligará a renovar tu licencia?. Sistemas operativos que dejan de tener soporte, agujeros de seguridad que se dejan definitivamente sin resolver, usuarios sin soporte....

Y podría seguir: ¿qué tal está la compatibilidad entre las distintas versiones de Office?

En fin, que cada uno saque sus conclusiones.
Juanjo
18 noviembre 2003, 11:05 — #3
Mariscal, que Microsoft no hace las cosas bien no es ninguna novedad, pero lo que yo les reconozco es que tienen determinadas API's (como el API win32) en la que se basan muchos programas, que han tenido una compatibilidad admirable en los últimos 10 años. Lo cierto es que tengo determinados programas muy antiguos (para windows 3.1) que todavía funcionan cuando los pongo en XP (los programas ni siquiera reconocen los nombres largos de ficheros, pero funcionan). Yo creo que esto ha sido una especie de "carga" para microsoft que les ha obligado a conservar subsistemas antiguos (apis antiguas) solo para contentar a los ISV que desarrollan para windows.

Desgraciadamente las cosas creo que no han sido así para linux. Se debe a dos problemas:

-Como hay una filosofía de que todo se puede recompilar, se tiende a eliminar la compatibilidad binaria en los procesos de desarrollo. Cuando se decide que los binarios a.out están obsoletos, se pasa a los binarios elf. Los programas se recompilan en un momento y las nuevas distribuciones salen con elf. ¿Pero que pasa con los fabricantes que han vendido su software (solo binario) a sus clientes? Sus programas dejan de funcionar en las nuevas distribuciones. Lo mismo ocurrio con el paso de libc5 a libc6.

-En muchos casos las API's son demasiado inmaduras. Un programa para GNOME 1 no funciona en GNOME 2.

¿Quien me iba a decir que yo me vería defendiendo a Microsoft? Es que los blogs dan extraños compañeros de cama :-D

Un saludo.
josefina
josefina
27 mayo 2004, 14:03 — #4
hola buenas tardes esta pagina me parece bastate informativa y a mi me sirvio de mucho de echo me alludo a aprobar una asignatura 200MUCHAS GRACIAS
Juanjo Navarro
27 mayo 2004, 16:26 — #5
Vaya, pues muchas gracias, Josefina. Me alegro de oirlo :-)

Un saludo.

Comentarios cerrados para este artículo

Anterior: Cómo se pronunci@ Siguiente: La fuente de todos mis problemas