desarrollo software entornos g n u linux una final

26
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

Upload: edgardo-ramos-roque

Post on 22-Jul-2015

1.670 views

Category:

Education


5 download

TRANSCRIPT

Page 1: Desarrollo  Software Entornos  G N U  Linux Una Final

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

Page 2: Desarrollo  Software Entornos  G N U  Linux Una Final

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.

Page 3: Desarrollo  Software Entornos  G N U  Linux Una Final

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.

Page 4: Desarrollo  Software Entornos  G N U  Linux Una Final

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).

Page 5: Desarrollo  Software Entornos  G N U  Linux Una Final

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).

Page 6: Desarrollo  Software Entornos  G N U  Linux Una Final

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.

Page 7: Desarrollo  Software Entornos  G N U  Linux Una Final

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 /

Page 8: Desarrollo  Software Entornos  G N U  Linux Una Final

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.

Page 9: Desarrollo  Software Entornos  G N U  Linux Una Final

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.

Page 10: Desarrollo  Software Entornos  G N U  Linux Una Final

Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre

Herramientas adicionales de administración

Planner

OpenProj

Freemind

Xmind

Page 11: Desarrollo  Software Entornos  G N U  Linux Una Final

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)

Page 12: Desarrollo  Software Entornos  G N U  Linux Una Final

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 )

Page 13: Desarrollo  Software Entornos  G N U  Linux Una Final

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)

Page 14: Desarrollo  Software Entornos  G N U  Linux Una Final

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

Page 15: Desarrollo  Software Entornos  G N U  Linux Una Final

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.

Page 16: Desarrollo  Software Entornos  G N U  Linux Una Final

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.

Page 17: Desarrollo  Software Entornos  G N U  Linux Una Final

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.

Page 18: Desarrollo  Software Entornos  G N U  Linux Una Final

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

Page 19: Desarrollo  Software Entornos  G N U  Linux Una Final

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.

Page 20: Desarrollo  Software Entornos  G N U  Linux Una Final

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

Page 21: Desarrollo  Software Entornos  G N U  Linux Una Final

Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre

AIR

Page 22: Desarrollo  Software Entornos  G N U  Linux Una Final

Universidad Nacional de Costa Rica I Congreso Educación, Software y Conocimiento Libre

AIR

Page 23: Desarrollo  Software Entornos  G N U  Linux Una Final

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

Page 24: Desarrollo  Software Entornos  G N U  Linux Una Final

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

Page 25: Desarrollo  Software Entornos  G N U  Linux Una Final

I Congreso Educación, Software y Conocimiento Libre

Dudas o ConsultasComentarios o consultas a : [email protected]

http://www.alternativa.una.ac.cr

Page 26: Desarrollo  Software Entornos  G N U  Linux Una Final

I Congreso Educación, Software y Conocimiento Libre

Gracias por su atención

Correo: [email protected]

Podcast: www.alternativa.una.ac.crNoticias: www.alternativa.una.ac.crEventos: www.alternativa.una.ac.cr