Post on 22-Jul-2015
I Congreso Educación, Software y Conocimiento Libre
Desarrollo de Software usando Plataformas GNU / Libres
Edgardo Ramos Roque, Ing. – Centro de Gestión Tecnológica
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
Resumen de la Charla
GNU/Linux como Plataforma de Desarrollo.Lenguajes de programación.Herramientas.
Migración desde otros Sistemas.Entornos Integrados de Desarrollo.Multiplataforma.
Ventajas / Inconvenientes.Consultas / Preguntas.
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
Una plataforma para hacer de todo
Es una de las más potentes:Sistema creado por y para Desarrolladores.La herencia de UNIX influye Positivamente.
Existe soporte para la mayor parte de los lenguajes existentesLibertad para elegir el lenguaje.Lenguajes menos pensados, ya estan
soportados.
Se tiene herramientas para todo el ciclo de desarrollo: Análisis, Desarrollo, Implementación, Pruebas.
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
Lenguajes de Programación
Desarrollamos en C/C++, Java, PHP,Perl, bash y usted?
Los más usados:C es el de mayor uso.C++ (KDE, OpenOffice, Mozilla).Bash,Perl,AWK,Python (Lenguajes de script
preferidos).Desarrollo Web (PHP,JSP,JavaScript, CSS,XML).
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
… continuación.
De otros sistemas tenemos:.NET: C#,VB# Proyecto Mono, Proyecto
dotGNU.Basic: (Gnome Basic, Xbasic, Gambas).Java: (Kaffe, Blackdown, GCJ, JDK Sun).
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
… continuación.
Otros:Lisp, Objetive C, ADA, Pascal, Object Pascal,
Fortran, Ruby, Simula, Cobol, Ensamblador, Prolog, Ocaml, Eiffel, modula-2, Logo.
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
Compiladores e Interpretes
Procesando código fuenteGCC, The GNU Compliler Collection
Uno de los compiladores más completos del mercado, además el más usado soporta: C, C++,Objective C, Java, Fortran, entre otros.
InterpretesPython y Perl son lenguajes nativos creados
*nix. Y Siempre quedara Bash !!
Maquinas VirtualesJava.NET, Gracias a proyectos como MONO /
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
Gestionando Proyectos
Gestión de Proyectos
Make para la especificaciones de las reglas de compilación / enlazado.
Autoconf / automake creación de Makefile portables.
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
Trabajo en Grupo
“CVS” para la gestión de versiones.Listas de correo, comunicación entre los
desarrolladores.Bugtrack para el control de errores y tareas.
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
Herramientas adicionales de administración
Planner
OpenProj
Freemind
Xmind
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
Herramientas de Análisis
Optimizando CódigoAnálisis de Ejecución
Gdb, depuración de programas.Valgrind /memprof (Memoria).Strace/trace para seguir llamadas del sistema.
ComprobacionesSeguridad (splint,lclint)Medición (cccc, cflow)
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
Herramientas para la Distribución
Dando a conocer nuestro trabajoDistribución mediante código fuente
autoconf/automake, creación de los tar.gzInstalación
./configure make make install
Distribución de binariosSistema de paquetesRPM, Redhat, SuSe, Mandrake ( urpmi.install )
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
Canales de Distribución
http://freashmeat.nethttp://sourceforge.nethttp://code.google.comSuSe Repositorios,Redhat Update,Mandrake
Cooker (.rpm)Source List (.deb)
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
Entornos Integrados de Desarrollo
Haciendo todo desde un único lugar, son necesarios para proyectos de gran tamaño y complejidad.KdevelopAnjuntaDiaSCELazarusEclipse / NetBean JDK SunAptana / AJAX IDE
EmacsCompleta suite de desarrollo y productividad
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
Desarrollo Multiplataforma
Así desarrollo en GNU/Linux para cualquier plataforma.Compatibilidad en código fuente
Ansi C /Perl /Phython.Muchas de las librerias son Multiplataforma:
glib, Xwindows, gtk, tlc/tck.
Delphi: Kylix, abandonado desde la Ver. 3.0. Actualmente soportado por RAD Studio 2010 ( Embarcadero.App Nativas Win,.NET,Web,DB ). [Delphi, C++ Builder, Delphi Prism ]
Lazarus: Alternativa Libre de Delphi.
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
Cross - Compilador
Creación de aplicaciones para otra plataformaPalmLego RIS (Robotic Invention System)Spark/Risk (Sun Machine)ARM (Consolas de Juegos:
DS,GBA,ARM11,iphone,Xscale ipaq)gcc/glibc cross compiler toolchains.
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
Ventajas : Libertad
Uso de la tecnologia para como y cuando la necesito.Acceso a la tecnología
Libre.Permite no empezar desde cero.
Desarrollo en comunidadSe ha demostrado ser más eficiente que el desarrollo
cerrado.Las normas de unos son aprovechadas por todos.
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
Ventajas: Código de calidad disponible
Reutilizando lo ya existenteSoporte para la mayor parte de lenguajes de
programaciónPermite reusar código existente.Centrarse en la tarea concreta a desarrollar.
Gran variedad de libreriasProtocolos de Red: http,ftp,nfs,ax25,ipx,appletalk.Acceso a Base de Datos: PosgreSQL,MySQL, Oracle,
Sybase.Interfaces gráficas: GTK+,QT, TCL/TK, FLTK.Multimedia: mp3, videoconferencia, cd/cd-
rw/dvd,realaudio, mpeg, reconocimiento
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
Inconvenientes
Necesita dedicaciónAutoconf/automake te lleva tiempo el dominarlo.Muchas herramientas son de línea de
comandos, por su potencia y portabilidad.
Falta de documentaciónSe hace necesario consultar en medios digitalesLeer código de otras personas.Usar motores de búsqueda, para profundizar el
tema.
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
Demo
Aplicación en GTK + C#
Conección a una Base de Datos Mysql + C#
Aplicación AIR (Adobe Integrated Runtime)
Ajax
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
AIR
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
AIR
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
Y Ahora ?
Quiero saber más:Grupo Software UNA Alternativa
http://www.alternativa.una.ac.crProyecto GNU http://www.gnu.orgProyecto Gnome http://www.gnome.orgProyecto Mono (.Net ) http://go-mono.comGraphic Tool Kit (GTK+) http://www.gtk.orgAnjuntaAptana http://www.aptana.com
Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre
… continuación
Perl http://www.perl.orgPython http://www.python.orgPhp http://www.php.netAIR http://Ajax http://Google http://www.googlle.comYahoo! http://www.yahoo.com
I Congreso Educación, Software y Conocimiento Libre
Dudas o ConsultasComentarios o consultas a : alternativa@una.ac.cr
http://www.alternativa.una.ac.cr
I Congreso Educación, Software y Conocimiento Libre
Gracias por su atención
Correo: una-alternativa@una.ac.cr
Podcast: www.alternativa.una.ac.crNoticias: www.alternativa.una.ac.crEventos: www.alternativa.una.ac.cr