Pages

Banner 468

miércoles, 6 de noviembre de 2013

Herramientas para programar en GNU/Linux

0 comentarios
 

Herramientas para programar en GNU/Linux

Una de las características más destacadas de todo sistema GNU/Linux es el gran entorno de programación que ofrece y que posibilita trabajar con todo tipo de lenguajes y módulos. Para sacarle el mayor provecho, contamos con varias herramientas que cubren todas nuestras necesidades en lo que a programación se refiere.
1. Bluefish: es software libre y el mejor para editar archivos HTML. Su fuerte se basa en facilidad de uso, disponibilidad para varios idiomas y compatibilidad de sintaxis con otros “patrones”, como por ejemplo XML, Python, PHP, Javascript, JSP, SQL, Perl, CSS, Pascal, R, Coldfusion y Matlab. Soporta caracteres multibyte, unicode, UTF-8 y al estar escrito en C y GTK posee un escaso uso de memoria, menor que otras herramientas de su estilo.

 Página oficial: http://bluefish.openoffice.nl/index.html
 Descarga: sudo apt-get install bluefish

2. Anjuta: un IDE (entorno de desarrollo integrado) que trabajaba con C y C++ y en la actualidad a extendido su soporte hacia Java, Python y Vala. A partir de la versión 2 incluye el nuevo soporte a extensiones, lo cual lo dota con mayor funcionalidad que la versión anterior. También es de destacar el coloreado de sintaxis y su integración con Glade para la creación de interfaces gráficas.

Página oficial: http://www.anjuta.org/
Descarga: sudo apt-get install anjuta

3. Glade: es una herramienta de desarrollo de interfaces gráficas (GUI) programado en C y GTK. Este tipo de herramientas son independientes de un lenguaje de programación específico, sin embargo los lenguajes de mayor soporte incluyen C, C++, C#, Java, Vala, Perl y Python, entre otros. La versión 3 fue totalmente reescrita para tomar ventaja de las características de GTK+, disminuyendo las líneas de código, permitiendo su integración con Anjuta. Utiliza un formato de XML llamado GtkBuilder para almacenar los datos de las interfaces creadas.

Página oficial: http://glade.gnome.org/ 
Descarga: sudo apt-get install glade

4. GCC (Colección de Compiladores de GNU): es un conjunto de compiladores creados por GNU que en un principio compilaba para el lenguaje C. Actualmente soporta “front ends” para C, C++, Java, Ada, Objective C, Objective C++ y Fortran, y soporta otros lenguajes de forma no estándar, como por ejemplo Go, Pascal , Modula 2, Modula 3 y D. Las ventajas de usar GCC para compilar radican en la optimización del código basado en el microprocesador propio, comprobación de errores, depuración y optimización en las llamadas a subrutinas.

Página oficial: http://gcc.gnu.org/
Descarga: sudo apt-get install gcc-(versión)


5. Kdevelop: otro IDE que se encuentra optimizado para distribuciones que usen KDE como entorno gráfico. Soporta C, C++ y PHP. Como con otros IDEs, la versión 4 fue totalmente reescrita en C++ usando las librerías gráficas de qt, las mismas que permiten su integración con QtDesigner. Al carecer de compilador propio es necesario instalar también GCC. Algunas de sus características más útiles son el navegador entre clases de la aplicación y el soporte para la definición de las clases y el framework.

Página oficial: http://kdevelop.org/
Descarga: sudo apt-get install kdevelop

6. Eclipse: un IDE programado en Java con más de 2 millones de líneas de código. Es muy usado por su soporte a múltiples idiomas, así como también a varios lenguajes de programación como por ejemplo Java, C, C++, Ada, Perl, PHP, JSP, sh y Python, muchos de ellos a través de plugins comunitarios. Los plugins además añaden otras funcionalidades importantes, como la posibilidad de que varios usuarios trabajen en un mismo proyecto y la extensión del IDE hacia otras herramientas. Es reconocido por la larga trayectoria que lleva, y es el IDE preferido por los programadores para crear nuevas herramientas de programación y aplicaciones del tipo “cliente”.

Página oficial: http://www.eclipse.org/ 
Descarga: sudo apt-get install eclipse

7. Kate: muchos conocerán este editor de texto para la plataforma KDE, y si bien no ofrece miles de herramientas, es su simpleza la cual lo destaca como una alternativa a muchas otras. Programada en C++ y qt, sus principales características son el coloreado de sintaxis extensible mediante XML, soporte de sesiones y seguimiento de código para C, C++, Java y otros lenguajes. Es una de las herramientas incluídas en el paquete KDEBase y es usada como editor de texto por KDevelop y Quanta Plus

Página oficial: http://kate.kde.org/ 
Descarga: sudo apt-get install kate

8. Aptana Studio: otro “peso pesado” entre los IDEs y viejo conocido por los programadores. En la actualidad se encuentra altamente desarrollado y su extensión mediante plugins extienden su utilidad hacia varios lenguajes de programación, entre los cuales se destacan PHP, Python, Ruby, Rails, CSS, HTML, Ajax, JavaScript y C. Además permite el seguimiento de los directorios del proyecto, asistente el desarrollo web, depuración, conexión vía FTP, librerías de Ajax y soporte para plugins de Eclipse.

Página oficial: http://www.aptana.com/

9. Emacs: un editor de texto extendido creado por GNU y programado en C y Lisp. Creado en 1975 por Richard Stallman, ha recorrido un largo camino y actualmente existen varias “implementaciones”, como por ejemplo XEmacs. Funciona como un editor simple que permite a los programadores editar, compilar y depurar el código. Existen también bibliotecas que extienden su funcionalidad y sus propios comandos internos.

Página oficial: http://www.gnu.org/software/emacs/ 
Descarga: sudo apt-get install emacs


10. GNUStep: un conjunto de bibliotecas orientadas a objetos, aplicaciones y herramientas escritas en Objective C para el desarrollo de aplicaciones de escritorio. Está compuesta por dos “programas”: Project Center es el editor general del proyecto y GORM para la creación de interfaces gráficas. Así mismo reúne otras herramientas como make, GUI, base y back.
Página oficial: http://www.gnustep.org/

11. HBasic: una de las alternativas al Visual Basic de Microsoft, un IDE que integra tanto edición de código como creación de interfaces gráficas, para lo cual usa las librerías gráficas de KDE. También es posible realizar “llamadas” a las librerías de qt y creados ejecutables directamente con el compilador del programa. No se han lanzado más versiones estables desde julio del 2009.

Página oficial: http://hbasic.sourceforge.net/
Descarga: sudo apt-get install hbasic


12. Lazarus: un IDE programado en Object Pascal desarrollado a partir de Free Pascal, multiplataforma y que sirve como alternativa a Delphi. Permite la creación de programas con entornos visuales y apunta precisamente a la portabilidad de los programas compilados, es decir, que estos puedan ejecutarse en varios sistemas operativos. Es notable su compatibilidad con varios gestores de bases de datos, como por ejemplo Firebird, PostgreSQL, dBase, FoxPro, MySQL, SQLite, Oracle y Microsoft SQL Server.

Página oficial: http://www.lazarus.freepascal.org/
Descarga: sudo apt-get install lazarus


13. Netbeans: un IDE “hecho en Java para Java”. Al ser de código abierto, su desarrollo se dio maratónicamente en los últimos años, permitiendo incluir extensiones para trabajar con C, C++, PHP, Ruby, Rails y Phyton. Sus funcionalidades son provistas por módulos escritos en Java, así como también existen varios de estos módulos que funcionan como plugins al estilo de Eclipse o Aptana. Hoy en día es uno de los IDEs más usados por los programadores de Java y Python.

Página oficial: http://www.netbeans.org/index_es.html
Descarga: sudo apt-get install netbeans


14. QtCreator: otro IDE que ayuda a la creación de interfaces gráficas sin necesidad de estar escritas en un lenguaje en particular. Utiliza las librerías gráficas de qt y mediante plugins es posible portar los proyectos a lenguajes como Python, C, C++, Java y Ruby. El IDE permite el seguimiento del código del proyecto, sus directorios y la depuración mediante gdb. Quizás la característica más fuerte es la posibilidad de crear tanto aplicaciones de escritorio como para móviles. Su punto más débil es el consumo de memoria un tanto alto.

Página oficial: http://qt.nokia.com/products/developer-tools
Descarga: sudo apt-get install qtcreator


15. Quanta Plus: la competencia de Bluefish es Quanta, un IDE para el desarrollo web que viene perdiendo terreno pero aún así es una gran herramienta diseñada para KDE (forma también parte del paquete kdewebdev). Cuenta con soporte SSH y FTP, previsualización mediante su motor KHTML, resaltado de sintaxis y un analizador que informa acerca de la correcta creación de nuestras páginas.

Página oficial: http://quanta.kdewebdev.org/

16. Gambas: la segunda alternativa a Visual Basic y que soporta la creación de aplicaciones en Qt o GTK, con bases de datos como MySQL, PostgreSQL y SQLite. Entre sus puntos fuertes podemos mencionar la familiaridad con el IDE de Microsoft, atajos de fragmentos de código, depuración y la inclusión de programas de ejemplo

Página oficial: http://gambas.sourceforge.net/en/main.html
Descarga: sudo apt-get install gambas


17. Android SDK: para los programadores de Android resulta muy cómodo disponer de este programa. No solo incluye las herramientas básicas para empezar a crear aplicaciones en Android, sino también otras como gestor de paquetes, APIs de Google, documentación, códigos y programas de ejemplo, herramientas extendidas de desarrollo y otros. Es de destacar el paquete NDK que permite incluir en la aplicación código de otros lenguajes como C o C++.

Página oficial: http://developer.android.com/sdk/index.html

18. WxFormBuilder: pequeña herramienta que permite la creación de un entorno gráfico para pequeñas aplicaciones mediante la librería wx. Es recomendable ver también otras aplicaciones como wxWidgets, un framework gráficos que permite enlazarse (a través de scripts llamados “bindings”) con varios lenguajes como Ruby, Python, Perl, D, C y C++

Página oficial: http://sourceforge.net/projects/wxformbuilder/
19. Ilumination software creator: Esta herramienta es algo completamente distinto a todo lo que vimos anteriormente. Es probablemente el programa de desarrollo mas facil de usar y tenemos la posibilidad de crear apps para iOS, Android, Web(HTML5), Linux(Python GTK), windows y Mac OS. Tenemos unos artículos especialmente dedicados a el en Powered By Linux.

Página oficial: http://lunduke.com/illumination-software-creator/
Descarga: http://www.lunduke.com/dl/isc-6.0-linux32bit.tar.gz


20. Sublime Text: Se trata un editor de código al estilo TextMate, Scribes, Kate o Redcar. Su interfaz es limpia e intuitiva y soporta el uso de Snippets, Plugins y sistemas de construcción de código (Build Systems).

Página oficial: http://www.sublimetext.com/
Descarga:
 Agregamos el repositorio al sistema con el siguiente código: sudo add-apt-repository ppa:webupd8team/sublime-text-2
Ahora, actualizamos e instalamos Sublime Text. 
sudo apt-get update 
sudo apt-get install sublime-text
Leer mas...
viernes, 1 de noviembre de 2013

Sumar Números Enteros con JAVA

0 comentarios
 

Siguiendo con el post anterior, esta ves un pequeño ejemplo de lo que podemos hacer con java en unas cuantas lineas de código. Crearemos un programa "Calcular.java", luego crearemos 3 variables de tipo int para las variables "a" y "b" le asignaremos cualquier valor que queramos sumar. Y a la variable "c" le asignaremos el valor de la suma de " a + b ", para luego imprimir "c".
public class Calcular{
 
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        int c;
        c = a + b;
        System.out.println(c);
    }
}
Leer mas...

Hola Mundo en JAVA

0 comentarios
 

Como es costumbre en diversos lenguajes de programación, esta ves vamos a hacer nuestra primera aplicación  llamada "Hola Mundo".
La idea es mostrar un mensaje en pantalla de nuestra primera aplicación con el siguiente código.

public class HolaMundo {
    /**
     * @param args
     */
    public static void main(String[] args) {
 
        System.out.println("Hola mundo");
    }
 
}
Leer mas...

Java, el LENGUAJE

0 comentarios
 

INTRODUCCIÓN
Estamos en unos días en los que cada vez más la informática invade más campos de nuestra
vida, estando el ciudadano medio cada vez más familiarizado con términos del mundo
informático, entre ellos, como no, los lenguajes de programación. A cualquier persona que
haya empleado alguna vez un ordenador le resultará familiar alguno de estos nombres: C,
Pascal, Cobol, Visual Basic, Java, Fortran ..... y a una persona ya más introducida en ese
mundillo posiblemente haya oído muchos otros: Oak, Prolog, Dbase, JavaScrip, Delphi,
Simula, Smalltalk, Modula, Oberon, Ada, BCPL, Common LISP, Scheme... En la actualidad se
podrían recopilar del orden de varios cientos de lenguajes de programación distintos, sino
miles.
Cabe hacerse una pregunta: ¿Para qué tanto lenguaje de programación?. Toda esta multitud
de nombres puede confundir a cualquier no iniciado que haya decidido aprender un
lenguaje, quien tras ver las posibles alternativas no sabe cual escoger, al menos entre los del
primer grupo, que por ser más conocidos deben estar más extendidos.
El motivo de esta disparidad de lenguajes es que cada uno ha sido creado para una
determinada función, está especialmente diseñado para facilitar la programación de un
determinado tipo de problemas, para garantizar seguridad de las aplicaciones, para obtener
una mayor facilidad de programación, para conseguir un mayor aprovechamiento de los
recursos del ordenador... Estos objetivos son muchos de ellos excluyentes: el adaptar un
lenguaje a un tipo de problemas hará más complicado abordar mediante este lenguaje la
programación de otros problemas distintos de aquellos para los que fue diseñado. El facilitar
el aprendizaje al programador disminuye el rendimiento y aprovechamiento de los recursos
del ordenador por parte de las aplicaciones programadas en este lenguaje; mientras que
primar el rendimiento y aprovechamiento de los recursos del ordenador dificulta la labor del
programador.
La pregunta que viene a continuación es evidente: ¿Para qué fue pensado Java?.
A esto responderemos en el siguiente apartado.



1.2 Características de Java
A continuación haremos una pequeña redacción de las características del lenguaje, que nos
ayudarán a ver para que tipo de problemas está pensado Java:

1.2.1 Simple
Es un lenguaje sencillo de aprender. Su sintaxis es la de C++ “simplificada”. Los creadores de
Java partieron de la sintaxis de C++ y trataron de eliminar de este todo lo que resultase
complicado o fuente de errores en este lenguaje. La herencia múltiple, la aritmética de
punteros, por la gestión de memoria dinámica (que en Java se elimina de modo transparente
para el programador gracias al recogedor basura) son ejemplos de "tareas complicadas" de
C++ y en Java se han eliminado poco simplificado.

1.2.2 Orientado a Objetos
Posiblemente sea el lenguaje más orientado a objetos de todos los existentes; en Java todo, a
excepción de los tipos fundamentales de variables (int, char, long...) es un objeto.

1.1.1 Distribuido
Java está muy orientado al trabajo en red, soportando protocolos como TCP/IP, UDP, HTTP y
FTP. Por otro lado el uso de estos protocolos es bastante sencillo comparandolo con otros
lenguajes que los soportan.

1.1.2 Robusto
El compilador Java detecta muchos errores que otros compiladores solo detectarían en tiempo
de ejecución o incluso nunca. A esclarecer así por ejemplo " if(a=b) then ... " o " int i; h=i*2; "
son dos ejemplos en los que el compilador Java no nos dejaría compilar este código; sin
embargo un compilador C compilaría el código y generaría un ejecutable que ejecutaría esta
sentencia sin dar ningún tipo de error).

1.1.3 Seguro
Sobre todo un tipo de desarrollo: los Applet. Estos son programas diseñados para ser
ejecutados en una página web. Java garantiza que ningún Applet puede escribir o leer de
nuestro disco o mandar información del usuario que accede a la página a través de la red
(como, por ejemplo, la dirección de correo electrónico). En general no permite realizar
cualquier acción que pudiera dañar la máquina o violar la intimidad del que visita la página
web.

1.1.4 Portable
En Java no hay aspectos dependientes de la implementación, todas las implementaciones de
Java siguen los mismos estándares en cuanto a tamaño y almacenamiento de los datos.
Esto no ocurre así en C++, por ejemplo. En éste un entero, por ejemplo, puede tener un
tamaño de 16, 32 o más bits, siendo lo única limitación que el entero sea mayor que un short
y menor que un long int. Así mismo C++ bajo UNIX almacena los datos en formato little
endian, mientas que bajo Windows lo hace en big endian. Java lo hace siempre en little edian
para evitar confusiones.

1.1.5 Arquitectura Neutral
El código generado por el compilador Java es independiente de la arquitectura: podría
ejecutarse en un entorno UNIX, Mac o Windows. El motivo de esto es que el que realmente
ejecuta el código generado por el compilador no es el procesador del ordenador
directamente, sino que este se ejecuta mediante una máquina virtual. Esto permite que los
Applets de una web pueda ejecutarlos cualquier máquina que se conecte a ella
independientemente de que sistema operativo emplee (siempre y cuando el ordenador en
cuestión tenga instalada una máquina virtual de Java).

1.1.6 Rendimiento medio
Actualmente la velocidad de procesado del código Java es semejante a la de C++, hay ciertos
pruebas estándares de comparación (benchmarks) en las que Java gana a C++ y viceversa.
Esto es así gracias al uso de compiladores just in time, compiladores que traduce los
bytecodes de Java en código para una determinada CPU, que no precisa de la máquina virtual
para ser ejecutado, y guardan el resultado de dicha conversión, volviéndolo a llamar en caso de
volverlo a necesitar, con lo que se evita la sobrecarga de trabajo asociada a la interpretación
del bytecode.

No obstante por norma general el programa Java consume bastante más memoria que el
programa C++, ya que no sólo ha de cargar en memoria los recursos necesario para la
ejecución del programa, sino que además debe simular un sistema operativo y hardware
virtuales (la máquina virtual). Por otro lado la programación gráfica empleando las librerías
Swing es más lenta que el uso de componentes nativos en las interfaces de usuario.
En general en Java se ha sacrificado el rendimiento para facilitar la programación y sobre todo
para conseguir la característica de neutralidad arquitectural, si bien es cierto que los avances
en las máquinas virtuales remedian cada vez más estas decisiones de diseño.

1.1.7 Multithread
Soporta de modo nativo los threads, sin necesidad del uso de de librerías específicas (como es
el caso de C++). Esto le permite además que cada Thread de una aplicación java pueda correr
en una CPU distinta, si la aplicación se ejecuta en una máquina que posee varias CPU. Las
aplicaciones de C++ no son capaces de distribuir, de modo transparente para el
programador, la carga entre varias CPU.


1.2 JAVA FRENTE A LOS DEMÁS LENGUAJES

Java es un lenguaje relativamente moderno. Su primer uso en una “tarea seria” de
programación fue la construcción del navegador HotJava por parte de la empresa Sun en
mayo de 1995, y fue a principios de 1996 cuando Sun distribuye la primera versión de Java. Es
esta corta edad lo que hace que Java esté más orientado al mundo web, que no existía
cuando, por ejemplo, C fue desarrollado.
También es esto lo que ha hecho que soporte de modo nativo (no mediante el uso de
librerías, como C) los threads, siendo posible aprovechar las ventajas de los sistemas
multiprocesadores.
Las ventajas fundamentales de Java frente a otros lenguajes son el menor periodo de
aprendizaje por parte del programador, llegando a ser un programador productivo en menos
tiempo (sencillez) y siendo posible desarrollar aplicaciones más rápido que en otros lenguajes
(sencillez y robustez), lo cual se traduce en el mundo empresarial en un ahorro de costes.
Sus cualidades de distribuido, seguro e independencia de la plataforma lo hacen ideal para
aplicaciones relacionadas con el mundo web; precisamente a esto es a lo que Java debe su
gran difusión y fama. El hecho de que sea independiente de la máquina y del sistema
operativo permite que distintas máquinas con distintos sistemas operativos se conecten a una
misma página web y ejecuten los mismos applets. Además la seguridad que garantiza Java
para los applets impiden que alguien trate de averiguar información sobre los usuarios que se
conectan a la página web o intente dañar sus máquinas.
En cuanto a su capacidad de soporte de threads y su capacidad de sacarle partido a sistemas
multiprocesador lo convierten en un lenguaje más “orientado hacia el futuro “. Estas
cualidades podrían dar pie a que algún día los rendimientos computacionales de Java sean
comparables con los de C++ y otros lenguajes que hoy son computacionalmente más
eficientes.
Leer mas...