Re: [escepticos] El código abierto

José Á. Morente joseangel en morente.org
Jue Oct 15 14:01:02 WEST 2009


2009/10/15 Adria Comos <AdriaComos en dorna.com>:

> Si todo el software fuera propietario, pero sin monopolios, seguramente este efecto no se daría.

Discrepo. El software de gestión de mi compañía no goza de posición
mopolística (ni de coña) y el hecho de que sea cerrado nos está
provocando problemas gravísimos, que serán una nimiedad al lado de los
que tenemos si la empresa que actualmente lo mantiene termina por
desaparecer.

> (1) En primer lugar, el código fuente (Java, C++, Pascal, etc...) es una traducción de una idea a un lenguaje para que una máquina la ejecute (es comunicación humano-máquina, y no humano-humano).  Aun considerándolo una forma de transmitir conocimiento, no es ni mucho menos la más óptima, porque ese lenguaje no está diseñado para eso (llevando la idea muy lejos también se podría decir que el código hexadecimal de un ejecutable también sería conocimiento...pero a ver quien se atreve!).

El conocimiento es información. Y lo que se codifica en un lenguaje de
programación (desde Java hasta una máquina de Turing, también lo es).

> (2) En segundo lugar, el código, más que conocimiento, es una implementación particular de ese conocimiento (es una representación parcial del conocimiento que hay detrás, que está aplicada a una situación concreta)  Es una especie de "conocimiento ensuciado por las circunstancias".  Incluso siendo correcta tal implementación (que nada lo asegura), puede que

Es mucho más que eso. El simple hecho de que una condición de salida
de un bucle esté mal comprobada, ya es una información que necesitamos
saber para solucionar un programa que no funciona (y por ende para
poderlo arreglar).
Tú estás reduciendo el concepto "conocimiento" sólo a la información
tratada conceptualmente (o quizás formalmente). Sin embargo, la
implementación también es información en sí misma.

> (Por ello, pienso que algunos filósofos del código abierto (p.e, Richard Stallman) dan demasiada importancia al código, cuando lo importante de verdad es el conocimiento detrás de ese código.  Es el que te permitirá entender el problema más allá de cómo

No. Son importantes ambas cosas. El conocimiento previo anterior al
código es necesario para poderse aplicar en más casos y para ser
utilizado en otros supuestos. El código (como implementación) también
es necesario ya que de éste depende que el programa funcione, que no
funcione, o cómo funcione. También de la implementación dependen
factores como la escalabilidad, la modularidad o la interconexión (3
conceptos que en el caso particular de mi compañía, nos están causando
sufrimiento infinito por no tener acceso al código).

>pequeños cambios (los dichos de "sin entrar a fondo").  Pero estos cambios son los típicos "parches" o "remiendos" puntuales que sirven para salir del paso, pero que a la larga hacen que un código se desmorone.  Para resolver un error de forma efectiva,

O, si los publicas, sirven para que el código evolucione y mejore.

>motivos (incluso experiencias personales propias que tú nunca tendrás) P.e: un programa que utilice Fourier no te explicará la >transformada de Fourier ni fundamentos sobre tratamiento de señales, y mucho menos si alguien ha utilizado la transformada en

No, pero si te puede enseñar cómo implementarla más eficientemente (o
más eficientemente para un supuesto específico, por ejemplo).  Y
también te servirá para que puedas programar otra aplicación de
tratamiento de señales sin tener que reescribir de nuevo algo que ya
han hecho otras personas, en definitiva, no reinventar la rueda.

> Con (1), tenemos que para transmitir el conocimiento lo mejor es un libro de texto de toda la vida que hable del tema.  Con (2)

Nadie ha pretendido sustituir los libros por los programas de código
abierto. Al menos no creo haber leído en ningún sitio esa proposición.

>que el código es como mucho "conocimiento ensuciado por las circunstancias".  Y aparte, con (3) que tampoco podrás

¿Y por qué no "enriquecido" por las circunstancias? ¿No puede ser que
se den ambas situaciones?

>transmisión de "conocimiento sucio" y de forma más costosa que por métodos tradicionales.  Aparte, si se tomase como norma >general su utilización indiscriminada sin control, tendería a generar código menos óptimo y mal parcheado.

¿Indiscriminadamente y sin control? Sí... por eso plataformas como
MySQL o servidores como Apache están tan descontrolados y funcionan
tan mal que nadie los usa en el mundo...

> Total: lo mejor si encuentras un error, envía un mail al equipo que ha creado el software (sea empresa o grupo de amigotes).  Y

¿A Microsoft?

>como sea".  Ahí el código abierto sí es una ventaja: como  solución de emergencia ante eventualidades de ese estilo.  Pero >como filosofía general, el código abierto pienso es irrelevante e incluso perjudicial depende de cómo se tome.

Pues la tendencia general es precisamente lo contrario a lo que tú
propones. Incluso los gigantes de la informática (exceptuando MS)
están arrimándose al opensource (si te parecen irrelevantes compañías
como Apple, Oracle, Sun, IBM o Novell, pues... entonces me retiro de
la conversación).

-- 
http://misshapenreality.blogspot.com/


Más información sobre la lista de distribución Escepticos