INTRODUCCIÓN A JAVA |
|
Autor: Javier M. Criado | |
Nivel del tutorial: Medio | |
Conocimientos previos: Medios (supongo conocimientos básicos de programación en C y/o Java) |
Java es, para mí, uno de los mejores lenguajes de desarrollo dentro del mundo de internet. Por qué? Pues porque a su gran capacidad de desarrollo1 se le une la posibilidad de poder ejecutarse en prácticamente cualquier máquina sin tener q recompilar su código, lo q le hace fundamental en el mundo de internet.
Este es un punto en el q viene bien repasar un poco la historia ( de Java ).
El leng. se inventó inicialmente para funcionar dentro de un grupo de electrodomésticos (si , como lo oyes, no me he confundido) y otros pequeños elementos electrónicos tales como la tostadora, la cortadora de césped, ... con el objetivo de q se comunicaran entre sí. Esto parece complicado pero, desde el punto de vista de la programación, "sólo" requería un lenguaje cuyo núcleo fuera pequeño y portable entre componentes.
"Pues yo he leido q Java es un leng compilado, por lo q dependerá de la maq, no??" Si efectivamente, Java es un lenguaje compilado, pero no compila código dependiente de la máquina3 como pueda hacerlo C, ya q no es una compilación "total": lo q hace Java es compilar a lo q se denominan Bytecodes (q no son código máq generado por el micro en el q se ha compilado), los cuales luego serán interpretados por un pequeño interprete instalado en la máquina del cliente4, permitiendo así q se ejecuten las mismas aplicaciones en distintas máquinas, con distintos micros y SOP's sin apenas ningún cambio.
La visualización de estas aplicaciones en cliente normalmente se hace a través de un navegador (ó browser) pero no es la única forma, ya q hay visualizadores autónomos (ej appletViewer) desarrallodos a tal efecto.
Mucha gente pensará q se puede hacer lo mismo con Java q
con ASP. A pequeña escala puede ser q sí (si tienes,
x ej , q procesar de forma simple la info de un formulario, es mejor
usar ASP q un Servlet de Java), pero a media-gran escala es inviable;
piensa en una aplicación relativamente sencilla como puede
ser un chat; la podrías hacer de forma fiable en ASP?? (pues
no, ya q en ASP ni siquiera- por lo menos cdo yo lo estudié-
puedes abrir un puerto en condiciones con el servidor para luego
mantener una conversación fluída2).
Yo de todas formas (y q quede muy claro q no quiero dar esa impresión)
no recomiendo usar Java para todo: cada oveja con su pareja,
lo q para mí significa q cada problema tiene una óptima
solución con cada lenguaje; lo q hay q valorar es cual de
ellos nos otorga mayor fiabilidad y rapidez de ejecución
para ese caso en concreto; yo, de hecho, sólo uso Java para
un 10% de mis necesidades, q son las de un humilde usuario...
Una vez vistas las cosas buenas (al menos las principales) que tiene Java, pasemos a ver las cosas malas (q tambien las tiene). |
Otras desventajas menores serían: la pérdida de potencial debido a la seguridad q impone un lenguaje hecho para ser portable (no puedes leer en remoto, ni escribir, ni...), la falta de una interfaz de desarrollo gratuíta con garantías (hazte a pelo una interfaz con AWT y entenderás de lo q estoy hablando), el hecho de q tengas q firmar las aplicaciones "por culpa" de la seguridad, etc...
Notas:
1. Lo q evidentemente lleva una cierta complejidad, aunq algo
inferior a la de C, pues lleva rutinas como el <<limpiado
ó recolección de basura>> ó el uso de
referencias en lugar de punteros, etc...
2. Eso, en la práctica se vé en el repintado de pantalla:
Si tu ves un chat en asp notarás como se repinta la pantalla;
xq?? pues xq asp envía los datos al servidor, los procesa
y los envía de vuelta al cliente ¡¡¡en
el cual se tiene q volver a escribir la página entera!!!;
en Java no ocurre eso.
3. Micro + SO
4. Hasta hoy todos los navegadores lo llevan incorporado, pero MicroSoft, en sus nuevas versiones, lo piensa quitar para q tengas q bajarte un plug-in si quieres utilizarlo. (está claro q esta política la hacen para ganarse de un plumazo a todos-q son muchos- los "agnósticos" usuarios q cdo ven una pantalla, aviso, etc.. q no conocen se asustan y la quitan para no meterse en problemas, impidiendo así q ejecuten un lenguaje hecho por la competencia -Sun microsystems-).
Yo ahora de momento no tengo el suficiente arrojo como para realizar un buen tutorial de este lenguaje (espero tenerlo en el futuro), pero si te puedo recomendar libros y enlaces donde continuar tu formación:
Libros:
- Aprendiendo Java2 en 21 dias
Laura Lemay y Rogers Cadenhead
Ed. Prentice Hall
Nivel iniciación,medio
Libro, a pesar de algunos pequeños fallos en los temas avanzados, sobre todo en lo q respecta al manejo de flujos y sockets, muy bueno (para mi el mejor de los q he visto).
- Java 1.2 Unleased
James Jaworski
Ed. Prentice Hall
Nivel medio-alto, alto.
Complementa al anterior.
Si tienes ciertos conocimientos de Java, el libro toca todos los temas a un alto nivel (aunq algunas cosas no con la suficiente profundidad).
- La biblia de Java 2
Steven Holzner
Ed. Anaya multimedia
"Todos los niveles"
Libro adecuado para los estudiantes, pues toca todos los temas incluyendo la base de Orientación a objetos.
Explica muy bien las interfaces gráficas, la gestión de eventos,...
Falla en temas complejos, pues viene poca información acerca de aplicaciones del lado del servidor.
Enlaces:
http://java.sun.com El
mejor enlace q puedes encontrar.
Problema:
está en inglés.
http://java.programacion.net Tutoriales, aplicaciones, etc.. en español