RE: [escepticos] El código abierto
Adria Comos
AdriaComos en dorna.com
Jue Oct 15 13:32:51 WEST 2009
Coincido totalmente en que es desesperante ver como los fabricantes sacan novedades inútiles sólo para forzar nuevas compras. Eso no es sólo cosa del software: Intel también lo hizo cuando intentó colarnos su "socket A" ante la presión de AMD. No obstante, quiero remarcar que esto no es tanto una cuestión de si el software es propietario o no, sino de estar en una situación de monopolio de "facto". Si todo el software fuera propietario, pero sin monopolios, seguramente este efecto no se daría.
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!).
(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
(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.)
(3) Aparte, muchos defensores del código abierto no distinguen entre conocimiento etic y emic(*). Saber programar te permite llegar al conocimiento etic de cualquier código, pero no necesariamente al emic. El conocimiento etic te permite hacer 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, 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.
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
Más información sobre la lista de distribución Escepticos