Escrito esta:
Miqueas 2:1
¡Ay de los que planean la iniquidad, los que traman el mal en sus
camas! Al clarear la mañana lo ejecutan, porque está en el poder de sus
manos.
Tomado de :
Petermillenium20
Una breve comparación de los principales lenguajes de programación para
Linux y de las principales librerías para la creación de interfaces
gráficas de usuario (GUIs) en Linux.
Linux es un sistema
operativo fascinante porque permite a cualquier usuario participar en su
desarrollo. La variedad de lenguajes disponibles, sin embargo, puede
llevar a la confusión a los desarrolladores principiantes. Este
documento hace un listado de las opciones más comunes existentes para el
desarrollo diario.
(Bueno, el más común y el principal). EL
propósito no es ni el de reseñar los lenguajes ni el de determinar cuál
es el mejor. Cada lenguaje es una herramienta que sirve para
determinados trabajos y gustos. Puede obtener más información (a menudo
conflictiva) con facilidad, si pregunta por ahí o si mantiene los oídos
alerta. La sección de enlaces en este documento le dará indicaciones
para que pueda investigar por su cuenta.
1. Introducción
Hay
una variedad de de lenguajes y librerías de programación para Linux,
así que este documento solamente cubre los lenguajes más comunes y los
conjuntos de herramientas para la construcción de interfaces gráficas de
usuario del momento.
Nótese también que, tanto los lenguajes
como las herramientas para construcción de interfaces de usuario, se
verán desde el punto de vista de Linux: no se tratarán sus
características para otras plataformas.
Un signo de interrogación
en las tablas indica que se carece de información. Si puede
completarla, por favor, contacte con el autor.
2. Lenguajes de programación
2.1 Conceptos en la Tabla
Lenguaje
Indica el nombre común del lenguaje.
Principiante
Indica
lo apropiado que es el lenguaje para personas con poca experiencia en
programación. Un lenguaje que se encuentre marcado por un ``sí'' debería
ser viable como primer lenguaje de programación para un principiante.
Rendimiento
La
probable velocidad de ejecución de sus aplicaciones cuando se usen
comercialmente. Las prestaciones dependen más de sus habilidades
algorítmicas de programación que del propio lenguaje. Empíricamente, C,
C++ y Fortran son necesarios a veces porque pueden dar mejores
prestaciones que otros lenguajes -otras veces pueden ser pesados para el
propósito original. (Una idea para las pruebas de rendimiento de los
lenguajes sería la implementación de un sencillo algoritmo de ordenación
en todos ellos y la comparación posterior de los tiempos de ejecución.
POO, Progamación Orientada a Objetos vs. otros paradigmas
La
Programación Orientada a Objetos es un paradigma de programación
importante que está ganando popularidad. En la programación orientada a
objetos, las estructuras de datos y los algoritmos se integran en
unidades, a menudo llamadas clases. La POO contrasta con la programación
procedural (que usa algoritmos y estructuras de datos separados). No
depende estrictamente del lenguaje: se puede hacer POO con lenguajes no
clasificados como tales (por ejemplo C), y se puede programar en estilo
procedimental con lenguajes clasificados como Orientados a Objetos. He
clasificado como de POO a lenguajes que tienen características
especiales o añadidos que facilitan la POO. Los lenguajes funcionales
(LISP, por ejemplo) son de una clase un poco diferente -entre otras
cosas, los lenguajes funcionales son un superconjunto de POO. La
programación lógica (Prolog), también llamada programación declarativa,
por otro lado, no tiene relación con otros tipos de programación en un
sentido similar.
RAD, Rapid Application Development (Desarrollo rápido de aplicaciones)
Más
dependientes de las herramientas que se usan que del lenguaje
propiamente dicho. Hay un COMO de herramientas de desarrollo para GUI
(Interfaz gráfico de usuario), aunque está desfasado. Con una buena
herramienta gráfica se pueden realizar RAD. A veces los RAD se basan en
la reutilización de código también, por lo que el software libre nos
puede proporcionar un buen punto de partida.
Ejemplos
Describe los
campos de programación en los que normalmente se usa el lenguaje. Se
dan otros tipos de usos, buenos y malos, aunque no son tan frecuentes.
Comentarios
Información adicional sobre el lenguaje, como son sus capacidades y dialectos.
2.2 Lenguajes Principales
PERL
Principiantes: Sí - POO: Sí
Ejemplos: Scripts, administración de sistemas, www
Comentarios: Potente para la manipulación de textos y cadenas
Python
Principiantes: Sí - POO: Sí
Ejemplos: Scripts, scripts de aplicaciones, www
Comentarios:
TCL
Principiantes: Sí - POO: No
Ejemplos: Scripts, administración de sistemas, aplicaciones
Comentarios:
PHP
Principiantes: Sí - POO: Sí
Ejemplos: Www
Comentarios: Popular para las bases de batos basadas en web
Java
Principiantes: Sí - POO: Sí
Ejemplos: Aplicaciones para plataformas cruzadas, www
Comentarios:
Lisp
Principiantes: Sí - POO: Funcional
Ejemplos: Modos de Emacs (para elisp), AI
Comentarios: Variantes Elisp, Clisp y Scheme
Fortran
Principiantes: No - POO: No
Ejemplos: Aplicaciones matemáticas
Comentarios: Variantes f77 y f90/95
C
Principiantes: No - POO: No
Ejemplos: Programación de sistemas, aplicaciones
Comentarios: Muy popular
C++
Principiantes: No - POO: Sí
Examples: Aplicaciones
Comentarios:
2.3 Programación del shell
Los
shell son también unos entornos de programación importantes. El
conocimiento de los shell es importante para quien trabaje con Linux
regularmente, y más aun para los administradores de sistemas. Hay
similitudes entre la programación del shell y los scripts -a menudo
consiguen los mismos propósitos y tenemos la oportunidad de elegir entre
los shell nativos o un lenguaje de scripts. Entre los más populares
están los shell bash, tcsh, csh, ksh y zsh. Puede obtener información
acerca de su shell con man comando, man bash por ejemplo.
2.4 Otros Lenguajes
Otros
lenguajes dignos de mención: AWK, SED, Smalltalk, Eiffel, ADA, Prolog,
assembler, Objective C, Logo, Pascal (p2c converter)
2.5 Enlaces
· Un sitio de información general sobre lenguajes de programación, mucha información y opiniones
· TCL
· PERL
· Python
· PHP
· Java
· clisp
ANEXOS
Lenguaje C
En
1.970, cuando Ken Thompson creó el Lenguaje B para codificar sus
programas y algoritmos, para probar y experimentar con estructuras,
servicios y teorías de eficiencia, que posteriormente Brian Kernighan
bautizaría con el nombre de Unix, no se imaginaron que con reestructurar
y agregar instrucciones al Lenguaje B, añadirle estructuras de datos y
tipos, pasaje de parámetros a funciones recursivas, apuntadores a
funciones y unas sencillas modificaciones, Dennis Ritchie crearía un
Lenguaje C, que 20 años después, sería el Lenguaje de programación
preferido para el desarrollo de Herramientas, Editores, Manejadores de
Bases de Datos, Compiladores e Interpretadores y Traductores de
Lenguaje, Generadores de Sistemas Expertos, Sistemas Operativos,
Procesadores de Palabras, Paquetes de Comunicación y Teleproceso, Hojas
de Cálculos, Aplicaciones de CAD/CAM, y toda una infinidad de productos.
El
Lenguaje C, es un lenguaje de programación estructurado de mediano
nivel, pero muy versátil y eficiente, que revolucionó las técnicas y
estilo de programación.
Desarrollado en 1.971, originalmente para
implementar el Sistema Operativo Unix y sus Herramientas, C es un
lenguaje independiente del sistema operativo que se utiliza para
desarrollar aplicaciones portables.
C, provee las misma facilidades
para la manipulación de bytes de un lenguaje assembler combinadas con
instrucciones estructuradas de control de flujo condicionado y
manipulación de tipos y estructuras de Datos de los lenguajes de tercera
generación.
El Lenguaje C es relativamente sencillo, pero su gran
flexibilidad es terreno abonado para la proliferación de vicios y
prácticas inadecuadas de programación, por lo cual debe cuidarse la
enseñanza de su estilo de programación, técnica y filosofía de trabajo.
En Lenguaje C, lo fácil es simple y lo difícil posible.
Un
buen programador de C, utiliza librerías y desarrolla programas
modulares con funciones bien estructuradas, que son fáciles de mantener.
Antiguamente
la programación era difícil, luego apareció FORTRAN que la hizo mas
sencilla, después los lenguajes de 3era generación (C, C++, java, etc.)
que hicieron mas fácil la comunicación entre programador-máquina.
Este tema es sobre programación en C, C++, java, etc usando únicamente software libre.
La programación actualmente es muy sencilla de aprender gracias a los nuevos programas de 3era generación.
Actualmente
existiendo mucho software y sistemas operativos libres y gratuitos las
empresas y universidades deberían de dejar de gastar miles de dólares
por computadora dándoselo a Microsoft. Si puedes programar en Linux
igual que en Windows, porqué pagar a Microsoft? Ah, se me olvidaba, si
programas en Windows Microsoft espía lo que haces, ya muchas empresas
han demandado a Microsoft por copiar su software.
Antes de aprender a programar en Linux debemos saber algunas cosas:
Linux
es un sistema operativo similar a Windows xp, aunque superior en
muchísimos aspectos (además de ser gratuito), para instalarlo únicamente
debes descargar una imágen iso, quemarla en un cd o dvd, e instalarlo
(de forma similar a la de windows xp).
La ventaja de descargar el dvd
es que trae cientos de programas para que los instales sin ocupar
internet (instalables desde synaptic o adept).
Luego de descargar la
iso, la quemas con la opción quemar iso, y tienes listo para arrancar en
tu computadora el cd o dvd, estos discos son live, arrancan sin
necesidad de que los instales, si arranca en tu máquina verás el
escritorio en unos 30 segundos, y desde ahí puedes instalar el sitema.
Al
instalar linux puedes elegir entre escritorio gnome o escritorio kde,
algunas distribuciones linux solo usan escritorio gnome, y otras solo
kde, luego si quieres lo puedes instalar el otro escritorio. La
diferencia es que el escritorio kde trae algunos programas que no trae
gnome, y el aspecto del escritorio gráfico varia un poco.
La forma
mas sencilla para instalar programas en linux es usando synaptic (adep
si usas kde), dos click e instalas el programa (ya sea desde internet o
el dvd).
Un programa libre (como linux) es aquel que puede ser
modificado libremente, conocer su código, por eso es que hay tantas
versiones de linux (distribuciones). Libre es diferente a gratuito, un
programa puede ser gratuito y no ser libre.
Hay muchos programas para programadores libres y algunos gratuitos:
1.- Gambas: Es un Programa libre, puede usarse en escritorio kde, o en escritorio gnome. Es ideal para empezar a programar.
2.- Varios programas libres de tercera generación para programar en muchísimos lenguajes, entre ellos C, C++, etc.
- Glade: Se usa en gnome.
- anjuta: Se usa en gnome.
- Kdevelop: Se usa en kde (no es libre, es gratuito).
- Eclipse: Usa java, C, C++, etc.
Consola
es algo así como el ms-dos de microsoft, pero muy superior, todos los
linux pueden trabajar desde consola o terminal, yo no la uso, me parece
muy anticuada, aunque hay algunos que les gusta usarla. Linux trabaja
con escritorios gráficos similares al de windows xp, entre ellos gnome y
kde, puedes acceder a la consola (terminal) desde el escritorio
gráfico.
Gambas:
Actualmente la manera más sencilla para programar
es con la programación visual (Gambas, visual Basic, etc.), considerada
de cuarta generación porque con pocos conocimientos puedes crear
programas, aunque tiene algunas desventajas respecto a los programas de
tercera generación.
Gambas es un programa que usa su propio lenguaje
(lenguaje gambas), es similar al conocido ms visual basic. Puedes crear
proyectos gráficos con ventanas o de terminal para trabajar desde
consola. Se instala desde synaptic (debes tener internet, o el dvd de
ubuntu).
Para crear una programa basta con abrir un formulario desde
la ventana proyecto. El formulario es la ventana que se abre al ejecutar
el programa, donde van los botones, texto, etc.
Si quieres agregas
algunas herramientas desde la ventana herramienta, y también puedes
agregar algo de código (ventana de modulo o clase),
Puedes ejecutar tu programa antes de crearlo (en la ventana proyecto vas al menu proyecto, y luego presionas ejecutar.
Luego creas tu programa:
Como .gambas, no puedes crear un .exe (se ejecuta desde consola, escribes ./nombredelprograma.gambas),
Comprimido como .tar.gz,
Empaquetado para algunas distribucioneslinux mandriva, debian, etc.
Anjuta: Se usa en escritorio gnome, lo instalas desde synaptic (lo buscas en la lista, dos click y listo).
Glade: Lo usas desde gnome e instalas desde synaptic.
Kdevelop:
Este programa solo está disponible para el escritorio kde, se instala
con solo dos click desde adept y puedes programar en muchos lenguajes.
Eclipse SDK:
Es
un Completísimo entorno de desarrollo integrado para Java y más.
Eclipse es una potente y completa plataforma de programación, desarrollo
y compilación de elementos tan variados como sitios web, programas en
C++ o aplicaciones Java.
Se trata de un entorno de desarrollo
integrado (IDE) en el que encontrarás todas las herramientas y funciones
necesarias para tu trabajo, recogidas además en una atractiva interfaz
que lo hace fácil y agradable de usar.
Cuentas con un editor de texto
donde puedes ver el contenido del fichero en el que estás trabajando,
una lista de tareas, y otros módulos similares. Si bien las funciones de
Eclipse son más bien de carácter general, las características del
programa se pueden ampliar y mejorar mediante el uso de plug-ins.
Como
habrás leído para programar significa saber el lenguaje de programación
necesario para crear tu programa, o si no te interesa, solo copia y
pega el código del programa (si es libre, existen millones de programas
libres disponibles). Eclipse usa varios lenguajes:
Lenguaje java:
http://es.wikipedia.org/wiki/Lenguaje_de_programacion_Java
Lenguaje C:
http://es.wikipedia.org/wiki/Lenguaje_de_programacion_C
Lenguaje C++:
http://es.wikipedia.org/wiki/C++