Tres alternativas al uso de Eclipse

COMPARTIR 0 TWITTEAR

BlueJ-logo

En este artículo os traemos tres IDE que pueden usarse como alternativa a Eclipse para programar en Java. Los siguientes IDE no están todos pensados como un opción al uso de Eclipse si no como una alternativa si con Eclipse no eres capaz de entenderte con él o te resulta muy complejo. Por ejemplo, si las opciones que trae Eclipse son demasiado complejas para ti puedes empezar probando con BlueJ.

BlueJ

BlueJ es un IDE pensado para un entorno educativo. Fue desarrollado por la Universidad de Kent y por ello es el IDE utilizado en la gran mayoría de universidades de todo el mundo para introducir la programación.

Como IDE presenta una interfaz amigable, pero con herramientas muy escasas destinadas en su mayoría a la programación orientada a objetos. El soporte para pruebas de software no esta completo y no tiene un buen sistema de refactor, por ejemplo, no se pueden generar los setters y getters, aunque si mediante el uso de extensiones. Una gran ventaja que genera es que cuando vas generando el código el programa te genera un diagrama UML con todo tu trabajo.

Diagrama UML en BlueJ

Ventajas

  • Sencillo y muy intuitivo, ideal para los principiantes.
  • Completamente gratuito y multiplataforma.
  • Con una gran cantidad de libros escritos en español que utilizan este IDE.
  • Crea de forma nativa un diagrama UML mientras trabajas.

Desventajas

  • Las opciones de refactor son casi nulas.
  • Solo soporta de forma nativa un lenguaje: Java.
  • El soporte de pruebas de software es muy escaso.

BlueJ | BlueJ y extensiones de BlueJ

NetBeans

NetBeans es el sustituto natural de Eclipse ya que también se trata de un IDE ideado para desarrolladores profesionales, además de que es completamente gratuita.

Ejemplo codigo

Ventajas

  • Un IDE de una gran potencia, todas las opciones de refactor las tiene.
  • Gran soporte para pruebas.
  • Completamente gratuito y multiplataforma.
  • Gran cantidad de extensiones que te permiten desde crear una buena interfaz gráfica a diseñar diagramas UML.
  • Soporte para varios lenguajes mediante extensiones como: Python o Perl.

Desventajas

  • Dominarlo trae consigo una importante curva de aprendizaje.
  • Es un IDE que presenta la gran mayoría de su documentación e interfaz en inglés.

NetBeans | NetBeans y extensiones de NetBeans

JBuilder

JBuilder es un IDE que surgió del desarrollo de Eclipse. Es de pago y presenta importante mejoras en cuanto a herramientas de modelado. Se puede resumir en que es una versión de Eclipse que incluye de forma nativa grandes herramientas de modelado y una interfaz un poco más amigable.

Pantalla de modelado de JBuilder

Ventajas

  • Una gran potencia y con grandes opciones de refactor.
  • Soporte para pruebas.
  • Grandes herramientas de modelado integradas en la aplicación, no son necesarias herramientas externas.

Desventajas

  • Es de pago.
  • Su uso es algo complicado.
  • Esta en inglés.

JBuilder | Versión de prueba

Todas estas opciones son buenas, pero es importante recordar que son tres IDE que se usan en entornos de trabajo diferentes. Con las tres podrás diseñar y programar cualquier tipo de aplicación, pero esta de tu mano decidir cuando es mejor usar una u otra.

Archivado en Curso de Programación, IDE, Java
COMPARTIR 0 TWITTEAR

Comentarios (14)

Usa tu cuenta de Facebook para dejar tu opinión.

  • Modus T dice:

    ¿Qué payasada es esta? Metes dos mierdas como son BlueJ y JBuilder y ni mencionas dos IDEs profesionales como son IntelliJ Idea y JDeveloper. Y si lo que quieres meter es algún IDE de juguete, antes de meter BlueJ deberías meter Geany, que al menos tiene soporte para bastantes más lenguajes de programación.

    ¿Y qué clase de desventaja es que el IDE o la documentación esté en inglés? En serio señores, si no sabéis inglés tenéis dos alternativas, aprenderlo o no dedicaros a la programación. Como ingenieros en informática saber inglés tiene 5 ventajas principales:

    1. Cualquier persona podrá leer tu código.
    2. Podrás leer el código de cualquier otra persona.
    3. Toda la documentación de calidad podrás encontrarla en inglés.
    4. Casi toda la documentación que encontrarás en otro idioma será incorrecta, incompleta o una mezcla de ambas (y para ejemplo un botón).
    5. Hay términos que no se pueden traducir de forma directa al español (en una sola palabra) o que al traducirse se ven desvirtuados o se traducen mal (¡¡¡ library no es librería !!!), veasé: backend, frontend, servlet, applet, bytecode, bean, framework, socket… Además, todos los acrónimos y siglas se refieren a expresiones en inglés. Los médicos tienen que aprenderse términos en latín o con raíz del griego o incluso en inglés para poder entenderse con médicos que hablan otros idiomas, a nosotros nos toca el inglés, agradeced que no es una lengua muerta. Coño.

    Y una más de bonus:

    1. Si eres un genio, montas una startup de la leche y viene Google a comprarte ¿crees que lo harán si ven que todo tu código, comentarios y documentación está en español? Venga hombre…

    Estos artículos están siendo nefastos… deberías documentarte y estudiar mucho más antes de escribir por escribir.

    • Francisco J. Gil Gala dice:

      Hola.

      BlueJ es con lo que se empieza a programar en prácticamente todas las universidades españolas. Me vi en la obligación a ponerlo. IntelliJ Idea y JDeveloper son como tu dices dos IDEs profesionales, como también lo son Eclipse, JBuilder o Netbeans, si quieres para el próximo artículo pongo 40 IDEs pero en este solo me apetecía comentar estas.

      Que un IDE este en inglés siempre presentará una desventaja, o bien por el contenido de la interfaz, la ayuda pero también muchas veces el formato de texto que soportan, que muchas veces cuando empiezas a programar te apetece tener notas en tu idioma. Quieras o no siempre será una desventaja. Y más aún, como esto esta dirigido a personas de habla hispana tengo que proporcionar en la mayor medida de los posible contenido y herramientas en dicha habla no todo el mundo sabe inglés.

      Por supuesto que saber inglés te da un plus en cualquier trabajo, como también el italiano, el francés, el alemán …. Y tranquilo con estas cosas que quiero explicar no creo que nadie venda su producto a Google (bueno cuando hablemos de metodologías ágiles quizás a alguno le contraten jaja)

      Y tranquilo que documentado estoy y poco a poco irán saliendo más cosas. Algunos tenéis muchas ganas de empezar a programar la API de la play5 pero hay gente que quiere empezar desde abajo y es vital empezar despacito, y con buena letra.

      Saludos

      PD: tienes razón en que muchos términos son utilizados mal, por ejemplo, cuando yo hablo de instanciar una clase tengo que expresarlo así para que la gente me entienda, quizás quedaría más bonito decir que vamos a implementar la interfaz del tipo X en este nuevo objeto para tal y tal … pero no, va a ser que no. Tranquilo, términos como cohesión, acoplamiento, refactorización … que sin son términos con que se deban explicar se explicaran, pero no esperes que haga una traducción: backend, backlog pero hombre si puedo decir administrador en vez de manager lo diré porque la gente me entenderá mejor.

      • Modus T dice:

        Decir que Eclipse es una herramienta profesional es como decir que el Villacacharritas F.C. es un equipo de fútbol profesional… Y que lo utilicen en empresas no implica nada, conozco empresas en las que compraron pizarras para empezar a aplicar Scrum y mejor no te digo lo que dibujan en las pizarras.

        No sé cuantas universidades conoces tú, pero yo conozco 10 en las que sé a ciencia cierta cómo enseñan a programar y en tan solo 3 de ellas se enseña con Java, y eso desde hace un par de años. Y eso sí, en ninguna de ellas se escribe una linea de código en la primera clase. De hecho prácticamente no se ve una sola linea en el primer mes de clase. En la programación hay mucho que explicar y que asimilar antes de ponerse a escribir código. A ti estoy seguro que te enseñaran con código desde el primer día, y se nota.

        Y ahora… Asi que empezar despacito y con buena letra, ¿no? Demos un repaso a tus entradas:

        1. Eclipse, qué es y como se instala

        “Su uso es muy sencillo e intuitivo e incluye herramientas de refactorización para hacer el código más legible”

        Entonces yo cuando refactorizo una clase porque la cambio de paquete, cuando digo que me cree los getters y setters para los atributos de la clase, cuando digo que me cree métodos automáticamente… es para que el código sea legible, ¿no?

        “Antes de instalar Eclipse es necesario que descargues e instales el JDK (Java Development Kit)”

        ¿Qué es el JDK? ¿Qué es el JRE? ¿En qué se diferencian? ¿Por qué necesito tenerlo instalado?…

        “Como recomendación podéis usar una carpeta que tengáis de Dropbox y así tener todas tu aplicaciones en la nube”

        LECHES ¿Esto es lo que se llama el cloud computing, no?

        1. Qué es Java

        Nada, aquí a pelo. Ni un poquito de historia sobre la programación, sobre como han evolucionado los paradigmas de programación, etc. Y seguimos sin saber cosas como qué es el JRE, o JVM.

        Mencionas de pasadas que Java es un lenguaje interpretado, pero nada más. No mencionas que esta es una de sus características fundamentales ni que existen otros lenguajes que se denominan compilados.

        “¿Por qué Java? Además de todas las características que sitúan a Java como un lenguaje realmente bueno como “lenguaje mutiusos” es un lenguaje que goza de gran aceptación al ser uno de los lenguajes más utilizados.”

        Con un par de huevos, si señor. Java porque lo usa todo el mundo. Y si necesitamos rendimiento para aplicaciones en las que el tiempo de respuesta sea muy bajo o para hacer videojuegos Java también, que lo usa todo el mundo. Eso debieron pensar en Mojang cuando se pusieron a programar Minecraft…

        1. Introducción a la programación

        “Paradigma de programación en si no es una herramienta si no una característica del lenguaje que utilicemos.” ¿En serio no sabes dar una definición de paradigma de programación?

        “¿Qué es la programación? Programar”. Te aplaudo.

        “¿Qué es un lenguaje? Conjunto de signos y reglas que permite la comunicación con un ordenador.” Claro, que si quieres comunicarte con otro ser humano no utilizas lenguajes…

        “Ensamblador: lenguaje muy cercano al de la máquina, con pequeñas modificaciones nemotécnicas que facilitan su uso. Es de nivel inmediatamente superior al de máquina. Viene determinado por la máquina que se use.” No es por ser quisquilloso, pero más que por la máquina por la arquitectura.

        1. Tipos en Java

        “String en Java no es un tipo primitivo (al contrario que en la mayoría de lenguajes) pero nosotros de todas formas nos referiremos a el como un tipo primitivo.”. Con un par. Vamos que si a mi me apetece decir que Integer, Float, Double y Boolean son tipos lo digo y listo.

        1. Programación orientada a objetos: Listas

        Traducir “Array” como lista es hacer una traducción muy libre. https://translate.google.com/#en/es/array . Este apartado no hay por donde cogerlo, no sé ni por donde empezar a criticar, así que paso. Tú vete a clase y que te lo vuelvan a explicar.

        “public void ejemplo3(){ estructuraEnteros = new int[2]; estructuraString = new String[2];

        estructuraString[3] = "Pepe"; // linea 1
        System.out.println(""+estructuraEnteros[0]); //linea 2
        System.out.println(""+estructuraEnteros[4]); //linea 3
        

        } Tendremos un par de errores, en concreto si nos fijamos en:

        Linea 1: dará error porque en esa posición 3 se sale del tamaño de la estructura. Linea 2: dará error porque no hemos metido nada en la posición 0. Linea 3: dará error por los dos motivos anteriores.”

        Línea 1 producirá una excepción, no un error por intentar acceder a una posición que no está definida dentro del array. Línea 2 imprimirá “null”, no producirá ninguna excepción (o error para que lo entiendas). Línea 3 no puede dar “error” de no haber introducido nada en la posición 5 porque es imposible introducir nada en la posición 5, simplemente producirá una excepción como la de la línea 1.

        “La solución a estos problemas puede ser:

        public void ejemplo3Solucion(){ estructuraEnteros = new Integer[2]; estructuraString = new String[2];

        estructuraString = new String[4]; //solucion 1 
        estructuraString[3] = "Pepe"; // linea 1

        estructuraString = new String[5]; // solucion 3 estructuraEnteros[0] = 10; // solucion 2 System.out.println(""+estructuraEnteros[0]); //linea 2

        }”

        Hombre, claro, muy listo. Te creas un nuevo array y ya está ¿Y qué pasa cuando accedamos a estructuraString[3]? Ah, que estará vacía ¿pero no habíamos introducido el valor “Pepe”? Esto es una chapuza, no una solución. Y me da igual que lo expliques luego, no vale dar una solución que no válida, que dijiste que se aprendería despacito y con buena letra.

        “En Java tenemos la clase ArrayList que nos trae todas estas funciones ya implementadas” Esto ya si que me cabrea pero mucho. ArrayList SÍ que es una estructura de datos Lista, un array NO es una lista. ArrayList en concreto es una implementación de la estructura de datos Lista que internamente utiliza arrays, pero existen otras implementaciones, como LinkedList que NO utiliza arrays. Si vamos a explicar las cosas, expliquemoslas bien. Y aqui metes esto sin explicar una mierda sobre genéricos. Tienes que estar escuchando desde tu casa cómo te aplaudo.

        1. Programación orientada a objetos métodos

        Ya ni leo en detalle. Aquí se supone que vas a explicar qué son y como se implementan los métodos y te pones a explicar operadores (y de aquella forma, porque no explicas cuales se aplican sobre dos elementos, cuales sobre uno, diferencia entre preincremento y posincremento…) y luego estructuras de control (y ni si quiera las nombras como estructuras de control, ya no es que no uses los términos en inglés, es que ni los usas).

        ¿Dónde quedó enseñar con el hola mundo, luego un programa que suma, luego uno que calcula si un numero es par… añadiendo poco a poco complejidad y nuevos elementos? Para llegar a entender y dominar lo suficientemente bien todo lo que llevamos hasta ahora habría que haber hecho más de 100 ejercicios ¿Has propuesto alguno? ¿De verdad crees que sin hacer diagramas de flujo y pseudocódigo alguien va a aprender a programar?

        1. Niveles de acceso

        Seguimos con el despropósito y antes si quiera de haber explicado minimamente la herencia y ya metes el concepto de Subclase… ¿Has planificado minimamente las entradas? Parece que te levantas por la mañana y te pones a escribir de lo que te vas acordando.

        1. Lanzar una aplicación

        ¡¡¡ AL FIN ALGO PARECIDO A UN HOLA MUNDO !!!

        Y esto realizando una lectura por encima… De verdad, entiendo que te guste mucho la programación y que lo quieras compartir con todo el mundo, pero sientate con papel y lapiz y planificate cómo vas a explicarlo, porque tal y como está sólo vas a crear malos hábitos en la gente. ¿Por cierto? ¿Has explicado que el código se puede comentar y que es muy recomendable hacerlo?

        Y ya por último, ¿qué tendrán que ver las metodologías ágiles con que te vaya a contratar Google?

      • Francisco J. Gil Gala dice:

        Hola que bien que te leas todo lo que escribo, solo por por eso merece la pena seguir.

        Entiendo que no te gusten mis entradas, yo estoy ya lo tenia asumido que alguien con experiencia en programación vendría a darme un palo. Sigo diciendo que tienes mucha prisa, tu tranquilo que todo se explica, están organizadas ya todas las entradas desde hace tiempo.

        Si no te gusta la organización, bueno … lo siento. Pero a mi me parece lógico hablar primero de la tecnología, el entorno de desarrollo, las estructuras y como se implementan los algoritmos. Como comprenderás esto es un blog en el que sabemos todos la temática de sobra cuando entramos y como esta estructurado, en entradas cortas y concisas. No me voy a poner a enrollarme con cosas que a la hora de programar en realidad te dan hasta (casi) igual.

        Me gusta que fueses viendo todos mis artículos, cuantas más visitas mejor y me gusta todavía más que fueses criticando uno a uno, podemos criticar también lo que tu pones:

        -Eclipse es una herramienta profesional te guste o no y combinada con otras como GitHub te permite trabajar de forma paralela con todo tu equipo. -Tipos en Java en Integer, Float, Double y Boolean son tipos lo digo y listo. Lo digo y listo, que yo sepa son instanciable, por tanto son objetos y son objetos tienen un tipo ¿cuál? Float, Double, Boolean … son tipos envolventes y creo, no me hagas mucho caso que su implementación sigue el patrón Decorator (en serio no me acuerdo si es este). -¿Por qué Java? lo primero porque yo creo (aunque no me guste nada el lenguaje) que Java es un lenguaje sencillo y al usarlo mucha gente siempre facilita el aprendizaje. Para introducir la tecnología no te voy hablar de toda la arquitectura, lo que no es necesario se omite y si alguien quiere saber lo que es fácil, o lo busca o me escribe un comentario pidiéndome que escriba más sobre ello. -Listas bueno estoy sabría que tendría cola, lo llamo array porque es raro hablar con alguien de una lista y que lo llamen array o vector, la idea de un tutorial es introducir lo términos, aunque estos no sean del todo correctos (con el tiempo se irán refinando). Por cierto es difícil solucionar los errores de una lista si todavía ni has explicado excepciones ni tampoco operadores, bucles … la solución que se hace tiene que ser lo más primitiva posible. Dirás ¿por qué haces primero listas que bucles? Yo entiendo que para diseñar los algoritmos necesitas estructuras de datos, pero para usar una estructura de datos no necesitas necesariamente un algoritmo (complejo) ya que el propio lenguaje en la API te proporciona varias implementaciones, por tanto y cambiaría la famosa frase a: Estructura de datos + Algoritmos = Programas. Si a ti te gusta mas al revés es tu problema. Por cierto gracias por aplaudirme pero si hablo de ArrayList es porque el espacio para escribir es limitado y en un mismo artículo ponerme hablar de herencia y todo … en algún lugar hay que cortar, todo eso ya se explicará. -Respecto al resto: a mi me parece más lógico empezar hacer algo que tenga sentido a escribir un Hola mundo. Esto es programación orientada a objetos, no es estructurada ni nada similar, para empezar a programar tendrás que tener objetos, no salidas por pantalla. Además que tampoco apetece en el primer artículo escribir sobre todas las clases que se utilizan en un System.out.print …

        Entiendo también que no te guste Java o que no te guste que como lo explico, pero no te diré todas, pero en todas las facultades/politecnicas de informática que conozco empiezan en Java / Pascal / C / C++ / Python, como comprenderás de estos cinco para hablar en un blog mejor Java. Luego si ya se que los planes de estudio de otras ingenierías incluyen una asignatura de programación que suelen hacerlo C o similares, pero esto es orientado a objetos.

        Saludos. Yo por mi parte cierro el tema. Si quieres seguir hablando puedes, pero no te contestaré (a no ser que lo hagas en el artículo de hoy entonces si no eres muy ofensivo te contesto).

        PD: ¿quien dice que Scrum no se puede aplicar con una pizarra? que yo sepa un equipo de desarrollo se puede poner delante de una pizarra (de las divididas en días) y que empiecen a trabajar sobre un sprint (por su puesto asumo que el equipo tendrá un backlog con todas sus historias de usuario en un excel o similar).

  • Modus T dice:

    Sí, sí. Si ya se que con una pizarra puedes aplicar Scrum, pero a lo que me refería es que la utilizan para dibujar otras… cosas… Por lo que por saber o querer saber de metodologías ágiles ni te convierte en Google ni va a hacer que Google se interese en ti.

    Y dirás lo que quieras, pero es más fácil explicar las cosas correctamente a la primera que explicarlas mal y luego ir corrigiendo malos hábitos. Como es decir que GitHub es una herramienta. La herramienta se llama Git, GitHub es una plataforma para alojar proyectos gestionados con Git.

Publica tu opinión usando tu cuenta de Facebook.

¿Te ha gustado? ¡No te pierdas nada más!

follow us in feedly

Otras webs de Difoosion