Génesis del Software Libre El software libre es un paradigma diferente pues no se regula por patrones tradicionales. Es importante formalizar los conocimientos sobre su origen, motivaciones de los programadores, esquemas empresariales y comerciales, modelamiento de desarrollo de software e iniciativas de estado en América Latina. Uno de los elementos que genera más dudas sobre su legalidad y seriedad es el anonimato de sus desarrolladores de quienes no se tiene claro qué motivaciones tienen para hacer este tipo de trabajo, aparentemente, sin ganancias para ellos. La aparición del software libre trajo consecuencias que al mercado así como el surgimiento de otros tipos de recursos libres que se desprenden del software. Linux se desprende del sistema operacional Unix, lo cual demuestra que este no aparece por generación espontánea sino que está referido tanto al proceso del desarrollo tecnológico que ocupó al gobierno de los Estados Unidos, como a la capacidad de desarrollo e investigación de las universidades desde los años 60's. Historia La cronología de la historia del software libre muestra cómo un producto, el software -que inicialmente venía incluido en los computadores- comienza a someterse a las reglas de un mercado que intenta volverlo comercial al tiempo que, por la influencia de la academia, se crea una fuerza en contrario que intenta liberarlo. Con el estudio de la historia se puede apreciar el momento en el cual surge la necesidad de crear las licencias de software para respetar los derechos de autor y, se muestra la creación de Unix BSD que tanta influencia ha tenido en lo que hoy es la licencia GPL. Aspectos legales Dado que e l software un producto que se rige por los derechos de autor, era importante enseñar los principios que regulan la propiedad intelectual y, sus elementos, como los derechos de autor, las patentes, los secretos comerciales, las marcas y logotipos, esto influye en la definición de las licencias de software tales como BSD, GPL, LPGL y otras licencias lo cual influyó en la regulación de la documentación. Los desarrolladores de Software Libre Los desarrolladores de software libre, son personas trabajan a manera de colaboración, distribuidos utilizando el internet y, siendo desconocidos entre ellos a excepción de los líderes de los proyectos. La cultura hacker se basa en personas con altos conocimientos tecnológicos que se divierten haciendo su trabajo. Son jóvenes de mediana edad, de 27 años en promedio con una varianza de edades que oscilan entre los 21 a 24 años y que se incorporan a la actividad entre los 18 y 25 años que es la edad universitaria. Estos desarrolladores ejercen diversos oficios y se ha calculado que un 33% son ingenieros de software, 21% son estudiantes, 11% programadores, 10% profesores universitarios y, en general, no pertenecen a dependencias de índole comercial. La mayoría provienen de países desarrollados. Se calcula que un 80% de estos desarrolladores realizan estas tareas en su tiempo libre y sólo uno de cada cinco lo hacen de manera profesional. Lo que los motiva es: Aprender y desarrollar nuevas habilidades pues conocimientos tiene más oportunidades en el mercado. Compartir conocimientos. Búsqueda de reputación (9%) y beneficios económicos indirectos a mediano y largo plazo. Ganar dinero un profesional con mayores Modelo económico Para la financiación de estos proyectos de software libre existen diversas modalidades. Cobrar por las licencias de uso es difícil en el software libre, salvo el caso de las distribuciones que han logrado ofrecer valores agregados interesantes. En el software libre, el producto puede ser manejado por muchas empresas estimulando la sana competencia. Iniciativas de los estados Hay países que han sacado leyes para que el software libre sea utilizado, preferencialmente, por los organismos del Estado con tintes políticos alrededor de estas decisiones. El Estado puede influir en el desarrollo del software libre beneficiando a los ciudadanos ya que siendo el Estado el mayor consumidor de software para su administración, podría, al liberar los desarrollos, trasladar esos beneficios a la comunidad. El Estado, a través de la promoción que hace de los productos propietarios, beneficia a empresas de índole comercial con publicidad gratuita y se hace el paralelo al hacerla con el software libre, en cuyo caso beneficiaría a la comunidad. Hay varios países latinoamericanos que están desarrollando proyectos de ley, los textos de estas leyes se encuentran en el texto. Ingeniería de software La ingeniería de software es una rama de los sistemas que estudia los mejores métodos para crear sistemas de información y desarrollar el software necesario. Erick Raymond dedicó mucho tiempo en 1997 a interpretar los modelos de desarrollo que se usan en el software libre buscando las diferencias con los modelos tradicionales, y escribió un libro llamado La catedral y el bazar que es el tema de la primera parte de este capítulo. Los proyectos siempre tienen un líder y es aquel que ha sido capaz de crear el interés de otros colaboradores gracias a la propuesta del software a desarrollar y, que ha podido motivar, entender y coordinar al grupo de colaboradores. Es él quien toma las decisiones de liberar o no una nueva versión, aspecto que no hace del software libre un producto anárquico. Uno de los casos más importantes es el de Linux Torvalds. El software libre no tiene un proceso definido de trabajo ya que por sus características de voluntariado, los desarrolladores definen libremente el tiempo de dedicación. Para los programadores la etapa más divertida es la implementación y, respecto de la programación, siguen el método de ensayo y error hasta que funcione el programa. Todo lo concerniente a software libre está sujeto a la detracción de cualquier persona; es un tema de total apertura y es la informalidad la causa de mayor crítica, así como también da espacio a la tendencia de repetir el modelo formal de desarrollo, al existir una sola cabeza visible que es el líder. Entornos de desarrollo El proyecto GNU al comienzo tuvo que utilizar el sistema operacional Unix porque no existía Linux ni BSD Unix. Posteriormente, era de esperarse por la naturaleza del trabajo abierto que se usaran lenguajes sencillos y abiertos como Java, Php, Perl, C, Gcc que abarataban el desarrollo por ser libres. El lenguaje de mayor uso es C y su correspondiente gcc así como Java y gcc++ y, el inglés el idioma de mayor utilización. Son muy populares los lenguajes de script perl, php y python y se usa make para la construcción de programas basados en los programas fuentes. Cuando se va a instalar software libre, es frecuente que este venga como programa fuente que debe compilarse y para ello se han desarrollado estándares. Usualmente llegan con frecuencia en un formato estilo programa-1.2.3.tar.gz Se está usando Weblogs para el manejo de foros permanentes como el de El Tiempo http://eltiempo.com en la sección Tecnología, tema Linux y el software libre en donde se pueden debatir estos temas de manera abierta al público. Existen muchos sitios en la web en donde se encuentran noticias del software libre como slahdot o barrapunto en español. El desarrollo de software a varias manos hace indispensable el uso de herramientas de control de versiones que permitan almacenar y recuperar la historia de los programas en desarrollo, para eso se usa extensivamente CVS o Concurrent Version System que usa un repositorio central y una conexión cliente-servidor. Con relación a la documentación, en software libre se usa texto plano, fundamentalmente, pues es práctico, sencillo, rápido y funcional, además son editables desde cualquier editor de texto dando mayor acceso a la información y disminuyendo las restricciones. Puede ocurrir que haya documentos que usen el formato texinfo navegables con editores como Emacs, Tex o Latex, muy famosos en los entornos de Unix y Linux. En lo relacionado con la gestión de errores cabe destacar la labor de Debian, quien ofrece un reportbug que pregunta el nombre del paquete e informa sobre los errores incluyendo las dependencias, es decir, los módulos que usa un programa.