Aprender Java. Una apuesta segura

Aprender Java. Una apuesta segura.

Continuamos con la serie de artículos en los que te hablo de los principales lenguajes de programación y tecnologías a tener en cuenta hoy en día. En esta ocasión quiero hablarte de Java, un lenguaje de programación por el que muchos me habéis preguntado. Así que he creído conveniente hablaros de él y explicaros por qué considero que aprender Java es una apuesta segura.

Dicho esto, sin más dilación, comencemos!  🙂

Un poco de “culturilla” sobre Java

Está claro que Sun Microsystem, la empresa que diseñó y creó el lenguaje de programación Java (aysss, cómo me gustaba esta empresa y qué rabia me dio de que la absorbiera Oracle!), no imaginó en 1991 (año en el que se desarrolló la primera versión del lenguaje), que en apenas diez años después, éste se iba a convertir ya en el lenguaje de programación más utilizado por la comunidad mundial de desarrolladores (y sigue siendo uno de los más utilizados a día de hoy); y mucho menos, que la mayoría de los grandes fabricantes de software de aquella época (IBM, Oracle, Borland, BEA, etc.) desarrollarían sus productos para, de alguna u otra manera, dieran soporte al lenguaje Java.

James Gosling, creador de Java

James Gosling, creador del lenguaje Java

Java es, sin duda alguna, uno de los lenguajes de programación que más impacto ha tenido en los últimos años; especialmente en el mundo del desarrollo web. Probablemente, Internet no sería lo que es hoy en día si no hubiera existido Java.

Pero la existencia de Java no se limita únicamente al ámbito del desarrollo de aplicaciones web, sino que ha estado presente también en la programación de muchas aplicaciones de escritorio, así como en la programación de muchísimos dispositivos electrónicos.

Esta especie de “Revolución del mundo Software” que provocó Java en su día, hace que uno llegue a preguntarse, ¿qué tiene Java que no tuvieran los demás lenguajes de programación?

Como lenguaje de programación, Java no se diferencia mucho del resto de los lenguajes orientados a objetos; sin embargo, Java es algo más que un lenguaje, y posee una serie de características que lo hacen especial.

Característica de Java

Estos son algunos de los puntos fuertes de Java:

Lenguaje totalmente orientado a objetos.

Todos los conceptos en los que se apoya esta técnica de programación (encapsulación, herencia, polimorfismo… y todas estas “palabrejas” extrañas) están presentes en Java.

Disponibilidad de un amplio conjunto de librerías.

Java es algo más que un simple lenguaje de programación. Java incorpora un amplio conjunto de librerías, que están a disposición del programador, con las que es posible realizar prácticamente cualquier tipo de aplicación.

Aplicaciones multiplataforma.

Ésta es, posiblemente, la característica más importante de Java (y la que le ha hecho “llevarse el gato al agua” durante muchos años), ya que le propició una amplia aceptación en la comunidad de desarrolladores y fabricantes de software.

Que las aplicaciones Java sean multiplataforma (hoy en día otros muchos lenguajes lo son, como por ejemplo Python) significa que, una vez se ha compilado el programa, éste puede ser ejecutado en diferentes sistemas operativos sin necesidad de realizar cambios en el código fuente y sin que haya que volver a compilar el programa. Es lo que en el mundo Java se expresa con la famosa frase:

Write once, run anywhere (escribe el código una vez y ejecuta en cualquier plataforma).

Esta independencia de la plataforma se consigue gracias al concepto de máquina virtual (enseguida te cuento qué es).

Ejecución segura de aplicaciones.

Éste es otro de sus puntos fuertes, y la razón por la que Java se impuso en el mundillo del desarrollo empresarial. La seguridad de las aplicaciones java se manifiesta en varios aspectos.

Por un lado, el lenguaje carece de instrucciones que puedan provocar acceso descontrolados a la memoria (este es el caso de los punteros, una característica muy potente y también muy peligrosa del lenguaje C/C++, que en Java no está presente).

Por otro lado, la máquina virtual, que es el entorno en el que se ejecutan las aplicaciones java, impone ciertas restricciones a las aplicaciones para garantizar una ejecución segura.

Amplio soporte de fabricantes software.

Esta característica se deriva en parte de las anteriores. Hoy en día, encontramos una amplia variedad de productos software de diferentes fabricantes que dan soporte a Java, como puede ser el caso de los entornos de desarrollo o los servidores de aplicaciones.

La máquina virtual de Java (JVM)

La máquina virtual de Java (Java virtual machine, JVM) es un entorno de ejecución para aplicaciones Java, cuya principal funcionalidad es la de adaptar los programas Java compilados a las características del sistema operativo donde se van a ejecutar.

Como dicen que una imagen vale más que mil palabras, con ésta que ves a continuación intentaré ilustrarte todo el proceso de compilación y ejecución de aplicaciones en java.

Proceso de compilación de Java

Como ves, todo programa Java está organizado en clases; éstas se escriben en archivos de texto con extensión .java. Cada archivo de código fuente .java puede contener una o varias clases, aunque lo normal es que haya un archivo por clase.

Cuando se compila un fichero .java, se genera uno o varios archivos de código binario con extensión .class (uno por cada clase), denominados bytecodes, que son realmente un código intermedio independiente de la arquitectura.

Esta independencia supone que los bytescodes no pueden ser ejecutados directamente por ningún sistema operativo. Es durante la fase de ejecución de nuestro programa cuando los archivos .class se someten a un proceso de “interpretación”, que consiste en traducir los bytecodes a código ejecutable por el sistema operativo en concreto sobre el que estamos ejecutando nuestro programa. Esta operación de interpretación o traducir un código a otro, es realizada por un software conocido como Máquina Virtual Java (JVM).

Cada sistema operativo proporciona su propia implementación de la JVM, todas ellas entienden estos bytecodes; sin embargo, cada una realiza la interpretación de acuerdo a las características del sistema operativo para el que ha sido diseñada.

Hoy en día encontramos implementación de máquina virtual para la mayoría de los sistemas operativos existentes.

Ediciones de Java

Cuando uno se asoma por primera vez al mundillo de java, es muy fácil perderse entre tanto nombre y tantas siglas extrañas. Vamos intentar aclarar algunos aspectos importantes.

Como ya hemos comentado, una de las características de Java es el hecho de disponer de un amplio conjunto de paquetes (librerías) de clases para la realización de aplicaciones. Todo este conjunto de clases se organiza en tres grandes grupos, conocidos como ediciones de Java.

Las tres ediciones principales en las que se organiza la tecnología Java son:

Java Standar Edition, Java SE

Forman parte de este grupo los paquetes de clases de uso general (tratamientos de cadenas, colecciones, acceso a datos, etc.), es decir, aquellos que se utilizan en cualquier tipo de aplicación. Java SE incluye también los paquetes de clases para la creación de entornos gráficos y aplicaciones de escritorio, así como aplicaciones para navegadores de Internet (applets).

Java Enterprise Edition, Java EE

Proporciona los paquetes y tecnologías necesaria para la creación de aplicaciones empresariales multicapa, entre ellas, las aplicaciones que se van a ejecutar en un entorno web.

Java Micro Edition, Java ME

Esta edición incluye una serie de paquetes y especificaciones que posibilitan la creación de aplicaciones Java ejecutables en dispositivos electrónicos de capacidades limitadas (como dispositivos programables, electrodomésticos, teléfonos móviles…).

Otras de estas siglas del mundo Java que suelen provocar cierta confusión, son las que hacen referencia a JDK o JRE. Vemos también qué son exactamente:

El Java Development Kit (JDK)

El Java Development Kit (JDK) proporciona el conjunto de herramientas básico para el desarrollo de aplicaciones con Java.

A la hora de descargarlo, existen varias opciones: un JDK básico para JavaSE/JavaME, un JDK específico para JavaEE, un JDK que incluye algún entorno de desarrollo…

El Java Runtime Environment (JRE)

Por otro lado, encontraremos también el conocido como Java Runtime Environment (JRE). Éste proporciona el entorno de ejecución de las aplicaciones, incluyendo las librerías de JavaSE.

¿Recuerdas lo de la Java Virtual Machine, verdad? Pues eso. Ni más ni menos!

Es así de sencillo:

  • Si quieres instalar Java en un equipo para programar, necesitas un JDK.
  • Si sólo vas a ejecutar aplicaciones Java en un equipo (no las vas a programar desde este equipo), con un JRE será más que suficiente.

Pero vamos ya a lo que de verdad nos importa!…

Por qué aprender Java (motivos)

Ya sabes que no soy muy partidario de andarme por la ramas y que me gusta ser directo. Si me preguntases, ¿por qué debería aprender a programar en Java?, éstas serían mis razones principalmente:

Java es un lenguaje bastante maduro, que se hizo muy popular debido a su portabilidad. Esto es lo que hemos hablado de que se ejecuta sobre cualquier plataforma (es lo que se conoce como un lenguaje multiplataforma).

Hoy en día, que el mismo código pueda ejecutarse en distintos sistemas operativos, no es una gran ventaja, ya que muchos otros lenguajes (como por ejemplo, Python) también lo hacen. Sin embargo, el concepto de “plataforma” en Java es mucho más amplio que el de un simple sistema operativo en un ordenador, y abarca también a una amplia gama de dispositivos de todo tipo (teléfonos móviles, reproductores de DVD, equipos de música… hasta tarjetas con chip!).

Realmente, lo considero un lenguaje de dificultad media. No voy a mentirte, aprender java si no sabes programar aún, no es algo sencillo (para eso, hay otros lenguajes más adecuados).

Java se utiliza principalmente, hoy en día, en el desarrollo de aplicaciones corporativas de tipo empresarial; así como también en el desarrollo de apps para dispositivos Android (motivo éste por el que aprender java puede resultar muy atractivo e interesante para algunos…).

Si aprendes Java vas a poder desarrollar aplicaciones para cualquier plataforma, ya sea web, de escritorio, o movil… he incluso para muchas otras!

Y sobre todo (y presta atención a esto), se trata de uno de los lenguajes más demandados y mejor pagados, y encontrarás muchísimas ofertas de empleo. Es un motivo de peso, por el que te puedo asegurarte que aprender Java puede resultar muy beneficioso en muchas ocasiones.

Para que te hagas una idea, el sueldo medio está en torno a los 95.000$ (aunque ya sabes que esto es algo que, por desgracia,  depende mucho de cada país). De hecho, suele ser de los sueldos más altos de los que se ofrecen para profesionales de diferentes lenguajes de programación.

Te dejo el extracto del vídeo de nuestro curso gratuito “De Novato a Desarrollador Exitoso”, en el que hablo precisamente de todo esto y de la conveniencia de aprender java como lenguaje de programación:

Yo particularmente, como ya te he dicho en algún que otro post, me reitero en mi opinión de que existen lenguajes más adecuados como primera toma de contacto con este mundo y aprender a programar con mucho menos sufrimiento.

Pero ya sabes, es sólo una opinión! 😉

 

¿Te ha gustado el artículo? Entonces compártelo con alguien a quien también le pueda gustar.

Opt In Image
¿Te gustaría Aprender a Programar pero no sabes por dónde empezar?
Esto te interesa...

¡Ya está disponible nuestro Curso Online GRATUITO!

1 Comentario. Leave new

Cristian Manuel
1 Febrero, 2016 2:11 am

Muy buena la info me gustaría saber que paginas hay en donde pueda dejar mi Curriculum para poder poder trabajar en java

Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *