We.Developers 003 – Los mundos de Java

Esta vez comentamos con Diego el lenguaje de programación Java, comenzando por su historia, sus objetivos, sus ventajas y sus inconvenientes, así como toda la plataforma que existe alrededor del lenguaje: la JVM y los lenguajes derivados, los IDEs disponibles, los patrones de diseño y los diferentes frameworks que se han ido desarrollando alrededor de estos. Un detallado análisis a uno de los lenguajes de programación mas usados del mundo, especialmente en el entorno empresarial.

Notas del Programa


Play
  • Ruboslav

    Hola, estoy empezando a escuchar el podcast ahora pero adelantaré que yo odiaba Java y ahora hasta me está cayendo simpático y todo. Aunque C++ sigue siendo el puto amo por muy antiguo que dicen que sea. Que les pregunten a los desarrolladores de videojuegos, verbigracia.

    • http://skuarch.com skuarch

      seguramente todo es videojuegos !!!

  • Ruboslav

    Otra cosa: Eclipse puede usarse para varios lenguajes, sí… pero NetBeans también. Sólo hay que descargarse el módulo pertinente. Yo lo uso para programar en Python, PHP, C++ y en Java.

    • http://www.macniacos.com/ Jose

      Muchas gracias por la aclaración :)

  • Bendecido

    Estupendo episodio. Algunos comentarios:

    El API de Reflection de Java lleva allí desde el JDK 1.1. Eso es mucho tiempo. Otra cosa es que usar este tipo de APIs desde lenguajes con tipado estático sea poco agradable.

    En cualquier caso estoy de acuerdo con el problema del uso indiscriminado de objetos-nombres-clases para todo y el tema de las checked exceptions me parece uno de los mayores errores de diseño del lenguaje (creo que no lo habéis mencionado).

    Con respecto a las bondades de Java, una muy importante es la gran cantidad de librerías que tiene para tratar con casi todo. Hace relativamente poco tuve la oportunidad de decidir la plataforma para una aplicación Web. Siempre acabas necesitando comunicarte con otros sistemas y generando formatos de lo más variado. Al final terminé en Java, era la que más me pareció que ofrecía en ese aspecto (la aplicación se hizo con Groovy-Grails)

    Un último comentario sobre Java en sistemas grandes. Twitter ha migrado no hace mucho a plataforma Java (http://www.readwriteweb.com/cloud/2011/04/twitter-drops-ruby-for-java.php) y sitios como Amazon, ebay y Flickr solían usar plataforma Java, aunque desconozco si la han abandonado. Google también usa Java (GWT y GAP).

    Muchas gracias por el episodio, y perdón por el ladrillado.

     

    • http://www.macniacos.com/ Jose

      Confieso un gran desconocimiento de los recovecos de Java, pero en .NET las capacidades de reflection, junto con la capacidad de anotar clases y atributos con otras metaclases con atributos, se usaron activamente desde la primera versión del framework. Esto en Java parece que empieza a ser explotado de forma mucho mas reciente, quizás porque la capacidad de añadir anotaciones al código  apareció mas tarde.

      Lo de las checked exceptions me suena mucho, seguramente de escuchar a algún colega de profesión quejarse amargamente sobre ellas :)

      Efectivamente, era Twitter los que se habían migrado de RoR, no solo para las búsquedas como el ejemplo que mencionas, sino que en su dia tambien reemplazaron el backend por una combinación de Scala/JVM, dejando Rails sólamente para el front end.

      Gracias por escucharnos y por dejarnos interesantes “ladrillos” como este :)  

  • http://twitter.com/fanatiko Nacho Lasheras

    Sobre el tema de la gente que se “apasiona” con su tecnología favorita, os recomiendo leer el post “Don’t fall in love with your technology” http://prog21.dadgum.com/128.html 

    En mi caso yo el lenguaje que domino es C++ y, aunque parezca paradójico, mucha gente que lo usa y lo domina, tiene una larga lista de quejas sobre el. El mundo de librerías como Boost o Loki, construidas sobre un conocimiento profundo de los templates, trucos bastante ingeniosos y muchísimos #ifdefs para que compile en todos lados, es el mundo de los apasionados del lenguaje. 

    Pero hay otro mundo de gente que usa C++ porque es el lenguaje de su dominio o de los cacharros que quiere programar. Y practican un estilo más sencillo, pero bastante más mantenible (y portable). Si tu base de código tiene que compilar en 3 plataformas, no te flipas con los templates porque es facilisimo que lo que se traga el Visual C++ no le gusta al GCC y/o al clang.

    Por no hablar de esa gran cita de Kernighan:

    “Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it”

  • Manuel

    Me acabo de enterar de este podcast por kafelog y desde ya en favoritos. Soy programador java desde hace años y aún así saqué un montón de cosas interesantes acá. Estaré al pendiente. Saludos desde Caracas, Vzla.

  • http://twitter.com/damarsan david martinez

    Estupendo episodio, pese a no ser un programador demasiado experimento, me ha parecido muy interesante e instructivo, muchas gracias.