Anda di halaman 1dari 7

IDES para Java

Paola Nataly Brito Zambrano Mariuxi Beatriz Caguana Romero sukispukis@gmail.com mbcaguanar@gmail.com

Resumen
El presente documento contempla en su primera parte los conceptos bsicos sobre un IDE, sus componentes, sus caractersticas y la evolucin del mismo. Como segunda parte nos enfocamos en el desarrollo en Java con el uso de IDES, respondiendo a preguntas tpicas del usuario como Por qu un IDE? Cules son mis opciones?; cules son los requerimientos esenciales para desarrollar en java.

1. Introduccin
La importancia de Java radica en la posibilidad de crear o disear software que puede ser ejecutado en diferentes plataformas donde se requiera, sin la necesidad de estar modificndolo. Adems de esto, es una herramienta diseada con muchos elementos parecidos a C++ pero en una versin mejorada, ms sencilla de manejar, con menos complejidad y con barreras de seguridad en su lenguaje y ejecucin. Se dice que JAVA es portable, debido a que el cdigo que se genera es un cdigo independiente que es el que nos permitir poderlo usar en las distintas plataformas, sin que cambie la esencia del software diseado, esto quiere decir que ser el mismo programa en cualquier plataforma. De forma que para explotar todos los beneficios anteriormente mencionados, se necesita de una herramienta que ayude en el desarrollo de tan poderoso lenguaje, simplificando tareas para asi prevenir errores futuros.

2. Definicin
Un entorno de desarrollo integrado, llamado tambin IDE (sigla en ingls de integrated development environment), es un programa informtico compuesto por un conjunto de herramientas de programacin.

Puede dedicarse en exclusiva a un solo lenguaje de programacin o bien poder utilizarse para varios. Un IDE es un entorno de programacin que ha sido empaquetado como un programa de aplicacin, es decir, consiste en un editor de cdigo, un compilador, un depurador y un constructor de interfaz grfica (GUI). Los IDEs pueden ser aplicaciones por s solas o pueden ser parte de aplicaciones existentes. Los IDE proveen un marco de trabajo amigable para la mayora de los lenguajes de programacin tales como C++, PHP, Python, Java, C#, Delphi, Visual Basic, etc. En la fase de desarrollo de software intervienen varias herramientas en cada una de las distintas etapas hasta llegar a obtener el resultado final (un editor de texto, depuradores, compiladores). Es por ello por lo que se crea el IDE, un programa informtico que agrupa diversas herramientas de programacin para facilitar la tarea al programador y obtener mayor rapidez en el desarrollo, en l se puede llevar a cabo todo el desarrollo completo de un programa pues que proporciona componentes estrechamente unidos con interfaces de usuario similares. El objetivo es abstraer de la configuracin necesaria para reconstruir las utilidades de lnea de comandos en una unidad cohesiva, que en teora reduce el tiempo para aprender un lenguaje y aumenta la productividad del desarrollador. Este puede centrarse en un lenguaje o en varios, como es el caso de Eclipse que mediante plugins aade soporte a nuevos lenguajes. Actualmente, muchos entornos de desarrollo modernos tambin tienen un navegador de clases, un inspector de objetos, un diagrama de jerarqua de clases y un constructor de interfaz grfica (GUI), para su uso con el desarrollo de software orientado a objetos. Debido a esto, es un software de alta complejidad que necesita un periodo de adaptacin y aprendizaje por parte del programador para poder conseguir incrementar la productividad en el desarrollo. Estos entornos tambin pueden formar parte de un paquete mayor, denominado SDK (Software Developement Kit) que no es ni ms ni menos que un IDE junto a

documentacin tcnica y ejemplos de cdigo orientados especficamente a un sistema.

3. Componentes de un IDE
Como hemos podido ver un entorno de desarrollo se compone por varias herramientas integradas en una misma interfaz, estos componentes son:

3.1. Editor de Texto

3.1.2. Autocompletar. A medida que se va escribiendo el cdigo, el IDE ofrece un desplegable con sugerencias a lo que se quiere escribir, ayudando a escribir ms rpido. En esas sugerencias pueden salir constantes o funciones nativas de los lenguajes de programacin, o cualquier otra parte del cdigo que ya se haya desarrollado en el proyecto en uso. En la programacin orientada a objetos (POO), la funcin de autocompletado ayuda a encontrar propiedades o funciones de clases desarrolladas. Pero si el objeto no es creado a travs del operador new, el IDE no sabr de qu clase es el objeto, y no podr ofrecer las sugerencias correctamente. Es el tpico caso de los patrones de diseo de Factory, incluso dependiendo del caso podra ocurrir con el patrn Singleton. Una manera de informar al IDE sobre de que clase es el objeto que se esta utilizando, es aadir un comentario en el cdigo. 3.1.2. Pareo de llaves. El IDE es capaz de colocar o alertar llaves faltantes en el cdigo escrito, previniendo de esta manera errores posteriores. Estos editores tambin proveen un modo conveniente de ejecutar un compilador, un intrprete, un depurador, o cualquier otro programa que sea relevante en el proceso de desarrollo de software. Por lo que, si bien muchos editores de texto pueden ser usados para editar cdigo fuente sin problemas, si no mejoran, automatizan y facilitan la edicin del cdigo, no ameritan ser llamados "editores de cdigo fuente", y son nicamente editores de texto que pueden ser usados para editar cdigo fuente. Algunos editores de cdigo fuente verifican la sintaxis a medida que el programador escribe, alertando inmediatamente sobre los problemas de sintaxis que puedan surgir. Otros editores de cdigo fuente comprimen el cdigo, convirtiendo las palabras clave en tokens de un solo byte, eliminado espacios en blanco innecesarios y convirtiendo los nmeros a una forma binaria. Estos editores tokenizadores descomprimen el cdigo fuente al momento de visualizarlo, imprimindolo con los espacios y maysculas adecuadas. Existen editores que realizan ambas tareas.

Figura 1. Editor de Texto Un editor de cdigo fuente es un editor de texto diseado especficamente para editar el cdigo fuente de programas informticos. Puede ser una aplicacin individual o estar incluido en un entorno de desarrollo integrado, el cdigo del programa, lo que se llama comnmente el cdigo fuente, est compuesto por caracteres alfanumricos y caracteres especiales como *, +, -, /, {,}, (,)!, etc. Ofrece funciones para el usuario tal es como cortar, pegar, buscar. Los editores de cdigo fuente tienen caractersticas diseadas exclusivamente para simplificar y acelerar la escritura de cdigo fuente, como resaltado de sintaxis, autocompletar y pareo de llaves para que el cdigo fuente sea mucho ms visual, cmodo y podamos reconocer errores a simple vista, a continuacin se explican estas caractersticas: 3.1.1. Resaltado de Sintaxis. El resaltado de sintaxis es lo que hace que el editor muestre automticamente texto en diferentes estilos y colores, dependiendo de la funcin de la cadena en relacin al propsito del archivo. En el cdigo fuente de un programa, por ejemplo, las sentencias de control se pueden presentar en negrita, mientras que los tipos de datos y los comentarios pueden tener diferentes colores que el resto del texto. Esto mejora notablemente la legibilidad del texto, y ayuda al autor a ser ms eficiente y productivo.

3.2. Compilador

Python, MATLAB, y Ruby). Algunos aceptanlos archivos fuente guardados en esta representacin intermedia (Ejemplo: Python, UCSD Pascal y Java).

3.4. Depurador (Debugger)

Figura 2. Diagrama a bloques de la operacin de un


buen compilador.

Figura 3. Depurador Es un programa que permite depurar o limpiar los errores en el cdigo fuente de otro programa informtico. La depuracin, el depurador lanza el programa a depurar. ste se ejecuta normalmente hasta que el depurador detiene su ejecucin, permitiendo al usuario examinar la situacin. Se depuraran los errores de los programas. El depurador permite detener el programa en: aaaaaaaa 1. Un punto determinado mediante un punto de ruptura. En programacin, especialmente en depuracin del programa, un punto de parada o breakpoint, es una pausa intencional y controlada durante la ejecucin de un programa. 2. Un punto determinado bajo ciertas condiciones mediante un punto de ruptura condicional. 3. Un momento determinado cuando se cumplan ciertas condiciones. 4. Un momento determinado a peticin del usuario. 5. Durante esa interrupcin, el usuario puede: 6. Examinar y modificar la memoria y las variables del programa. 7. Examinar el contenido de los registros del procesador. 8. Examinar la pila de llamadas que han desembocado en la situacin actual. 9. Cambiar el punto de ejecucin, de manera que el programa contine su ejecucin en un punto diferente al punto en el que fue detenido. 10. Ejecutar instruccin a instruccin. 11. Ejecutar partes determinadas del cdigo, como el interior de una funcin, o el resto de cdigo antes de salir de una funcin. 12. El depurador depende de la arquitectura y sistema en el que se ejecute, por lo que sus

Un compilador es un programa informtico que traduce un programa escrito en un lenguaje de programacin a otro lenguaje de programacin, generando un programa equivalente que la mquina ser capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de mquina, pero tambin puede ser un cdigo intermedio (bytecode), o simplemente texto. Este proceso de traduccin se conoce como compilacin. Un compilador es un programa que permite traducir el cdigo fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (tpicamente lenguaje de mquina). De esta manera un programador puede disear un programa en un lenguaje mucho ms cercano a como piensa un ser humano, para luego compilarlo a un programa ms manejable por una computadora.

3.3. Intrprete o Interpretador


Es el programa que se encarga de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intrpretes se diferencian de los compiladores en que slo realizan la traduccin a medida que sea necesaria, tpicamente, instruccin por instruccin, y normalmente no guardan el resultado de dicha traduccin estos suelen ser ms lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son ms flexibles como entornos de programacin y depuracin y permiten ofrecer al programa interpretado un entorno no dependiente de la mquina donde se ejecuta el intrprete, sino del propio intrprete (lo que se conoce comnmente como mquina virtual), algunas implementaciones de programacin de lenguajes de programacin pueden interpretar o compilar el cdigo fuente original en una ms compacta forma intermedia y despus traducir eso al cdigo de mquina (ej. Perl,

funcionalidades cambian de un sistema a otro. Aqu se han mostrado las ms comunes.

3.5. Constructor de interfaz grfica

Figura 4. Interfaz Grfica en Netbeans Es una herramienta de programacin que simplifica la creacin de interfaces grficas de usuario permitiendo que el diseador para organizar los widgets utilizando un editor WYSIWYG de arrastrar y soltar. Sin un constructor de interfaz grfica de usuario, una interfaz grfica de usuario debe ser construido por especificar manualmente los parmetros de cada widget en el cdigo, sin retroalimentacin visual hasta que el programa se ejecuta. Las interfaces de usuario se suelen programar utilizando una arquitectura orientada a eventos, por lo que los constructores GUI tambin simplifican la creacin de cdigo orientado a eventos. Este cdigo se conecta a los reproductores de apoyo a los acontecimientos salientes y entrantes que activan las funciones de proporcionar la lgica de la aplicacin.

4. Caractersticas de los IDE


Los IDE ofrecen un marco de trabajo amigable para la mayora de los lenguajes de programacin tales como C++, Python, Java, C#, Delphi,Visual Basic, etc. En algunos lenguajes, un IDE puede funcionar como un sistema en tiempo de ejecucin, en donde se permite utilizar el lenguaje de programacin en forma interactiva, sin necesidad de trabajo orientado a archivos de texto, como es el caso de Smalltalk u Objective-C. Es posible que un mismo IDE pueda funcionar con varios lenguajes de programacin. Este es el caso de Eclipse, al que mediante plugins se le puede aadir soporte de lenguajes adicionales. Un IDE debe tener las siguientes caractersticas: Multiplataforma. o Multiplataforma es un trmino usado para referirse a los programas, sistemas operativos, lenguajes de programacin, u

otra clase de software, que puedan funcionar en diversas plataformas. Soporte para diversos lenguajes de programacin. Integracin con Sistemas de Control de Versiones. o Se llama control de versiones a la gestin de los diversos cambios que se realizan sobre los elementos de algn producto o una configuracin del mismo. Una versin, revisin o edicin de un producto, es el estado en el que se encuentra dicho producto en un momento dado de su desarrollo o modificacin. Los sistemas de control de versiones facilitan la administracin de las distintas versiones de cada producto desarrollado, as como las posibles especializaciones realizadas (por ejemplo, para algn cliente especfico). Reconocimiento de Sintaxis. Extensiones y Componentes para el IDE. Integracin con Framework populares. o Framework o infraestructura digital, es una estructura conceptual y tecnolgica de soporte definido, normalmente con artefactos o mdulos de software concretos, con base a la cual otro proyecto de software puede ser ms fcilmente organizado y desarrollado. Tpicamente, puede incluir soporte de programas, bibliotecas, y un lenguaje interpretado, entre otras herramientas, para as ayudar a desarrollar y unir los diferentes componentes de un proyecto. Depurador. Importar y Exportar proyectos. Mltiples idiomas. Manual de Usuarios y Ayuda.

A la hora de crear arte hecho cdigo fuente, muchas veces necesitamos un buen editor para escribir nuestro cdigo, un compilador a mano o interprete segn corresponda a nuestro lenguaje de programacin, una conexin a su base de datos fcil y rpida si es que utilizamos una. En fin muchas veces necesitamos escoger para nuestro lenguaje un Entorno de Desarrollo Integrado (IDE).

5. Evolucin de los IDE


El desarrollo de los primeros IDE fue elaborado a partir de consolas o de terminales. Los sistemas ms antiguos no fueron capaces de soportarlos debido a que los programas se creaban a partir de diagramas de flujo,

entrando en ellos a partir de tarjetas perforadas o cintas de papel antes de ser compilados. El primer idioma que fue creado a partir de un ID fue Dartmouth BASIC al igual que tambin fue el primero en ser diseado para su uso mientras se est sentado delante de una consola o de un terminal. Su IDE estuvo basada en comandos, al contrario que hoy en da hoy donde predominan las basadas en entornos de desarrollo grfico. Sin embargo, su herramienta de edicin integrada, de gestin de archivos, de compilacin, de depuracin y de ejecucin son caractersticas compartidas con los IDES actuales. El primer entorno de desarrollo integrado para software fue Maestro I, producto de Softlab. Munich elaborado en el ao 1975 e instalado por ms de 22 millones de programadores de todo el mundo (hasta el ao 1989, ms de 6.000 instalaciones fueron realizadas en la Repblica Federal de Alemania). Maestro I fue sin duda alguna el lder mundial en este campo durante los aos 1970 y 1980. Actualmente podemos encontrar uno de los ltimos Maestro I en el Museo de Tecnologa de la Informacin en Arlington (Texas, USA)Cabe hablar de Softbench, una de las primeras IDEs con el concepto plug-in (un mdulo de hardware o software que aade una caracterstica o un servicio especfico a un sistema ms grande, es decir, el nuevo componente se enchufa simplemente al sistema existente. Por ejemplo, hay un gran nmero de plug-ins para el navegador Firefox que te permiten utilizar diversas herramientas y el plug-in de Flash, permite ver animaciones en Flash en cualquier navegador) o como el IDE Eclipse que aade soporte para nuevos lenguajes a base de plugins. Por ultimo queda hablar de las nuevas tendencias, la nueva filosofa Cloud Computing (la Nube). Hoy en da nos podemos encontrar con aplicaciones online tales como WIX, para realizar portales web en flash, o tener toda nuestra msica en http://listen.grooveshark.com. Google es uno de los ms punteros en este mbito cabe destacar Maps, Traductor, Reader, procesador de texto o hojas de clculo en Google Docs. Como podemos observar se tiende hacia una terminal gregaria (tonta) que se conecte a un proveedor de servicios a travs de Internet y este le ofrezca todas las aplicaciones necesarias y el acceso a sus datos, dando igual de donde se conecte porque va a tener todos sus datos y configuraciones en la internet y no depender tampoco de la potencia de clculo de su equipo si no de los servidores del proveedor.

en una lnea de comandos desde donde invocar al editor, al compilador y probar el programa, hasta los sofisticados entornos integrados de desarrollo (IDE).

7. La oferta de IDEs en el mundo JAVA

Figura 5. Logo de Java Las caractersticas de un lenguaje como JAVA hacen que sea difcil encarar un desarrollo corporativo si no es de la mano de un buen IDE. Si bien existe cierto consenso en que es mejor iniciarse en el lenguaje trabajando primero en crudo, con un editor raso desde una lnea de comandos, en algn punto ser necesario cambiar esta modalidad de trabajo por un IDE. La particular curva de aprendizaje de JAVA, y el carcter modular del cdigo es un factor determinante por el cual los desarrolladores recurren a un Entorno de Desarrollo Integrado (IDE) con el fin de facilitar su tarea de aprendizaje y desarrollo. La oferta de IDEs para lenguaje JAVA es realmente abundante y variada, y es destacable el nivel de sofisticacin que se puede obtener an de los productos sin costo (freeware, shareware, o GNU). La eleccin de un IDE no es simple, y mucho menos en los entornos JAVA donde existen muchas variantes de programacin. Adems de las preferencias personales, la afinidad con otros IDEs que uno ya conozca de otros entornos es relevante. Asimismo, un producto puede ser ideal para quienes explotan determinada funcionalidad del lenguaje (por ejemplo, applets), pero no contemplar otras (por ejemplo, servlets). Otros sirven slo para una plataforma (por ejemplo Linux), y no funcionan para otras (por ejemplo, Windows). Algunos tienen un footprint que permite instalarlos en casi cualquier mquina, mientras que otros sern ms adecuados para un entorno Enterprise. Tambin existen casos especiales donde un IDE se presenta fuertemente integrado con un Application Server para permitir desarrollos asociados a ese producto. Por ejemplo, SAP ofrece el entorno NetWeaver Studio, basado en Eclipse junto con el SAP Web Application Server. IBM ofrece WebSphere Development Studio para desarrollar con el WebSphere Application Server. (Ver notas finales). Probablemente ser necesario considerar y probar ms de una opcin antes de establecerse por una de

6. Por qu un IDE?
Cualquiera que sea el lenguaje que se utilice, es necesario contar con medios para que los desarrolladores puedan editar el cdigo, compilar y ejecutar los programas. Los entornos de programacin pueden variar desde la forma ms rudimentaria, basada

ellas. La mayora de los programadores experimentados han trabajado con varios IDEs distintos. Cambiar de IDE no debera ser traumtico, salvo en un proyecto muy grande, muy avanzado y con muchos programadores. Adems de los IDEs de licencia gratuita, la mayora de los IDEs comerciales, ofrecen versiones light que tambin son gratis, pero con funcionalidades recortadas. Otros ofrecen la versin completa pero en calidad de evaluacin por una cantidad limitada de das.

WinEdit TextPad

9.3. Commercial Ware


Sun ONE Studio 4 Enterprise Edition Intellij IDEA Metrowerks Code Warrior Borland JBuilder IBM Visual Age for Java IBM WebSphere Development Studio Client

8. Plug-ins
Un aspecto a considerar tambin en la eleccin de un IDE es la posibilidad de acoplarle plug-ins (agregados) para cubrir cierta funcionalidad especfica. Muchos IDE se componen de un Kernel bsico, al que se le puede opcionalmente sumar uno o ms plug-ins con funciones no cubiertas en el kernel: por ejemplo, un project viewer, una herramienta de debugging, un administrador de clases, etc. La integracin de un IDE con una determinada plataforma servidora, como en el caso de SAP NetWeaver o IBM WebSphere, tambin se logra con un conjunto de plug-ins. Algunos IDE ofrecen un plug-in manager para comandar la seleccin y el acoplado de los mismos.

10. Caractersticas deseables en un IDE JAVA


Adems de las caractersticas obvias y generales que un IDE debe ofrecer, mencionadas anteriormente (editor con correccin sintctica y coloreo, herramientas grficas, soporte integrado para la compilacin y ejecucin de programas, opciones de debugging, etc.) consideramos que un IDE JAVA debe tener: Code Completion: Capacidad de desplegar automticamente el package (contenedor de clases que permite agrupar las distintas partes de un programa cuya funcionalidad tienen elementos comunes), las clases que lo componen y los mtodos disponibles para cada una de ellas. Method Viewer: Ventana con la lista de mtodos de una clase, en un rbol expandible. Class Viewer: Ventana con la lista de clases del documento activo, en un rbol expandible. File Viewer: Ventana con la lista de todos los archivos de un proyecto, en un rbol expandible. Sin esto, el IDE no sera ms que un editor potente.

9. Lista parcial de los IDEs ms populares


A continuacin presentamos una lista parcial de algunos de los IDE para JAVA ms difundidos. Esta lista no pretende abarcar la totalidad de las herramientas disponibles, sino brindar una primera idea del universo de productos para explorar. La lista enumera los principales IDEs disponibles SIN COSTO, ya sea como freeware, shareware, o GNU General Public License. Por freeware se entiende el software que se puede copiar SIN COSTO y distribuir libremente, pero sin la posibilidad de modificarlo, ya que no se incluyen las fuentes con la distribucin del mismo. En el caso de shareware se suma al concepto anterior, la necesidad de registrarse como usuario y pagar por ese mantenimiento. Por ltimo, existen las licencias GNU, tambin sin costo, que se explican en la prxima seccin.

11. Mquina Virtual Java


El lenguaje Java es a la vez compilado e interpretado. Con el compilador se convierte el cdigo fuente que reside en archivos cuya extensin es .java, a un conjunto de instrucciones que recibe el nombre de bytecodes que se guardan en un archivo cuya extensin es .class. Estas instrucciones son independientes del tipo de ordenador. El intrprete ejecuta cada una de estas instrucciones en un ordenador especfico (Windows, Mac, Ubuntu, etc). Solamente es necesario, por tanto, compilar una vez el programa, pero se interpreta cada vez que se ejecuta en un ordenador. La Mquina Virtual Java (JVM) es el entorno en el que se ejecutan los programas Java, su misin principal es la de garantizar la portabilidad de las aplicaciones Java. Define esencialmente un ordenador abstracto y especifica las instrucciones (bytecodes) que este ordenador puede ejecutar. El intrprete Java especfico

9.1. IDEs Freeware o GNU


Sun ONE Studio 4 (Update 1) Community Edition JEdit JCreator NetBeans

9.2. Shareware

ejecuta las instrucciones que se guardan en los archivos cuya extensin es .class. Las tareas principales de la JVM son las siguientes: Reservar espacio en memoria para los objetos creados. Liberar la memoria no usada (garbage collection). Asignar variables a registros y pilas. Llamar al sistema husped para ciertas funciones, como los accesos a los dispositivos. Vigilar el cumplimiento de las normas de seguridad de las aplicaciones Java.

[8] La Mquina virtual de Java http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundament os/introduccion/virtual.htm

Esta ltima tarea, es una de las ms importantes que realiza la JVM. Adems, las propias especificaciones del lenguaje Java contribuyen extraordinariamente a este objetivo: Las referencias a arrays son verificadas en el momento de la ejecucin del programa. No hay manera de manipular de forma directa los punteros. La JVM gestiona automticamente el uso de la memoria, de modo que no queden huecos. No se permiten realizar ciertas conversiones a(casting) entre distintos tipos de datos.

12. Referencias
[1] Mashable Tech http://mashable.com/2010/10/06/ideguide/ [2] EcuRed http://www.ecured.cu/index.php/IDE_de_Programaci %C3%B3n [3] El Cdigo K http://elcodigok.blogspot.com/2007/09/que-son-los-idede-programacin.html [4] Scribd Entornos de Desarrollo Integrado http://es.scribd.com/doc/41884812/Entornos-deDesarrollo-Integrados#download [5] Otro blog ms - Autocompletado en Netbeans y Eclipse http://otroblogmas.com/autocompletadonetbeans-eclipse/ [6] Departamento de Informtica http://iawgc.wikispaces.com/Herramientas+de+edici %C3%B3n+de+c %C3%B3digo+y+entornos+de+desarrollo. [7] Teknoda Notas tcnicas Java http://www.teknoda.com.ar/tips/java/tipja01.pdf

Anda mungkin juga menyukai