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
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.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).
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.
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.
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).
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).
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
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.
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.
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