GNU Software Developer

Post on 28-Jun-2015

1.690 views 0 download

Tags:

description

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

Transcript of GNU Software Developer

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

ISC José Alejandro Manuel García

alejandro@g-w-systems.com

¿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?

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

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.

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.

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.

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

¿Qué hay de los demás lenguajes?

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.

Bindings más comunes

Qt GTK+PythonRubyPerlJavaJavascriptC#

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

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.

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

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

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

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.

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

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.

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.

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.

¿Preguntas?

¿Dudas?

¿Sugerencias?

¿Comentarios?

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íaalejandro@g-w-systems.comalex@sysdev-solutions.netal3x.mg@gmail.com