Que es el Open Source?
Leyendo un articulo en La Nación acerca de cuanto ocupa el código fuente de Chrome (el navegador de Google), simplemente encontré esta respuesta sin querer (aunque ya la sabia), pero simplemente para aquellos usuarios que han escuchado este termino y no saben que es. Simplemente es explicado con teoría básica sobre programacion y en que se diferencia con el código cerrado.
Las computadoras, más precisamente sus microprocesadores, no entienden los lenguajes humanos. Los humanos, opuestamente, son capaces de entender el lenguaje de las máquinas; es más, han diseñado ese lenguaje. El problema es que escribir código en lenguaje de máquina es como vaciar una pileta olímpica con un cuentagotas usando para presionar la perilla una pinza de depilar controlada por medio de unas tenazas de doce metros de largo. Es posible hacerlo; de hecho, vi a mi padre programar así, hace unos 40 años. Como él siempre dice, todavía recuerda la instrucción para sumar: "Era 7070, o tres llavecitas para abajo". Porque aquella máquina, además, no tenía teclado. Ni pantalla. Se usaba una cinta perforada por toda interfaz.
Con la complejidad del software actual, programar en lenguaje de máquina resultaría completamente impracticable. Por eso usamos lenguajes de alto nivel, como C, C++, Eclipse, Java, Basic, Pascal y muchos otros. Son de alto nivel porque están cerca de nuestra forma humana de pensar, no porque sean más chic.
Estos lenguajes dejan mucho que desear en términos de expresar cosas humanas, pero mediante un conjunto de palabras reservadas, una sintaxis inflexible y procedimientos claros y previsibles pueden usarse para decirle a la computadora lo que queremos que haga.
Esas líneas escritas por personas en un lenguaje como C o Pascal, que contienen las instrucciones y los datos que constituyen un programa de computadora, se llaman en conjunto código fuente .
Por supuesto, los microprocesadores no entienden ni C, ni Pascal ni nada de eso, así que una vez que el código fuente está terminado hay que dar un paso más: traducirlo al lenguaje de máquina , un proceso denominado compilación. Técnicamente es más complejo y tiene más pasos (creación de código objeto, creación del ejecutable o linking, y por otro lado existen lenguajes de nivel más bajo, como Assembler (Ensamblador, en español), que no son tan arduos como el lenguaje de máquina ni tan confortables como los de alto nivel, pero permiten manipular con más detalle el hardware y producen programas más rápidos. Hoy sólo se los usa para algunas rutinas especiales).
La compilación del código fuente produce el software que ejecutamos en Windows, Mac, Linux o cualquier otra plataforma. Se los llama binarios , aunque en rigor también las imágenes y los sonidos son archivosbinarios .
De los binarios ejecutables no se puede obtener exactamente el código fuente, así que los programas son el pastel y el código fuente, la receta. Usando herramientas especiales puede examinarse la receta y sacar algunas conclusiones, incluso alterar el programa, lo que en general está prohibido por la licencia de los autores, pero nunca obtendremos exactamente la fórmula exacta con que se lo fabricó. Entre otras cosas porque diferentes compiladores producirán diferentes binarios a partir del mismo código fuente.
De la misma forma, podemos saber que el pastel tiene vainilla, un toque de naranja y tal vez jengibre, pero no tendremos ni la menor idea de exactamente cuánto y cómo hay que poner de cada ingrediente.
Las compañías comerciales de software, como Adobe, Autodesk y Microsoft, han guardado bajo siete llaves el código fuente de sus programas. Si vendés pasteles no tenés ni la menor intención de hacer pública la receta de tu éxito.
Lo que el open source vino a demostrar es bastante obvio: que el software no es igual a los pasteles. Aunque hay muchas variantes de licencias para distribuir el código fuente, lo cierto es que la movida alimentó los negocios de Google, Thawte, Nokia (en la Ayuda de sus teléfonos puede verse la dirección de donde bajar partes del código que hay en sus dispositivos) y cientos de otras compañías, además de incentivar la liberación de código por parte de gigantes como IBM e impulsar los progresos de Internet, cuyos protocolos y aplicaciones se originaron en una época en la que el código fluía mucho más libremente, mucho antes de la PC; la Red mayormente ha mantenido esa política.
Pero tras más de 25 años de aplicaciones de código cerrado, el open source supone una revolución copernicana, donde el código fuente ya no es el centro del universo. El soporte y los servicios lo son.
Y esto vino a ajustar como anillo al dedo con la lógica Internet, donde todo parece ser gratis pero se sostiene sobre un conjunto de servicios, como el de la conexión, que pagamos regularmente.
Así que el código fuente, que suena como algo que sólo les compete a los expertos, se encuentra en el centro de un cambio que involucra a toda la industria y, por lo tanto, afecta nuestras vidas. Además, sí que nos importa a los que no somos programadores. ¿Por qué? Porque si el código fuente es público, entonces es mucho más difícil que alguien inserte funciones indeseables en un programa (puertas traseras, espías).
Por ejemplo, ¿tiene sentido usar software para encriptar sin tener el código fuente? ¿O acaso hay ahí escondida una puerta trasera que las agencias de seguridad del país de origen podrían usar, llegado el caso?
Una anécdota que me cuenta un amigo, para ilustrar este punto: cuando Unix era muy nuevo, Ken Thompson, uno de sus autores, insertó un bug en el código fuente para que el sistema aceptara una contraseña maestra, en manos de Thompson, evitándole así pedirla a los usuarios cada vez que tenía que reparar una estación de trabajo. Ese bug se arrastró luego durante años, hasta que fue descubierto. Así que incluso con las fuentes a la vista es posible insertar esta clase de "puertas ocultas", aunque con la cantidad suficiente de ojos que escrutan el código al final se las descubre.
La moraleja de Thompson, en este extenso y muy técnico artículo ( http://cm.bell-labs.com/who/ken/trust.html ), es muy dura: "Uno sólo puede confiar en el código que uno mismo crea". Desde luego, esto ya no es posible en un mundo con 2500 millones de personas que usan computadoras e Internet.
Entienda uno o no el código, y el 99,99% de nosotros no lo entiende, lo que importa es que el open source combinado con la comunidad de programadores e Internet prácticamente no puede esconder nada. Mucho menos Google, por el nivel de atención que acapara.
La compañía ha apoyado y liberado mucho de su código en su primera década de vida, aunque sigue manteniendo en secreto la fórmula de su éxito, es decir, los algoritmos de su buscador. Chrome parece reafirmar que seguirá apostando a esa forma de hacer software, una forma que le resulta estratégicamente útil.
Ahora era tiempo de ver cómo hace una de estas corporaciones tan mediáticas y poderosas para escribir un programa.
Insto a los lectores a continuar leyendo el articulo completo en este enlace.
posted by Alan on sábado, septiembre 13, 2008 under Curiosidades, Google, Navegadores, Software libre, Tecnologia
0 comentarios:
Publicar un comentario