A raíz del espléndido curso de C# con Mono iniciado por Carazo, un servidor se ha atrevido a realizar lo mismo pero con el lenguaje de programación Java. Se pretenderá que sea lo más didáctico posible. Cualquier crítica, duda, sugerencia o propuesta de mejora sobre este curso será bienvenida.
¿Qué es Java?
Java es una tecnología que engloba principalmente las siguientes subtecnologías:
- El lenguaje de programación Java: es un lenguaje orientado a objetos, con tipos de datos estáticos y cuyos programas se compilan produciendo una aplicación con código bytecode.
- Java Runtime Environment (JRE): está compuesto por la Java Virtual Machine (JVM) más otros componentes necesarios y su finalidad consiste en ejecutar los programas codificados en bytecode.
- Java API: es el conjunto de todas las Application Programming Interface (API), o interfaces, que permiten al programador crear aplicaciones Java. Para programas más generales se utiliza la Java SE y para programas más complejos o con finalidad empresarial se usa la Java EE.
La expresión Java es un término muy ambiguo. Generalmente cuando se habla de Java se está refiriendo al lenguaje de programación, y así lo haremos durante el resto del curso.
Debido a que instalar y configurar cada una de las partes es un proceso bastante lento, existe un kit llamado Java Development Kit (JDK) donde se encuentra todo lo necesario para empezar a programar.
Aquí os dejo una imagen donde se abarcan casi todas las subtecnologías de Java:
Si queréis ver la imagen un poco más grande pulsa aquí (página oficial de Java).
¿Cuándo programar en Java?
Es cierto el axioma que dice que para cada tipo de programa le corresponde un lenguaje de programación. Y Java no es una excepción. Es conveniente decir de antemano que Java se ha convertido en un lenguaje de propósito general, por tanto su uso se puede extender a todo tipo de programas. Sin embargo hay puntos donde Java es más fuerte y donde menos.
Cuando es muy recomendado programar en Java:
- Aplicaciones portables: aunque haya lenguajes que permitan ejecutar, mediante compilación o interpretación, programas en cualquier sistema, nunca van a ser tan portables como un programa hecho en Java. Su grandeza radica en que un mismo código puede ser ejecutado en cualquier parte gracias, y esto es lo más importante, al alto nivel de penetración en todos los sistemas. Y es cierto, un algoritmo puedes reutilizarlo para aplicaciones de escritorio, web, móvil y en cualquier máquina que tenga instalado el JRE.
- Servicios web empresariales: si tienes pensado crear una página web dinámica sin muchas pretensiones en cuanto a funcionalidades lo mejor es usar PHP. Es sencillo de aprender, práctico y muy escalable, un ejemplo claro es Facebook. Sin embargo, si estás en un entorno empresarial los servicios web corporativos hacen uso de transacciones, comunicaciones remotas, seguridad estricta, controles de la concurrencia, etc. que sólo Java puede proporcionar.
Cuando no es recomendado programar en Java:
- Aplicaciones multimedia: si necesitas hacer un juego de altas prestaciones, donde es imprescindible un grupo de trabajo, utiliza C++ con OpenGL. En cambio si sólo quieres hacer un juego tú sólo o con dos o tres personas más y que sea portable utiliza el lenguaje ActionScript 3. Por último, si te gusta crear juegos sencillos usa directamente el lenguaje Javascript.
- Aplicaciones con alta carga computacional: los programas en Java consiguen altos rendimientos de procesado. Sin embargo nunca serán tan eficaces como un programa compilado. Para este tipo de programas utiliza los lenguajes C y C++, en mayor medida, y, para casos muy específicos, el lenguaje ensamblador.
Resumen
Java es una tecnología que a su vez lo componen varias subtecnologías. La principal de ellas es el lenguaje de programación Java junto con todas sus API. Conocerlas en profundidad es la clave para ser un experto en Java.
En el siguiente capítulo aprenderás a cómo instalar y configurar todo el entorno de Java y crear tu primera programa.
Curso: Curso Java.
Siguiente capítulo: 2. Material de trabajo.
Ver comentarios
Si tienes alguna crítica, pregunta, sugerencia o propuesta de mejora sobre este curso no dudes en comentar. ¡Gracias!
@Nacho: Mi más sincera enhorabuena. ¡Qué buena pinta tiene esto :D!
Esperemos que convivan en paz las dos tecnologías Mono y Java, te prometo guerra en forma de más y más entradas sobre el tema.
Será por mi poca costumbre a programar en java... pero la verdad es que no lo soporto. Me estreso por no encontrar información y/o ejemplos útiles o tener un sitio como el de PHP que pongas php.net/funcion y te salga una buena referencia.. :'(
Bline: en esta página puedes encontrar toda la API para Java SE: http://download.java.net/jdk7/docs/api/. Y aquí los tutoriales oficiales: http://download.oracle.com/javase/tutorial/.
También es cierto que la documentación que hay sobre PHP es la mejor que existe para un lenguaje de programación.
Hola que tal.. sigo tu blog siempre.. te molestaría si copio estos post de java para mi blog?
Santux: sin ningún problema. Siempre y cuando pongas la fuente y el enlace a Linux Hispano.
Gracias por confiar en nosotros.
Hola Nacho:
Ante todo felicitaros a ti y a Carazo por la iniciativa de los cursos. A mi me vienen estupendos porque estoy empezando en esto de la programación y encima soy autodidacta.
Siempre me han dicho que lo mejor es aprender C primero y después pasar a un lenguaje orientado a objetos (Java o C++) y/o a un lenguaje entorno web (HTML, Javascript...).
¿Es esto cierto? ¿Que me aconsejáis? ¿Váis a dar un curso de C? ¿Algún método bueno para principiantes autodidactas? (No obstante sigo practicando con Java aunque se me hace bastante cuesta arriba)
Muchas gracias de antemano.
Gracias Gabriel por tus felicitaciones.
No sé qué nivel tienes exactamente de programación. Si estás empezando yo te recomiendo:
1. Empieza aprendiendo Python. Es un lenguaje potentísimo e ideal para principiantes: http://mundogeek.net/tutorial-python/.
2. Sigue con C. Es el lenguaje por excelencia y el utilizado para el software más importante: sistemas operativos, bases de datos, etc.
3. Aprende C++, Java o C#. Estos lenguajes facilitan la tarea de crear aplicaciones de cara a usuarios finales.
Esta es mi recomendación y es la que se usa en la mayoría de las universidades.
De todas maneras si quieres ser especialista en un lenguaje empieza desde el principio con él. Aunque es mejor que aprendas varios ya que tu capacidad de abstracción mejorará y serás capaz de adaptarte a todo tipo de situaciones.
Muchas gracias, es que además de principiante estoy un poco perdido.
Un saludo.
Enpezaremos el curso, muchas gracias por compartir conocimientos.