[3jsl] nuevas tecnologias en java

71
Nuevas tecnologías en Java Nicolás Federico Alonso Sun Microsystems, Inc. [email protected]

Upload: carlos-ramirez

Post on 22-Nov-2014

272 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: [3JSL] Nuevas Tecnologias en Java

Nuevas tecnologías en Java

Nicolás Federico AlonsoSun Microsystems, [email protected]

Page 2: [3JSL] Nuevas Tecnologias en Java

Netbeans

Plataforma Java

Agenda

JavaFX

Proyectos Darkstar y Wonderland

Ruby y JRuby

Page 3: [3JSL] Nuevas Tecnologias en Java

¿Por qué esta charla?

Page 4: [3JSL] Nuevas Tecnologias en Java

La Visión – “La era de la Participación”

Todos y Todo Participa en la Red

4’AsAnyOne

AnyWhereAnyTime

AnyDevice

Page 5: [3JSL] Nuevas Tecnologias en Java

Plataforma Java

Page 6: [3JSL] Nuevas Tecnologias en Java

Lenguaje JAVA

• Orientado a Objectos• Distribuído• Simple & Seguro• Multithreaded • Independiente de

Plataforma

Page 7: [3JSL] Nuevas Tecnologias en Java

Java: Nuevas fronteras económicas

Soluciones Móviles

RFID DispositivosRemotos

PróximaGeneración

de Dispositivos

Page 8: [3JSL] Nuevas Tecnologias en Java

J2SE

Page 9: [3JSL] Nuevas Tecnologias en Java

Java 2 Standard Edition (J2SE)• Es la tecnología Java para computadora

personales, notebooks y arquitecturas con poder de procesamiento y memoria considerables.

• Varias APIs acompañan esta versión y otras tantas pueden ser bajadas opcionalmente de la web de Sun. Es con ellas que la mayoría de las aplicaciones son construidas y ejecutadas.

• La J2SE posee dos divisiones:

Page 10: [3JSL] Nuevas Tecnologias en Java

J2SE - Divisiones:• Java Development Kit (JDK) o Standard

Development Kit (SDK): un kit para desarrollo en Java y debe ser instalado sólo por los desarrolladores, por poseer herramientas para tal tarea.

• Java Runtime Edition JRE: una versión más liviana de JDK pues está preparada para el ambiente de ejecución, o sea, esta versión ejecutará los sistemas construidos con SDK.

Page 11: [3JSL] Nuevas Tecnologias en Java

J2EE

Page 12: [3JSL] Nuevas Tecnologias en Java

Java 2 Enterprise Edition (J2EE)

Es la tecnología Java para aplicaciones corporativas que pueden estar en internet o no. Posee un gran número de APIs donde la seguridad es la principal preocupación. Es ideal para la construcción de servidores de aplicación, integración de sistemas o distribución de servicios para terceros.

Page 13: [3JSL] Nuevas Tecnologias en Java

J2ME

Page 14: [3JSL] Nuevas Tecnologias en Java

Java 2 Mobile Edition (J2ME)La plataforma Java 2, Micro Edition, es una colección de APIs (Applications Programming Interface) en Java orientadas a productos de consumo como PDAs, teléfonos móviles o electrodomésticos.

Java ME se ha convertido en una buena opción para crear juegos en teléfonos móviles debido a que se puede emular en un PC durante la fase de desarrollo y luego subirlos fácilmente al teléfono.

Page 15: [3JSL] Nuevas Tecnologias en Java

Java 2 Mobile Edition (J2ME)

El desarrollo de aplicaciones o videojuegos con estas APIs resulta bastante económico de portar a otros dispositivos.

Los principales componentes de la Plataforma J2ME son Connected Device Configurations, Connected Limited Device Configurations y Mobile Information Device Profiles

Page 16: [3JSL] Nuevas Tecnologias en Java

CLDC – CDC - MIDP• Connected Limited Device Configuration

(CLDC): Para móviles y smartphones, que son más limitados

• Connected Device Configuration (CDC): Para Palmtops y Pocket pcs y algunos dispositivos más poderosos.

• Mobile Information Device Profile (MIDP): Son Dispositivos de información movil.

Page 17: [3JSL] Nuevas Tecnologias en Java

Sun Wireless Toolkit para Java• Implementacion de CLDC y MIDP

> Incluye: WMA, MMAPI, JTWI, J2ME Web Services, PDAP, Bluetooth and OBEX, Mobile 3D Graphics

• Emulator• OTA support• Cryptographic Support• Obfuscator• Pre-verifier

Page 18: [3JSL] Nuevas Tecnologias en Java

Netbeans Mobility Pack• Usa Sun Wireless Tooklit for Java• Drag-and-drop graphical user

interface• Soporte Device fragmentation

Ejemplo:http://www.microjava.com/articles/techtalk/midp2_games

Page 19: [3JSL] Nuevas Tecnologias en Java

Java ME Game Demo• Tumbleweed by Carol Hamer from Micro

Developer Network Inc.> http://www.microjava.com/articles/techtalk/midp2_games

Page 20: [3JSL] Nuevas Tecnologias en Java

Netbeans

Page 21: [3JSL] Nuevas Tecnologias en Java

Netbeans, mas que un IDE...• IDE Java (multiplataforma)• Open Source y gratuito• arquitectura Java completa (

J2SE, J2EE y J2ME)• Completa suite de

complementos: C/C++, profiling, CVS y SVC, Collaborate, etc...

www.netbeans.org

Page 22: [3JSL] Nuevas Tecnologias en Java

¿Que es NetBeans?• IDE modular, completo

> Out-of-box soporta Java SE, Java EE, Java ME> Gran set de 3rd party modules (plug-in's)> Desarrollo drag-and-drop intuitivo> Debugger, Profiler, Refactoring, etc...

• Gratis y open-source> Open source desde Junio, 2000> Una gran comunidad de usuarios y desarrolladores

• Una plataforma de construccion > Rich client Java applications> Rich framework of windows, menus, tool bars,

actions

Page 23: [3JSL] Nuevas Tecnologias en Java

Plataforma NetBeansLenguajes sobre la JVM

C/C++ - JRubyOtros lenguajes

Herramientas comunes

Servidores (App, Web, DB, ...), CVSs, Update Center, etc.Otras herramientas

● Editores: Java, C, HTML, ...● Explorador de proyecto● Inspector de clases● Diseñador de UML● Collaboration tool

Enterprise Visual Web Mobility Profiler

Add-ons

Java ME Java SE Java EE

Page 24: [3JSL] Nuevas Tecnologias en Java

¿Que trae de Nuevo NetBeans 6.0?• Mejoras en el editor de código• Soporte Ruby, JRuby, & Ruby on Rails • Instalación y Upgrading más fácil• Swing GUI data binding (+)• Profiling integrado, profiling “points” • visual web features integradas• Mobility graphical game builder • Mejoras de performance para SOA & UML • Mejoras en toda la plataforma Netbeans

Page 25: [3JSL] Nuevas Tecnologias en Java

Developer Collaboration• Desarrollo de aplicaciones en forma

colaborativa• Code-aware instant messaging• Compartir el ambiente de desarrollo

completo• Multi-party file editing• Conduct codes review• Debugging colaborativo• share.java.net public collaboration server

Page 26: [3JSL] Nuevas Tecnologias en Java

Developer Collaboration

http://www.netbeans.org/kb/articles/quickstart-collaboration.html

Page 27: [3JSL] Nuevas Tecnologias en Java

Developer Collaboration • Registro gratis de una cuenta (free)• Agregar contactos a la lista• Comenzar una conversacion• Compartir codigo• Arreglo de bugs, compilación y ejecución

colaborativa.

http://www.netbeans.org/kb/articles/quickstart-collaboration.html

Page 28: [3JSL] Nuevas Tecnologias en Java

Debugging & ProfilingDebugging & Testing• Visual debugging (breakpoints, watchpoints)• debugging de procesos remotos• On-the-fly code fixing• Integracion con JUnit testing• Debug JSP, Servlets del lado Server• Monitor HTTP Traffic• Ver, suspender, ejecutar threads

Page 29: [3JSL] Nuevas Tecnologias en Java

Debugging & Profiling

Page 30: [3JSL] Nuevas Tecnologias en Java

JavaFX

Page 31: [3JSL] Nuevas Tecnologias en Java

Introducción: ¿Que es Java FX?• JavaFX es una nueva familia de tecnologías Java que ayudarán a

crear rich Internet applications (RIA).

• JavaFX Script es un lenguaje de scripting altamente productivo que

permite a los desarrolladores de contenido crear multimedia y

contenido para plataformas en ambientes java. JavaFX Script es un

lenguaje de programacion declarativo, tipado estaticamente. Tiene

funciones de primer clase, sintaxis declarativa, comprension de listas

y evaluacion incremental dependiente. Puede hacer llamadas

directas a cualquier API de Java que exista en la plataforma

https://openjfx.dev.java.net/

Page 32: [3JSL] Nuevas Tecnologias en Java

Introducción: ¿Que es Java FX?• Java FX Player : el software de RunTime requerido para

correr aplicaciones JavaFX (presente en JRE 1.6.0)

• JavaFX Mobile : un sistema completo (SO y ambiente de aplicacion) construido con Java, Linux y otras tecnologías open source

Page 33: [3JSL] Nuevas Tecnologias en Java

Arquitectura JavaFX mobile

Page 34: [3JSL] Nuevas Tecnologias en Java

Arquitectura JavaFX Mobile

Page 35: [3JSL] Nuevas Tecnologias en Java

JavaFX, la nueva tecnología en interfaces gráficas

Page 36: [3JSL] Nuevas Tecnologias en Java

Una implementación GPLhttp://www.linuxdevices.com/news/NS7539760574.html

Page 37: [3JSL] Nuevas Tecnologias en Java

¿Por que Java FX?• Escribir GUIs es dificil (y molesto)

> si, Matisse ayuda un poco, pero...> Todavia hay demasiados “listeners”.

• GUIs por default son feas> Una herencia de cajas grises rectangulares (no solo en Java)> No tan “pirotecnicas” como los websites FLASH

• Java 2D provee mucho de lo que se necesita, pero...> Es complicado de usar para este propósito> No tiene un comportamiento “composicional”

La sintaxis declarativa de Java FX's, combina los widgets “Swing” tipicos con la funcionalidad composicional de Java 2D, logrando que escribir interfaces gráficas sea facil, y con mejores resultados

Page 38: [3JSL] Nuevas Tecnologias en Java

JRuby

Page 39: [3JSL] Nuevas Tecnologias en Java

¿Que es Ruby?

En un lenguaje orientado a objetos, con tipeado dinámico de estlo scripting (simil phyton, perl, etc)

Código abierto

Enfocado en la simplicidad

Sintáxis fácil de leer

Muy utilizado en WEB 2.0 (procesamiento de texto, xml, algunas aplicaciones gráficas... On Rails

http://www.ruby-lang.org/es/

Page 40: [3JSL] Nuevas Tecnologias en Java

¿Que es Ruby?

Liberación pública en 1995

Su creador, Yukihiro “matz” Matsumoto, mezcló partes de sus lenguajes favoritos (Perl, Smalltalk, Eiffel, Ada, y Lisp)

Su implementación oficial esta hecha en C

Page 41: [3JSL] Nuevas Tecnologias en Java

JRubyJRuby es una implementación Java del lenguaje RubyJRuby es software libre liberado con 3 tipos de licencias: CPL/GPL/LGPL JRuby está integrado con Java para permitir insertar código Ruby dentro de Java, y viceversa. (Implementación simil al proyecto Jython para el lenguaje Python)

Page 42: [3JSL] Nuevas Tecnologias en Java

Ruby on RailsRuby on Rails es un framework para aplicaciones web gratuito Ruby busca incrementar la velocidad y facilicad de armar sitios web basados en base de datosAplicaciones que usan el framework Rails son desarrolladas con el patrón de diseño Model-View-Controller (simil a integración de Struts + Hibernate + Java)

Page 43: [3JSL] Nuevas Tecnologias en Java

Para desarrolladores Ruby

JRuby ? Ya estoy bien con Ruby...Por que otra implementación?

Page 44: [3JSL] Nuevas Tecnologias en Java

¿Por que JRuby?• Clases y librerías Java en Ruby• Código Ruby dentro de Java• Soporte de código nativo• Escalabilidad con el manejo de threading nativo

(Ruby Thread <-> Java Thread)• Performance (??? ustedes definen!!!!)• Llevar Ruby a aplicaciones de tipo Enterprise

Page 45: [3JSL] Nuevas Tecnologias en Java

Para desarrolladores Java

mmm..Ruby ? Que es esto ? Suena como otra palabra “molesta” para mi...

Page 46: [3JSL] Nuevas Tecnologias en Java

¿Por qué JRuby?• Divertido, “cool”, potente lenguaje!• Features faltantes en Java

> Closure (blocks, mixin)> Open classes, metaprogramming> Literals for array, hash, regex> Duck-typing

• Integracion (entre muchas librerías)• Lenguaje de dominio específico (DSL)

Page 47: [3JSL] Nuevas Tecnologias en Java

Para desarrolladores Rails

Java ? Me estás cargando ?Eso no es cool !

Page 48: [3JSL] Nuevas Tecnologias en Java

¿Por qué JRuby on Rails?• Desarrollo ágil y dinámico• Capacidad de integrarse a server Java applications

& librerias varias• Amplio soporte para manejo de base de datos• Soporta Rails and muchos otros (todos..) gems

Page 49: [3JSL] Nuevas Tecnologias en Java

Ruby Language Basics• Clasico Hola mundo

> puts "Hola mundo!"

• # Todo, incluido un literal, es un objeto, esto funciona:> -199.abs # 199> "ruby is cool".length # 12> "Rick".index("c") # 2> "Nice Day Isn't It?".downcase.split(//).uniq.sort.join # " '?acdeinsty"

Page 50: [3JSL] Nuevas Tecnologias en Java

Ruby Language Basics• Construyendo y usando un ARRAY

> a = [1, 'hi', 3.14, 1, 2, [4, 5]]> > a[2] # 3.14> a.reverse # [[4, 5], 2, 1, 3.14, 'hi', 1]> a.flatten.uniq # [1, 'hi', 3.14, 2, 4, 5]

• Construyendo y usando un hash> hash = {:water => 'wet', :fire => 'hot'}> puts hash[:fire] # Prints: hot> > hash.each_pair do |key, value| # Or: hash.each do |key, value|> puts "#{key} is #{value}"> end

Page 51: [3JSL] Nuevas Tecnologias en Java

Ruby Language Basics• Blocks y iterators

> { puts "Hello, World!" } # Note the { braces }> > do puts "Hello, World!" end

• Parameter-passing a block to be a closure> # In an object instance variable (denoted with '@'), remember a block.> def remember(&a_block)> @block = a_block> end> # Invoke the above method, giving it a block that takes a name.> remember {|name| puts "Hello, #{name}!"}> @block.call("Blah")

Page 52: [3JSL] Nuevas Tecnologias en Java

Ruby Language Basics• Llamando a Java desde JRuby

> require 'java'> > include_class "javax.swing.JFrame"> include_class "javax.swing.JLabel"> > frame = JFrame.new()> frame.getContentPane().add(JLabel.new("This is an example."))> frame.pack()> frame.setVisible(true)

Page 53: [3JSL] Nuevas Tecnologias en Java

NetBeans and Ruby• JRuby is a Ruby interpreter

> Written entirely in Java. > Object-oriented programming, duck-typing> Tightly integrated with Java, and can be called directly

from Java programs.

• Bean Scripting Framework > Enables the use of scripting languages within a Java

application

• IDEs are not Editors> Support for all coding related tasks> Debugging infrastructure: balloon eval, thread view…

Page 54: [3JSL] Nuevas Tecnologias en Java

Netbeans Ruby Pack• Soporte comprensivo para la edición de código Ruby

> Colors> Syntax highlighting> Navigation display> Code Folding> Background error parsing> Semantic syntax highlighting,> Mark Occurrences> Go To Declaration> Instant Rename> Code Template

> Code Completion> Parameter Hints> Smart Indent> Smart Selection> Formatting> Pair Matching> Live Code Templates> RDoc Support and String Support> Spell Checking

Page 55: [3JSL] Nuevas Tecnologias en Java

Netbeans Ruby Pack • Refactoring

>

> Find Usages> Rename> Other Refactorings

• Soporte de proyectos>

> Gem Support> File Type Recognition> Project Support> Unit Tests> IRB - Interactive Ruby Shell

Page 56: [3JSL] Nuevas Tecnologias en Java

Netbeans Ruby Pack • Soporte de Debugging

> classic-debugger support - slow AND ruby-debug support - fast> RHTML debugging > Balloon Evaluation. > Views (variables, stacks etc.)> Breakpoints > Session (multiple debugging session, finishing, switching support) > Thread (state, thread switching support) > Breakpoints management > Stepping (over/into/out/resume) into project, core, loadpath classes, RHTML

Page 57: [3JSL] Nuevas Tecnologias en Java

Darkstar y Wonderland

Page 58: [3JSL] Nuevas Tecnologias en Java

¿Que es el proyecto Darkstar?• Una plataforma server para desarrolladores

de juegos> Abstracts contention, persistence, failure, etc.> Provides networking abstraction through channels> Transactional> Simple programming model – single-threaded,

synchronous, call-back driven> Free of deadlocks> Server is pure Java

• Multi Plataforma, del lado del cliente y APIs> Java SE, Java ME, C++ (Win32, PSP) APIs

Page 59: [3JSL] Nuevas Tecnologias en Java

Arquitectura Darkstar

Page 60: [3JSL] Nuevas Tecnologias en Java

Wonderland... el futuro

Page 61: [3JSL] Nuevas Tecnologias en Java

Motivación

+ 50% de los empleados de SUN trabaja desde su casa, algún día de la semana Reuniones internacionales, o

a nivel regional Desafíos del trabajo remoto

Todo es remoto Problemas de Management Dificil los “brainstormings” Poca interacción social

Page 62: [3JSL] Nuevas Tecnologias en Java

¿Por qué un mundo virtual?

Tecnología actual no consume suficiente ancho de banda en tecnología emocional.

Social networking, email, IM, text messaging, etc.Bajo ancho de banda emocional en estas aplicaciones

Se necesitan canales con mayor calidad emocional / socialPermite a los empleados

establecer relaciones real

Page 63: [3JSL] Nuevas Tecnologias en Java

La experiencia Second Life Primer paso

Encuentros programadosSe puede recibir ayuda de otrosSensación de presencia fuerte, perno completat complete

Primeras pruebas en almacenado del mundo Problemas con audio Falta de identificación clara de quien es quien Experiencia social posible, pero imposible de realizar un

trabajo real. Scripting permitido para extensiones limitadas

Page 64: [3JSL] Nuevas Tecnologias en Java

10Copyright 2007, Sun Microsystems, Inc.

Demo Video: MPK20http://research.sun.com/projects/mc/video/MPK20-oct2007.mov

Page 65: [3JSL] Nuevas Tecnologias en Java

Demo Video: Telephone Cellhttp://research.sun.com/projects/mc/video/WonderlandPhone.mov

Page 66: [3JSL] Nuevas Tecnologias en Java

Algunos Links• http://Java.net• http://Java.sun.com• http://cordobajug.org• http://www.netbeans.org• http://www.microjava.com/articles/techtalk/midp2_games/• http://www.projectdarkstar.com/• https://games-darkstar.dev.java.net/• http://www.ruby-lang.org/es/• http://www.rubyonrails.org/

Page 67: [3JSL] Nuevas Tecnologias en Java

Recursos Netbeans• NetBeans:

http://www.netbeans.org> Get your Beans here!> Latest news and development information> Netbeans Addons (additional flavors)

• NetBeans Wiki: http://en.wikipedia.org/wiki/NetBeans> Good overview,

• NetBeans & Ruby: http://wiki.netbeans.org/wiki/view/Ruby> Ruby support, FAQ, tutorials

• NetBeans Community: http://www.netbeans.org/community/index.html> Forums, support, love, tenderness

Page 68: [3JSL] Nuevas Tecnologias en Java

Recursos Java FX• Java FX Project Site: http://openjfx.dev.java.net

> Java.net: Download early versions of Java FX> IDE Plugins, Tutorials, Forums, FAQs> “Getting Started With the JavaFX Script Language”> “JavaFX Script 2D Graphics Tutorial”> “The JavaFX Script Programming Language Reference”

• Planet FX Wiki: http://jfx.wikia.com/wiki/Main_Page> Open-source documentation site for Java FX

• Chris Oliver's Blog: http://blogs.sun.com/chrisoliver/> Latest news, other informal information> Source code for lots of demos (Space Invaders, Calculator)

• Sun's Java FX Site: http://www.sun.com/software/javafx/> Sun Microsystems official product page

Page 69: [3JSL] Nuevas Tecnologias en Java

= Participación= Compartir

Page 70: [3JSL] Nuevas Tecnologias en Java

Unite a la Comunidad Java !

Page 71: [3JSL] Nuevas Tecnologias en Java

Muchas Gracias

Nicolás Federico [email protected]/Argentina_ambassador