GNU Software Developer

24
Desarrollo de Software en GNU/Linux (FLISOL – Abril 28, 2007) ISC José Alejandro Manuel García [email protected]

description

Desarrollo de software en gnu/linux. Presentado por el Ing. José Alejandro Manuel García

Transcript of GNU Software Developer

Page 1: GNU Software Developer

Desarrollo de Software en GNU/Linux(FLISOL – Abril 28, 2007)

ISC José Alejandro Manuel García

[email protected]

Page 2: GNU Software Developer

¿Cómo programar en Linux?

Al cambiar de Sistema Operativo surgen muchas dudas:

¿Qué lenguajes hay para programar?¿Puedo programar GUIs?

¿Cómo compartir el código?¿Qué herramientas hay disponibles?

¿Qué tan difícil es programar en GNU/Linux?¿Cómo puedo hacerlo más fácil?

Page 3: GNU Software Developer

Un compilador para atraerlos a todos …

GCC

Es el principal compilador libreSignifica GNU Compiler CollectionPrincipalmente usado para lenguaje CActualmente soporta los lenguajes:C/C++, Ada, Objective-C, Fortran o Java

Page 4: GNU Software Developer
Page 5: GNU Software Developer

Bibliotecas Gráficas

Es necesario conocer 2 conceptos:

Widget: es un componente de interfaz gráfica, a esto nos referimos a botones, ventanas, cajas de dialogo, cuadros de texto, etc. Es como lo que Windows se conocer como controles de formulario.

Toolkit: es una colección de bibliotecas de componentes o widgetspara desarrollar aplicaciones que tenga interfaz de usuario.

Page 6: GNU Software Developer

Qt

Es un set completo de widgets estandar.Desarrollado por la empresa noruega TrollTech.Escrita en C++ totalmente orientado a objetos.Windows, MacOS X, X11.Permite escribir controles personalizados.Ligado al entorno KDE.Actualmente cuenta con una licencia dual.

Page 7: GNU Software Developer

GTK+

• Su nombre significa GIMP ToolKit.• Se pueden crear desde proyectos pequeños hasta aplicaciones

completas• Esta escrito en lenguaje C pero soporta la idea de clases, objetos y

callbacks.• Esta muy ligado al desarrollo gráfico del entorno GNOME.• Se fundamenta en 4 bibliotecas: Glib, Pango, ATK y GDK.• Es multiplataforma y tiene licencia LGPL.

Page 8: GNU Software Developer

OK, tenemos bibliotecas para crear GUIs en C/C++, pero…

¿Qué hay de los demás lenguajes?

Page 9: GNU Software Developer

Binding

Un binding (envoltorio o recubrimiento en español) indica que la librería de software (usualmente escrita en

C/C++) tiene un método para poder usarse con un lenguaje diferente al que esta programado.

Page 10: GNU Software Developer

Bindings más comunes

Qt GTK+PythonRubyPerlJavaJavascriptC#

AdaC++C#Objective-CPHPPythonRubyPerlJavascriptJavaSmalltalk… muchos más

Page 11: GNU Software Developer

Herramientas para el Desarrollo de Software

Existen multitud de herramientas, desde editores de código hasta grandes proyectos que nos permiten

hacer más cosas.

Pero antes debemos considerar 2 conceptos en el desarrollo de software en GNU/Linux.

Page 12: GNU Software Developer

RAD (Rapid Application Development)

Es una metodología que pone énfasis al desarrollo de aplicaciones en una cantidad corta de tiempo. Se refiere a las herramientas de desarrollo con el que podemos hacer interfaces de usuario gráficas (GUI) que una manera ágil.

Ventajas:- Velocidad de desarrollo- Calidad

Desventajas:- Características reducidas- Escalabilidad reducida

Page 13: GNU Software Developer
Page 14: GNU Software Developer

IDE (Integrated Development Environment)

Significa Entorno de Desarrollo Integrado.Provee al programador de herramientas para construir grandes aplicaciones.Consiste en editor de código, compilador, depurador, constructor de GUIs.

Kdevelop Qt Designer

Kylix NetBeans

Anjuta MonoDevelop

Eclipse

Page 15: GNU Software Developer
Page 16: GNU Software Developer

¿Cómo puedo hacermela vida más fácil?

Page 17: GNU Software Developer

Frameworks para el desarrollo de software

Es una plataforma de trabajo que facilita el desarrollo de software al programador.

Históricamente en GNU/Linux no habían herramientas para agilizar la producción de software.

Se han buscado muchas formas de aumentar la productividad y disminuir costes y tiempo.

Page 18: GNU Software Developer

PROYECTO MONO::

Es una iniciativa que tiene como finalidad implementar una plataforma de desarrollo libre, compatible con .NET, que permita a los programadores GNU/Linux desarrollar aplicaciones multiplataforma.

.NET, por otra parte, es un proyecto propietario de Microsoft que tiene límites poco claros. En su sitio es definido como un conjunto de herramientas y servicios Web/XML. No obstante, se puede decir que consta de:

Plataforma de Desarrollo. Servicios Web. Aplicaciones de Servidor. Software que vaya a ejecutarse bajo .NET

Page 19: GNU Software Developer

El proyecto Mono consta de los siguientes componentes:

Mono Runtime, el entorno de ejecución, que provee un recolector de basura, cargador de clases, asi como un compilador en tiempo de ejecución (JIT).

Mcs, el compilador del entorno, que genera CIL ("byte code").

Biblioteca de Clases, capaz de ser usada desde lenguajes que sean capaces de generar CIL.

Herramientas de desarrollo gráfico.

Page 20: GNU Software Developer
Page 21: GNU Software Developer

JAVA

Sun Microsystems esta liberando todas sus implementaciones de suplataforma Java bajo la misma licencia libre que es la GNU GPL, este ha sido uno de los mayores logros del software libre en la actualidad. Sun esta anunciando que:

Licencia GPL v2 para las implementaciones de Java SE (JDK) y Java ME y agregar esta licencia a las implementaciones de Java EE.Primer lanzamiento del código para el JDK y para las implementaciones de Java EE, proyectos y comunidades.Establecer el itinerario para futuras liberaciones de código y la comunidad de desarrollo.

Page 22: GNU Software Developer

CONCLUSIONES

Hemos visto que la programación en Linux no difiere tanto como se piensa comúnmente.

Los lenguajes de programación son los mismos, la mayoría están estandarizados.

Una pequeña diferencia sería la manera en que se crean las aplicaciones, debido a las herramientas que disponemos y toolkits gráficos.

Los bindings son importantes para el desarrollo de aplicaciones en Linux.

Page 23: GNU Software Developer

¿Preguntas?

¿Dudas?

¿Sugerencias?

¿Comentarios?

Page 24: GNU Software Developer

GRACIAS POR SU ATENCIÓN

Sitios de interés:www.gtk.orgwww.trolltech.comwww.gnu.orgwww.mono-project.comwww.sun.com/software/opensource/java/index.jsp

Contacto:José Alejandro Manuel Garcí[email protected]@[email protected]