Re: [escepticos] El código abierto

Luis Rodriguez luisrodrruiz en gmail.com
Jue Oct 15 15:32:09 WEST 2009


Hola:


> Respecto al código y si es conocimiento o no... ojo: tener acceso a
> programas e internet es una cosa, acceso al código fuente de los programas
> es otra, que es a lo que me refiero.  Dentro del marco de la segunda idea,
> mis objecciones a "el código es conocimiento" van por los siguientes
> derroteros:
>
> (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 código fuente no deja de ser un lenguaje formal y como tal es adecuado
para especificar algoritmos. Creo que estaremos de acuerdo en que un
algoritmo es conocimiento. Por tanto una especificación de un algoritmo en
un lenguaje de programación puede perfectamente considerarse conocimiento,
aunque no sea siempre el mejor modo de formalizar este conocimiento.


>
> (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
> sea sólo una de las múltiples formas de implementarla "correctamente", la
> cual igual ni es la mejor para nuestra situación (de hecho, normalmente no
> es así).  Si somos "puñetitas" y queremos adaptarla a nuestra situación para
> que sea óptima, la tendremos que implementar.  Pero para hacerlo lo mejor
> posible, lo importante es entender ese conocimiento "de detrás", al cual no
> llegaremos de forma óptima con el código como dije en el párrafo anterior
>

Evidentemente en ocasiones sucede lo que comentas pero creo que la
generalización no es correcta. El código fuente puede que no sea la mejor
manera de formalizar el conocimiento pero en ocasiones es perfectamente
capaz de capturar sin pérdida de generalidad el algoritmo que implementa.

(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 lo haya implementado X, y progresar
> hacia nuevas ideas.)
>

 No siempre es así. No es la primera vez que me encuentro con la situación
en la que alguien incapaz de entender la formulación matemática de algún
concepto, lo entiende (y es capaz de aplicarlo posteriormente) tras echarle
un vistazo a una implementación de dicha formulación. ¿No es eso transmisión
del conocimiento? (Ojo, que yo generalmente prefiero las matématicas como
formalismo antes que cualquier lenguaje de programación)


> Para resolver un error de forma efectiva, siguiendo una línea coherente,
> hace falta el conocimiento emic, que no sólo es el de detrás del código: es
> además la forma y el porqué el equipo de programación ha tomado las
> decisiones de diseño e implementación particulares, en la cual hay muchos
> 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 un momento de iluminación en un problema que no
> tenga nada que ver con el tratamiento de señales, simplemente porque es
> aplicable, a él se le da bien este tipo de problemas, y se le encendió la
> bombilla.
>



 A veces, los programas fallan por simples errores


>
> 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) que el código es como
> mucho "conocimiento ensuciado por las circunstancias".  Y aparte, con (3)
> que tampoco podrás corregirlo adecuadamente.  Por ello pienso que considerar
> código como "conocimiento" de forma general, acabaría generando 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.
>
> 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 evidentemente, si
> por cualquier circunstancia eso no es posible, buena solución es
> efectivamente tener el código y "salir del paso 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.
>
>
> (*)
> Etic: son las conclusiones que hace un observador sin conocimiento del
> significado.  Ejemplos:
> - "había un señor bailando con una banana en la cabeza"
> - "esa función hace una integral y devuelve el resultado dividido por 7"
> - "el puntero está a null y me peta: le pongo un "if" y aquí no ha pasado
> nada".
> - "esta función me devuelve el doble de lo que espero. Solución: lo divido
> por dos y de coña"
>
> Emic: son las conclusiones del que conoce el significado de lo que se ve.
> Ejemplos:
> - "el señor de la banana es el dios Luna y está bailando para crezca sano
> el melón tardío"
> - "esa función es el teorema de Smith para calcular el ratio de dispersión
> de la onda entre pi y 2 pi cuartos, que pa lo que quiero, me va de narices.
> Y me sobra el código de cuando se dispara a infinito porque en mi situación,
> nunca se dará"
> - "el puntero está a null...pero eso quiere decir que el objeto mCentauro
> tiene los Pruones a 7 o menos.  Se los subo y lo reintento, que así evito
> una colisión de los Pioninos y los Registros Virtuales Toroidales."
> - "Esta función me devuelve el doble de lo que espero. Ah, coñe, que lo
> estoy multiplicando por la altura de la columna norte cuando es la suroeste"
>
>
>
>
>
>
>
> -----Original Message-----
> From: escepticos-bounces en dis.ulpgc.es [mailto:
> escepticos-bounces en dis.ulpgc.es] On Behalf Of david en puntoque.net
> Sent: Thursday, October 15, 2009 10:43 AM
> To: 'Lista Escépticos'
> Subject: RE: [escepticos] El código abierto
>
> La estrategia comercial de sacar versiones nuevas llenas de opciones
> inútiles a mi me desespera especialmente. Aunque hay aplicaciones en las que
> alguna de esas opciones nuevas si que tienen sentido, por ejemplo en las
> aplicaciones 3D los avances son reales, aunque quizás no deberían de ser
> anuales, en otros casos son específicamente molestos y desagradables:
> Necesitas invertir mucho más tiempo del que debería de ser preciso para
> alcanzar a veces incluso menos objetivos.
>
> Word es un caso extremo, el 99,9% (en una encuesta que me acabo de
> inventar, si, pero que seguro es real) de los usuarios usa solo opciones que
> ya estaban en la versión de hace 5 años, pero resulta que tienes problemas
> para abrir el documento con la versión del año pasado.
> Y si hablamos de sistemas operativos ya es para llorar.
>
> En lo que no coincidimos es en eso de que el código es conocimiento. Y
> tanto que lo es, o al menos así lo veo yo: A día de hoy tener acceso a
> Internet, a un ordenador y al uso de programas es condición sine qua non
> para hablar de acceso a la cultura y a las oportunidades.
> Pero seguro que tienes buenos argumentos en contra que me encantaría leer.
>
>
> -----Mensaje original-----
> De: escepticos-bounces en dis.ulpgc.es [mailto:
> escepticos-bounces en dis.ulpgc.es]
> En nombre de Jose Luis
> Enviado el: miércoles, 14 de octubre de 2009 19:29
> Para: Lista Escépticos
> Asunto: Re: [escepticos] El código abierto
>
> Adria Comos escribió:
> > Lo que no estoy deacuerdo es con ciertos argumentos filosóficos de
> > algunos
> que lo defienden: por ejemplo, no estoy nada deacuerdo en que "el código es
> conocimiento", o argumentos como "el tener el código va muy bien porque así,
> si falla, tu mismo te lo puedes arreglar".
>
> Estoy de acuerdo en que eso de que "tu te lo puedes arreglar" que se lee
> tanto es una absoluta tontería; la gran mayoría de los usuarios no saben
>  "arreglarselo" y muchos programadores no vamos a perder el tiempo necesario
> para encontrar el problema.
>
> 1) En lo que si creo es en la cooperación, en no hacer las cosas dos veces;
> si esta hecho y el tiempo de desarrollo es superior al tiempo que necesito
> para comprender su código es más eficiente usarlo.
>
> 2) Con código abierto puedes hacer personalizaciones y pequeños cambios
> marginales en un programa para adaptarlo a tus gustos sin necesidad de
> entrar a fondo en el código, es decir, en muy poco tiempo.
>
> 3) Desconfío de las aplicaciones cerradas, puede que no lo recompile nunca,
> pero quiero tener la oportunidad de hacerlo, de verificar el código si
> quiero. De hecho me parece no sólo inmoral (por el gasto) sino también
> peligroso que las Administraciones Públicas utilizen software privativo.
>
> 4) La inmensa mayoría de los programadores no vendemos el software,
> vendemos (o estamos a sueldo por ello que tanto me da) el tiempo de
> desarrollo y adaptación del software para una cuestión concreta y su
> mantenimiento.
>
> Y por último, la mayoría de los cambios de hardware están propiciados por
> compañias (Microsoft vamos) que necesitan vender una nueva versión cada poco
> para mantener la entrada de dinero y llenan su software de opciones
> innecesarias que nadie utiliza. Siempre me acuerdo de una programadora (que
> empezó programando cintas con agujeritos) y me decía, ante mi entusiasmo
> juvenil por los cambios innecesarios, "lo mejor es enemigo de lo bueno"
> ahora, veinte años después, no sólo lo recuerdo sino que suscribo.
>
> >
> > Pero bueno: como con los anarquistas, de defensores del código abierto
> > hay
> de muchos tipos y colores.  Algunos estoy más deacuerdo y los encuentro
> razonables, y otros lanzan discursos interminables aprendidos de memoria,
> pero que el que lo suelta ni siquiera sabe en qué consiste crear un programa
> (entre otras cosas porque a veces, ni es programador).
> >
>
>
> --
> "Un cobarde es una persona en la que el instinto de conservación aun
> funciona con normalidad." Ambrose Bierce - Diccionario del Diablo
> _______________________________________________
> Escepticos mailing list
> Escepticos en dis.ulpgc.es
> http://correo.dis.ulpgc.es/mailman/listinfo/escepticos
>
> _______________________________________________
> Escepticos mailing list
> Escepticos en dis.ulpgc.es
> http://correo.dis.ulpgc.es/mailman/listinfo/escepticos
> _______________________________________________
> Escepticos mailing list
> Escepticos en dis.ulpgc.es
> http://correo.dis.ulpgc.es/mailman/listinfo/escepticos
>


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