Mostrando entradas con la etiqueta software. Mostrar todas las entradas
Mostrando entradas con la etiqueta software. Mostrar todas las entradas

lunes, 2 de diciembre de 2019

El programador prescindible

La verdad, no sé porqué acabé adquiriendo el oficio de programador. Bueno, tengo algunas sospechas: es lo que demandaba el mercado y yo nunca tuve muy claro a qué quería dedicarme. Así que, cuando todo da lo mismo ¿Por qué no hacer programas...?
Es una tarea entretenida, como hacer crucigramas -aunque creo que sólo habré completado uno o dos en mi vida-. Quizá se parezca más a diseñar crucigramas. Crucigramas tan grandes y complejos que necesites la ayuda de un equipo de personas.
 
Nunca recibí una formación específica en programación -no al menos al nivel que demandan las empresas-. Nos pasa a muchos de los trabajamos en el sector. Así que, hay que hacer grandes esfuerzos para que toda la gente que pasa por los proyectos siga unas pautas y unos estándares que hagan medianamente inteligible el código.
Por tanto, no es una tarea solitaria, tienes que estar continuamente comunicándote con los que forman parte del proyecto. Y, a la vez, requiere una gran concentración. Así que, esas dos facetas entran en conflicto -hablar desconcentra y desconcierta-.
 
A muchos programadores no les gusta hablar y, si lo hacen, es de la misma forma a como escriben el código: preciso y útil. Todo en una línea muy corta y donde cada carácter representa algún concepto -que luego hay que desglosar y desarrollar para saber qué carajos quiere decir-. Algo así como si fueran profetas de una religión revelada.
A mí, no me gusta hablar. Pero me gusta que el código ocupe su espacio, que los nombres de métodos y variables sean descriptivos, que cualquiera que lo vea sepa qué se está haciendo sin tener que buscar en los comentarios o la documentación. Claro que, hay lenguajes que no facilitan nada escribir código de esa manera. Y, además, están las preferencias y la experiencia de cada cual, los giros en la funcionalidad original, las rectificaciones...
-¡La aplicación funciona! -Decimos con voz solemne e irritada cuando alguien nos echa en cara que el código que hemos escrito es una porquería y no hay quien lo entienda.
 
A groso modo, hacer programas no es tan diferente de cualquier otra tarea que requiera un diseño y una construcción. De hecho, arquitectos, ingenieros, mecánicos, albañiles, novelistas... usan términos similares para referirse a sus oficios. Y, por supuesto, también hay mucha variedad dependiendo de a qué sector va dirigida la actividad. No es lo mismo construir rascacielos que casas a ras de suelo -o aplicaciones para un banco que para un colegio-. Y, luego, a cada uno le gusta revestirse de cierto halo místico -o especializado-: el arquitecto artista, el programador diseñador, el ingeniero humanista, el eficiente, el duro, el cruel, el que consigue los objetivos...
El de programador es un oficio con muchas posibilidades, las puedes aprovechar para ganar mucho dinero, para enseñar a otros, para ayudar -software libre-, para lanzarte a la gestión de proyectos, a la dirección de empresas...
Yo, la verdad, nunca le he dado mucha importancia. Estudié teleco y la programación era una cosa así como residual, como que no había que dedicarse a eso -hacerlo era igual a haber fracasado-. Como si un arquitecto se dedicara a construir casas, un ingeniero industrial a arreglar coches, o un informático a reparar ordenadores. Porque hay que aspirar siempre a lo máximo: a presidente de los EEUU. Tener súbditos, gente que obedezca tus órdenes mientras planificas un universo a tu medida. Que también debe ser gratificante... Pero, cuando conoces a Richard Stallman, acabas diciendo: -¡Yo quiero ser como ese! Y odias a todos los ingenieros que has conocido y se han vendido por un puñado de dólares.

Aunque soy muy forofo del software libre, siempre he trabajado en la construcción de software privativo. Porque siempre he sido empleado por cuenta ajena de grandes empresas, capitalistas de manual: se apropian del fruto del trabajo de otros para especular con él en los mercados.
En ese sentido, nunca he sido muy crítico con lo que hago: necesito la pasta y, si no lo hago yo, lo hará otro. Aceptas esa máxima como inevitable y te enfrascas en la planificación y división de tareas, en las estimaciones, las fechas límite, los puntos de integración, la configuración de equipos... y vas rellenando el tiempo documentando y tirando código lo más lógico y sencillo posible... Porque sabes que, ante cualquier problema, tendrás que retomarlo y arreglarlo tú mismo -o, peor aún: tendrás que explicárselo a alguien- y te acabará robando tiempo de tareas más novedosas e interesantes-.

El programador no fabrica armas, no vende drogas, ni contamina mucho el medio ambiente... Fabrica herramientas, que pueden ser utilizadas para hacer el bien o para hacer el mal. Vivimos en una sociedad de consumo: casi todo lo que se hace hoy día es para fomentar e incrementar ese consumo -el mal-. Trabajamos inmersos en ese sistema, trabajamos para él, para su crecimiento y expansión. Y parece que no hubiera otra forma de existencia al alcance de nuestras manos. Uno es capaz de pensar otros mundos posibles... Pero acepta la dualidad entre lo posible y lo real y asume como ineludible que el tiempo de trabajo ha de destinarse a satisfacer las necesidades del capitalismo de consumo. Incluso el tiempo de ocio parece destinado a lo mismo.

Yo tengo amigos y conocidos que hacen cosas maravillosas: arreglan todo tipo de electrodomésticos, sueldan y cortan el hierro, hacen pan, producen aceite, crían sabrosos corderos, construyen y reforman viviendas, cultivan huertos... Pueden presentar su trabajo a los demás y sentirse orgullosos porque son cosas de primera necesidad. Yo nunca he podido enseñar a mis círculos cercanos lo que hago. Lo que hago queda en el microcosmos de las empresas privadas, en la virtualidad de las redes de computadoras, y no trasciende al mundo real.
Así que siempre he tenido un cierto complejo de inutilidad, de que soy prescindible...

domingo, 17 de febrero de 2013

Ptolomeo, Copérnico, paradigmas y cambios sin más.

Ptolomeo diseñó un modelo geométrico para explicar el movimiento de los astros y unas matemáticas que pretendían predecir los diversos fenómenos celestes -con la Tierra como centro del Universo-.
Catorce siglos más tarde, Copérnico creyó que podía mejorar este modelo, que podía dotarlo de una mayor coherencia con la realidad.

Ptolomeo modeló los movimientos del Cosmos utilizando circunferencias, que se asumía era el único movimiento que cabía en el reino perfecto de los cielos. ¿Y por qué iba a pensar de otra manera? Si desde la Tierra todo parecen esferas (el Sol, la Luna, los planetas...) que rotan en torno a nosotros.
Así que, para cuadrar los datos observados, tenía que recurrir a combinaciones de recorridos circulares superpuestos (epiciclos) y astros desplazados del centro (excentricidad) que, prácticamente, permitían aproximar cualquier tipo de curva.

Copérnico no puso en duda el modelo de Ptlomeo -quien era tenido en alta estima: algo impensable hoy día, cuando cualquier objeto o teoría de hace unos años parece superada, obsoleta... y, por supuesto, nos creemos mucho más listos-. Pero se dio cuenta de que si ponía el sol en el centro del sistema, se simplificaban considerablemente las matemáticas, todo resultaba más armonioso.
Esto ocurría en pleno Renacimiento, con una creciente difusión e interés por todo lo clásico y las teorías pitagóricas o platónicas, que defendían esa idea de armonías universales y las matemáticas como herramienta para alcanzar el verdadero conocimiento (ideal).
Pero el modelo copernicano seguía teniendo que recurrir a epiciclos, excentricidades... y, aún así no conseguía explicar ni predecir todos los fenómenos celestes -circunstancia que podía atribuirse a la imprecisión y escasez de datos-.
Así, desde el punto de vista de la eficacia o la precisión, el modelo copernicano y el ptolemaico no resultaban muy distintos. Y costó casi un siglo que fuese tomado en serio, gracias a Galileo y sus observaciones telescópicas que ofrecían pruebas visuales.

By Rosetec (Own work) [CC-BY-SA-3.0], via Wikimedia Commons


Hoy sabemos -más bien nos han contado- que la Tierra es sólo un planeta dentro del sistema solar, una pequeña estrella dentro de la Vía Láctea (una galaxia como tantas otras, dentro de un universo infinito en expansión...) Vamos, que no somos nada.
Así que, poner el Sol en el centro del universo puede parecernos poca cosa -además de erróneo-.

Con todo esto, lo que quería poner de manifiesto es que, a menudo, en tareas de investigación o desarrollo (o en el cotidiano vivir) tomamos teorías, modelos, programas, pedazos de código... como obras finalizadas, cerradas. Y decimos que son perfectas, que han sido llevadas a cabo por grandes profesionales de forma concienzuda, porque todo se deduce de forma sencilla y armoniosa. O bien, decimos que son una puta mierda, por complejas, porque no las entendemos, o no tenemos ganas de entenderlas.
En ambos casos se comete el error de considerar la obra como acabada y no someterla a crítica.
Eso fue lo que hizo Copérnico: Retomar el trabajo de Ptolomeo, probar, cambiar variables... Con la firme intención de dar una explicación de la realidad. Esa es una tendencia que ha continuado hasta la actualidad. Con sucesivos cambios de "paradigma", cuando el modelo tradicional predominante se complicaba en exceso, o era incapaz de explicar los datos y evidencias que se iban recogiendo.
Para conseguir estos cambios de modelo, es necesario poder pensar otras realidades, aunque sea apoyados en ideas tan peregrinas como puedan parecerlo las pitagóricas, la teoría de la relatividad o la dualidad onda-corpúsculo de la luz. Disponer de herramientas intelectuales suficientes para salir de los círculos en que a menudo quedamos atrapados, sin ser capaces de recurrir a la solución imaginativa.

Por tanto, si en tu quehacer diario ves que todo empieza a ser demasiado complicado, que no cuadran las cuentas... puede que haya llegado el momento de cambiar de "paradigma" y, como Copérnico: "regalar a todos los ciudadanos, ricos o pobres, un viaje anual gratis alrededor del Sol".

Para más información:
Historia de la Ciencia - Carlos Solís y Manuel Sellés
Historia del pensamiento filosófico y científico. II Del Humanismo a Kant - Giovanni Reale Dario Antiseri

sábado, 20 de octubre de 2012

Derechos de autor y software libre: capital y nación percudios de Comunismo universal

Los derechos de autor, las patentes: son acuerdos legales entre los hombres para obtener beneficios económicos a partir de algo inmaterial. En el mejor de los casos, no son más que un incentivo para seguir creando. En el peor, una forma de poner barreras de entrada y ganar una posición privilegiada en el mercado. Los derechos de autor y las patentes no pueden entenderse fuera de un contexto capitalista.
Desde luego, muchos de estos creadores no entendería que la obra no es suya, sino que es fruto de su época histórica, de su educación, su cultura, su contexto social. Que todos participamos de la obra, que todos somos creadores.
Deseamos títulos (copyright, médico, ingeniero, sir, duque...), concedidos por el garante de la propiedad privada (el Estado). Que nos permitan vivir del esfuerzo que un día hicimos, que justifiquen una posición privilegiada frente a los que, como la cigarra de la fábula, se dedicaban mientras tanto a cantar y beber vino... o incluso trabajar.
Detrás de cada creación hay mucha dedicación. Los hay que esperan ser remunerados económicamente, otros esperan no tener pérdidas, quizá divertirse y, por supuesto, también hay quien espera lucrarse.
El creador, el inventor... oficios sin sentido en una sociedad basada en la posesión de lo material. Ahí radica la polémica: ¿Cómo apropiarse de lo inmaterial, de lo que no se concibe si no es compartido por todos?

Por eso me maravilla tanto el software libre: va en contra del más importante principio capitalista o liberal. Es decir: que toda motivación para el esfuerzo viene del deseo de acumular un mayor capital ("bienestar").
¿Por qué evoluciona entonces el software libre? Si no existe el incentivo de amasar fortunas y lo único que conlleva es esfuerzo? Por el reconocimiento? la fama? Porque sirve de lanzadera para hacer software privativo? ¿O quizá porque sirve para poder seguir trabajando en ello, en algo que no es un trabajo alienante? Todas son posibles motivaciones. También porque se espera que el usuario sea parte del producto, que lo entienda y simpatice con él, que se esfuerce en hacerlo funcionar (porque viene a satisfacer una necesidad o un deseo que surge del individuo y no de una campaña de marketing). Así, si no tienes dinero siempre puedes ser paciente y hacértelo tú mismo. En el caso contrario puedes pagar a alguien que lo haga por ti. Te libera de la carga de quejarte amargamente -¿Por qué esta puta mierda no funciona!!! - (O no funciona como yo quiero) - Arréglalo!, cámbialo!, pregunta, investiga, interacciona, reacciona!
Es pura ideología y no podría haber surgido si no existiese un hastío del sistema capitalista de consumo (de una sociedad que fomenta la desigualdad, el elitismo y el usuario tonto que no ha de solucionarlo todo con dinero). Pero también es necesario gente que pueda invertir su tiempo en algo que no sea puramente su "modus vivendi". Porque otra de las desventajas del capitalismo es que no hace un reparto equitativo de las cargas de trabajo, sino que sólo son las élites las que están exentas del mismo (tal como lo conocemos la mayoría). Que además presionan a las clases trabajadoras para que se esfuercen más y más, y sacien su frustración en el consumo de cosas (viajes, coches, ropa, gadjets, software...)
Tampoco se puede negar la importancia de los sistemas de educación pública (universidades). Permitiendo el acceso a estudios superiores de los hijos de las clases obreras (con sistemas de valores y creencias distintos a los de las élites). Profesores-investigadores que reciben un salario por transferir, difundir y generar conocimiento (aquí tampoco lo más importante es hacerse con el capital o ser un ídolo de masas y, sí el ser respetado dentro de la comunidad científica).
Sin internet no habría sido posible: sin la interconexión entre los usuarios y desarrolladores a lo largo del mundo entero, hablando todos un mismo idioma, aunque programen en diferentes lenguajes y habiten Estados o Naciones antagónicas.

Porque además de contradecir los principios capitalistas, el software libre también se opone a otra de las principales ideologías de los dos últimos siglos: el Nacionalismo, el patriotismo... Esforzado en identificar vínculos culturales, idiomáticos, religiosos dentro de un territorio finito, para exaltar a sus gentes y conseguir así, una cierta clase gobernante, el control absoluto de ese feudo.
El software libre busca adeptos en todo el mundo y de hecho acaba fundando comunidades sin fronteras dentro de la red, castillos en la nube, que son de todos, puesto que no hay un ánimo de lucro y todos pueden participar en su construcción.
Hacer software es una tarea compleja. Lleva mucho tiempo tener un producto más o menos estable -y eso teniendo un equipo encerrado en una oficina y amenazóndolo con el despido y ejerciendo coerción para que trabajen largas horas-. Sin embargo, el sofware libre se las arregla para crecer, integrarse y fusionarse con una sociedad mayoritariamente regida por principios opuestos a los suyos, creando una comunidad universal. Un ideal válido universalmente, para todos los individuos y no sólo para un territorio o clase social concreta. Con un fruto del trabajo repartido entre el conjunto de la humanidad y no apropiado por unos pocos.

Es software libre, pero podría verse también como una realización del Comunismo (no en un Estado físico concreto): que conlleva la apropiación por parte de los obreros de los medios de producción, y el reparto del fruto de trabajo entre el conjunto de la sociedad. Un comunismo universal.


https://es.wikipedia.org/wiki/GNU/Linux


Aquí dejo un enlace a un documento sobre los orígenes del software libre:
Richard Stallman: Software y libertad