Cuando llegas a tomar la programación como algo serio y te decides a adentrarte en el mundo de la escritura del software de una manera más profesional siempre surge la pregunta: ¿Qué lenguaje de programación debo elegir?. En este artículo te daré 10 razones por las cuales considero que Java es una buena opción a la hora de contestar esta pregunta.
1. Es Orientado a Objetos
Para muchos esta sería una razón por la cual no elegir Java, sin embargo, la programación orientada a objetos te da la posibilidad de escribir una vez y utilizar muchas veces un objeto (procedimiento, método, etc). En pocas palabras, te permite simplificar tu código y te evita la necesidad de copiar y pegar muchas veces un mismo procedimiento.
2. Flexibilidad
Si en algún momento escribes una aplicación con un propósito bien definido y con el paso del tiempo necesitas actualizarla, ya sea para agregar funcionalidad o para adecuarla de alguna manera, Java te permitirá hacerlo utilizando tu mismo código, no es necesario reescribir, simplemente heredas funcionalidad y agregas nuevas características sin alterar tu código inicial.
3. Es Multiplataforma
Adiós a la versión específica para Windows, otra para Linux, otra para Mac, etc, etc ,etc. Con Java puedes hacer que una misma aplicación escrita una sola vez te funcione en todos los entornos ya que el ejecutable de Java no lo ejecuta (valga la redundancia) el sistema operativo sino la máquina virtual (o Java Virtual Machine). Si eso no es una ventaja entonces yo no se qué es.
4. Es Gratis!
Para desarrollar en Java no necesitas comprar licencias de ningún tipo, es completamente gratuito. Basta con que vayas a la página de descarga del JDK (Java Development Kit), lo descargues y utilices sin problemas.
5. Es Abierto
La mayoría de las librerías nativas de Java tienen su código fuente abierto y disponible los desarrolladores, esto te ayuda no solo a conocer más a fondo las capacidades de las mismas sino también te da la posibilidad de expandirlas, lo cual nos lleva al siguiente punto...
6. Es Expandible
Al tener el código fuente disponible puedes entonces expandirlo o acoplarlo (en caso de ser necesario) a tu aplicación. Puedes heredar la funcionalidad de una clase ya existente y agregar procedimientos adicionales, posteriormente empaquetas todo y lo distribuyes. Te sorprendería la cantidad de librerías que los programadores independientes han puesto a la disposición de la comunidad utilizando esta ventaja que ofrece Java.
7. Es muy Potente
Dejemos atrás aquellos años en los cuales se pensaba en Java únicamente para cosas simples, al día de hoy puedes desarrollar prácticamente cualquier aplicación de cualquier tamaño y para cualquier fin con Java. Desde aplicaciones simples como calculadoras, hasta un poco complicadas como procesadores de texto y bastante te complicadas como sistemas de tráfico aéreo. De igual manera puedes desarrollar aplicaciones multi-hilo o multi-proceso sin mayores inconvenientes. Si esto no te es suficiente debes saber que existen diversos frameworks que te ayudan a simplificar aún más el trabajo y potenciar tus aplicaciones como Hibernate, Spring, Struts, JSF, etc.
8. Librerías disponibles
Si bien no todos los procedimientos que puedes llegar a necesitar están contenidos en las librerías nativas de Java, hay muchísimas librerías de programadores independientes y empresas que amplían su funcionalidad. ¿Necesitas interactuar con archivos de Microsoft Office? No hay problema, existe Apache POI. ¿Quieres capturar y/o reconocer huellas digitales? Sencillo, existen librerías de Griaule, Digital Persona, MegaMatcher, etc. Con Java no es necesario reinventar el hilo negro.
9. Es Seguro
La seguridad es algo que los desarrolladores del lenguaje se toman muy en serio, continuamente liberan actualizaciones que corrigen o previenen este tipo de problemas. ¿Has escuchado alguna vez que alguien haya aprovechado un fallo en Java para realizar un ataque a un sistema informático? Yo tampoco.
10. Soporte y Documentación
Java cuenta con varias comunidades dedicadas a otorgar soporte cuando lo necesites, algunas están divididas por países, idiomas, etc. Asimismo, la documentación que Oracle pone a nuestra disposición sobre cada una de las clases, métodos y componentes del lenguaje es bastante útil y muy completa.
¿Tienes alguna razón adicional a las que menciono o simplemente no estás de acuerdo conmigo? Te invito a que te expreses y dejes tu comentario.
Si te gustó el artículo puedes compartirlo desde los botones sociales (Twitter, Facebook, Google+).
De igual manera puedes suscribirte al blog para que los nuevos artículos lleguen a tu bandeja de correo o lector de Feeds favorito.
la mayoría de plataformas actuales cumplen todas esas características... y java no es completamente de código abierto.
ResponderBorrarNo estoy de acuerdo con el de arriba, por ejemplo VisualBasic: ¿Lo puedes descargar gratis sin cometer un delito?, ¿crees que Microsoft te va a dar soporte en unos años cuando hayan sacado otra versión?, ¿el ejecutable te va a correr en cualquier SO?, además, VB no es orientado a objetos y en mi opinión VB es para pseudo-programadores informales, que dejan que los wizards hagan todo por ellos, arrastran los componentes, botones, le ponen funcionalidad al click y listo -.- eso no es programar....
ResponderBorrarTodo muy bien en general pero en el punto 9 no estoy de acuerdo al 100%... "¿Has escuchado alguna vez que alguien haya aprovechado un fallo en Java para realizar un ataque a un sistema informático?" La respuesta sería que sí, ¿no creéis? No hay que ir mucho tiempo atrás, está el exploit de hace unos días, no?
ResponderBorrarEstoy de acuerdo contigo, voy a actualizar un poco esa parte ya que el artículo fue redactado antes de que dicha falla se hiciera pública :mee:
ResponderBorrarComo sea, gracias por tu comentario!
Creo que java es el lenguaje x excelencia en la actualidad, además de marcar una tendencia en paradigma, la complejidad y sencillez de Java solo puede ser a mi parecer igualada (o casi) x c#, que no es ni mas ni menos que un calco de lo mejor de java...
ResponderBorrarGracias x la publicación (y x otras)...
Jorge
¿Has escuchado alguna vez que alguien haya aprovechado un fallo en Java para realizar un ataque a un sistema informático?....... si :D!... hace unas semanas atras salio un video con un 0Day . donde se podria ejecutar codigo remotamente!
ResponderBorrarEsto no son ventajas, son cosas que le has de exigir a un lenguaje que se precie.
ResponderBorrarLo único que a lo mejor es un poco exclusivo de Java es el ser multiplataforma y la cantidad que tiene de librerias. Aunque C++ cada día hace más los deberes en estas dos cuestiones.
Por otra parte lo de seguridad... http://java-0day.com/, en esta pagina se cuentan los días seguidos sin que se haya encontrado un exploit en Java, aún no ha llegado a 31.
Una ventaja que en mi opinion si es importante, es que para proyectos grandes, con Java, casi te olvidas de compilar y linkar, al contrario que en C++.
Pero para aprender a programar, por ejemplo, es indispensable aprender lo que es pasar por valor y por referencia, o a usar punteros, (características que si tienen otros muchos lenguajes), y aqui Java brilla por su ausencia.
De todas formas, tus posts son muy útiles para inicarse en Java, así que gracias y continúa así.
lo de la seguridad ninguna plataforma puede alardear, siempre hay un hueco, si vamos a dejar a java por inseguro, entonces deberíamos dejar C, C++ y todos sus predecesores en los que se escribió todo lo que hay. incluso virus etc.. lo que se hace es reducir los riesgos, si algo fuera realmente seguro entonces simplemente no sería de acceso para todo el mundo.
ResponderBorrarCreo que, en general, estas características se pueden encontrar, en menor o mayor medida, en lenguajes de programación como c++. Creo que un punto importante en la que se debería centrar la discusión es que Java es un lenguaje interpretado, no compilado.
ResponderBorrar
ResponderBorrarnoooooo java no es un interprete, java es un compilador, porque? porque comvierte el codigo fuente en codigo maquina y es "interpretado" por la maquina virtual de java, (ojo)eso no quiere decir que sea un interprete sino una multiplataforma(portable). El que escribio eso que indague bien que se documente bien, sobre todo que mire el tutorial de oracle y sus librerias, decir algo deliberadamente no es correcto. saludos.