Documente Academic
Documente Profesional
Documente Cultură
BIENVENIDOS!
un toque de humor...
AGENDA
Qu es Java? Historia Programacin Orientada a Objetos Arquitectura Java en todo lugar Cmo comenzar? Ejemplos Comunidades Java en el mercado Futuras Tendencias
QUE ES JAVA?
Qu es Java?
Un
software? Una tecnologa ? Un lenguaje de programacin Una plataforma para desarrollo. Una isla de Indonesia?
Java... popular?
Conozcan el indice TIOBE!
Java es
Orientada a Objetos Semejante a C/C++ Hibrida (Compilada e interpretada)
HISTORIA
En los laboratorios de Sun se empieza a desarrollar un nuevo lenguaje bautizado Oak (roble).
Orientado a Objetos Parecido a C++ Proyectado que fuera multiplataforma Creado por James Gosling
Despus de 6 meses SUN transforma el proyecto en una empresa llamada First Person
Al fin Java
El lenguaje OAK se torna producto y Naughton sugiere que sea distribuido gratuitamente en el web. Navegador Web Runner, mas tarde HotJava Browser: nacen los Applets! Sun acuerda poner disponible OAK, sin embargo cambia su nombre a JAVA Netscape anuncia su nuevo navegador con soporte para Java y esta tecnologia se dispara
Evolucin de Java
Evolucin
Java 1.0a Java Development Kit 1.1 Java 2 Platform 1.2. Java 2 Platform 1.3. Java 2 Platform 1.4. Java 2 Platform 1.5. (Tiger) Java 2 Platform 1.6. (Mustang) Prxima: Java 7 (Dolphin).
Mitos de Java
Java es lento! Las primeras versiones si lo eran sin embargo las mas nuevas son casi tan rpidas como C++ No posee un ambiente RAD (Como Visual Studio) Hay muchas herramientas de alta productividad, disponibles e inclusive gratuitas JavaScript es un derivado de Java
Mitos de Java
Java solo sirve para hacer Applets Error! Java sirve para desarrollar aplicaciones de escritorio, aplicaciones corporativas y entre otros programas para dispositivos mviles. Java es la mejor forma de hacer todo. Ya quisiera yo. Java es bastante verstil, pero no siempre hace todo.
Precisas de ms motivos ? Proyectada para redes. Alta aceptacin y soporte de la Industria Mltiples herramientas disponibles, muchas gratuitas y libres. Vasta documentacin, fcil de aprender. Alta productividad. OPEN SOURCE! Etc, etc, etc.
Ingeniera de Software
Disear software es un arte! La Ingeniera de Software busca como formalizar metodologas Paradigmas rigen las tareas de Anlisis, Proyecto y Codificacin Los mas parecidos son:
Para desenvolverse bien en Java es necesario saber los conceptos de OO De lo contrario: Difcilmente conseguir evolucionar a los programas mas simples. Ser difcil entender otros programas de otras personas y viceversa. Si no desea aprender OO, entonces es mejor usar PASCAL o C que son metodologa orientada a procedimientos.
Conceptos de OO
Perdn?
Objetos
Concepto central de este paradigma. Entidades que incorporan abstracciones relevantes de un problema. Un objeto tiene tres caractersticas:
Clases
Objetos que poseen una misma estructura y comportamiento son de una misma clase. Definimos clases no objetos.
Abstraccin
Ignorar aspectos irrelevantes y concentrarnos en los principal Tipos:
Encapsulamiento
Modularidad
Vnculos y Asociaciones
Composiciones
Los objetos complejos son compuestos por objetos mas simples. Composicin: Las partes pueden ser relacionadas a todo. Agregacin: Las partes pueden ser descompuestas.
Herencia
Cuando las clases tienen semejanzas podemos generalizarlas. Jerarquias
Mensajes y Mtodos
Los Objetos envan mensajes para comunicarse, debe ser la nica forma. Mtodos: Operaciones que un objeto puede realizar.
Persistencia
Sobrecarga y Sobrescrita
Sobrecarga: Operaciones distintas con el mismo nombre. Sobrescrita: Sub Clase define nueva implementacin para operaciones definidas en una super clase.
Polimorfimo
ARQUITECTURA
Java es mucho!
Un lenguaje de programacin Java Un ambiente de ejecucin. Un Kit de desarrollo Java. Una biblioteca de clases (API) Java.
Plataforma Java 2
Desde la versin 1.2 hasta la 1.5 pas a ser llamada Java 2 y fue dividida en:
Java 2 Platform Standard Edition (JavaSE) Java 2 Platform Enterprise Edition (JavaEE) Java 2 Platform Mobile Edition (JavaME)
Nuevos Aires
JDK
Necesario para la ejecucin de programas en JAVA Es la nica plataforma de Java que los clientes necesitan instalar. En algunos sistemas operativos (MacOS X) ya viene instalada. Implementada por Sun (15 MB)
Herramientas de desarrollo. Ambiente de Ejecucin API JAVA SE (Compilada y Cdigo Fuente) Programas de Ejemplo. Bibliotecas adicionales Documentacin (obtenida separadamente)
Herramientas Disponibles
Compilador (javac) Interprete (java) Generador de documentacin (javadoc) Depurador (jdb) Generador de Paquetes (jar) Otros:
Plataformas Soportadas
HP UX, FreeBSD, OS/2, AIX, AS/400, OS/390, IRIX, Alpha, SCO, NetWare, etc
Los cdigos de Java son compilados para un lenguaje intermedio llamado: ByteCode ByteCodeesinterpretadoporunamaquina virtualaJVM. A JVM envia comandos especficos a la plataforma para el sistema operativo
Principales APIs
AWT/Swing/SWT: interfaces grficas; Java2D: Diseo; JDBC: acesso a Base de Datos; JNDI: acesso a servidores de dominios; RMI: Invocacin remota de mtodos; Beans: padre de JavaBeans; i18n: suporte a internacionalizacion; I/O: entrada y salida (archivos); JNI: Intergracion con lenguajes nativos Math: clculos matemticos;
Principales APIs
Networking: Transmisin por redes; Security: Seguridad; Serialization:; XML: Procesamiento de XML; Lang & Util: ncleo da lenguaje, utilitarios (colecciones, datas, etc.); Concurrencua: Programacion Concurrente(threads); Logging: (log); Reflection
Servlets e JSPs:
Componentes que responden a peticiones Web usados para construir pginas dinmicas de Web Services
Componentes heredados integrados a otras tecnologas Java EE para proveer acceso remoto, persistencia y transacciones transparentes, procesamiento asncrono, etc.
EJBs:
Otras tecnologas
Java EE Servlets ,EJB; RMI/IIOP e Java IDL; JNDI; JAC e JNI; JAAS; JTA; JMS e JavaMail;
Java Card: Aplicaciones para Smart Cards y una cantidad ilimitada de dispositivos
Enterprise
COMO COMENZAR?
Preparando el ambiente
Descargar JDK Tambin la documentacin en:
Instalando
Windows:
Instalar primero Microsft, simplicado. Documentacin compactada.
Linux:
Instalar de los repositorios Documentacin compactada.
Escribiendo Programas
Puedes usar:
Eclipse NetBeans JetBrains IntelliJ IDEA Borland Jbuilder Etc. Editores mas simples:
JEdit JCreator
JAVA Y EL MERCADO
Empresas
El Mercado en nmeros
Informacion de JavaOne: 900+ millones de microcomputadoras corriendo Java 300 millones de descargas de Java desde junio del 2003 12 millones de visitas por mes al sitio java.com 5 millones de desarrolladores Java en el mundo 180,000 desarrolladores registrados en java.net 1+ billon de celulares corriendo java alrededor del mundo
El Mercado en nmeros
Informacion de JavaOne: 635 modelos de celular en el mundo con Java 32 fabricantes de celulares con soporte para Java 140 operadoras de telefonia movil usando Java 3 millones de descargas de JavaEE 28 tipos diferentes de servidores Java eBay confia en Java para sus ventas que traspasan los $1,400.00 por segundo!
El mercado en numeros
Se
estima que Java mueve $100 billones al ao y va en aumento Sun esta en mas de 170 paises 100% de las 500 mayores empresas del mundo (segn revista Fortune) usan Java Sun cambio su nombre en la Bolsa de Valores; antes SUNW, ahora JAVA
El mercado en numeros
Segn el Instituto Gartner: Java es la tecnologia escogida por las empresas; 60% lo usan, 22% planean hacerlo.
Empleos
Oportunidades: Muchas vacantes apareciendo Pocos capacitados, pocos certificados Buenos salarios Mercado en optima fase de crecimiento!
Chipre $2000
Austria $1500-3500
Alemania $2000-4500
Suiza $4000-8000 Rusia $800-1000 Reino Unido $4000-8000 Francia: $2000-4000
Certificaciones
realiza pruebas para certificar profesionales en la plataforma Java Profesional certificado posee reconocimiento en el mercado Lamentablemente todavia no tiene tanto efecto en el salario.
Sun
Las certificaciones
Comunidades
Como participar?
Que pueden hacer por usted? Noticias Articulos y tutoriales Foros Descargas Eventos Etc.
Que puede hacer usted? Registrarse en foros Participar respondiendo dudas Escribir articulos Enviar noticias Etc.
Futuro y tendencias
Tendencias
JavaME, aplicaciones para celulares Mercado con gran crecimiento Apoyo de las empresas telefonicas Aun no se sabe todo lo que es posible hacer
Tendencias
Programacion Orientada a Aspectos (AOP): Creada en 1997 por Xerox Base de muchos frameworks importantes y conocidos Arquitectura Orientada a Servicios (SOA): Implementacion de aplicaciones con servicios compartidos
Tendencias
Web 2.0 y AJAX: Nuevo concepto para el desarrollo de paginas y sistemas web. En torno a los usuarios Contenido creado por los usuarios para los usuarios Necesidad de interfaces ricas y de alta usabilidad
Tendencias
Profesional: Cuidadoconlasnovedadesdelmes Mas que saber un lenguaje de programacion es preciso conocer las arquitecturas y como se acoplan.
Y AHORA?
Est con suerte: Muchos libros! Muchos tutoriales! (los de Sun son muy buenos) Portales Grupos de usuario Eventos Cursos!!!