JRuby Al Rescate J2EE

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Notes on slide 1

    Esto es lo que tenemos con J2EE, una plataforma muy estable, muy escalable encima de la cual construimos aplicaciones usando tambien una plataforma muy estable y muy escalable.

    Favorites, Groups & Events

    JRuby Al Rescate J2EE - Presentation Transcript

    1. JRuby on Rails al rescate de J2EE jorge.rodriguez@continuum.cl Fundador & CEO de Continuum http://twitter.com/j4rs Encuentro Linux 2009
    2. Banana Boy !
    3. Banana Boy !
    4. jorge.rodriguez@continuum.cl Fundador & CEO http://twitter.com/j4rs
    5. si eres entusiasta de Rails...
    6. info@continuum.cl
    7. Esta presentación esta basada en hechos reales...
    8. 18 años de evolución
    9. Soporte de gigantes
    10. Vendida a muchos clientes
    11. plataforma estable y robusta...
    12. performance
    13. Manejo de la memoria
    14. escalable...
    15. comunidad apasionada
    16. Herramientas, librerías, extensiones
    17. excelente lenguaje...
    18. J2EE
    19. Aplicaciones Web entre otras cosas...
    20. portable, robusta, escalable, blablabla...
    21. Do more with less work...
    22. Capa dinámica (código de aplicación) (J2EE / Java) Capa Estable (servidores de aplicaciones), Alto desempeño (Java) http://olabini.com/blog/2008/01/language-explorations/
    23. una buena idea...?
    24. uhmm...
    25. JEE es un poco más...
    26. Para construir una aplicación...
    27. 2.8 Megas de Especificación
    28. JAX-WS 2.0 EJB 3.0 JDBC JMX SAAJ JAF 1.1 JAXB 2.0 JNDI JSF 2.1 JAAS JSP 2.1 JTA JMS JSTL
    29. ambientes de desarrollo pesados 200 MB
    30. ciclos de desarrollo lentos...
    31. yo estuve allí...
    32. diversos frameworks para resolver los mismos problemas...
    33. mucho código...
    34. muchas versiones...
    35. J2EE para desarrollar ágilmente
    36. Podemos hacer algo?
    37. Yes, we can !
    38. NO J2EE ! Entonces que ? Capa Estable (servidores de aplicaciones), Alto desempeño (Java) http://olabini.com/blog/2008/01/language-explorations/
    39. los protagonistas...
    40. ¿ Ruby ?
    41. • lenguaje abierto
    42. •lenguaje abierto • dinámico, flexible y muy expresivo
    43. •lenguaje abierto • dinámico, flexible y muy expresivo • enfocado en la simplicidad y productividad
    44. • lenguaje abierto • dinámico, flexible y muy expresivo • enfocado en la simplicidad y productividad • versión 1.9.1
    45. • lenguaje abierto • dinámico, flexible y muy expresivo • enfocado en la simplicidad y productividad • versión 1.9.1 • bla bla bla...
    46. comparar con java...
    47. “Necesito copiar el contenido de un archivo hacia otro archivo”
    48. java
    49. ?
    50. después de google...
    51. FileInputStream input = null; FileOutputStream output = null; try { try { input = new FileInputStream("/tmp/src.txt"); } catch (IOException io1) { throw new RuntimeException("couldn't open input file", io1); } try { output = new FileOutputStream("/tmp/dest.txt"); } catch (IOException io2) { throw new RuntimeException("couldn't open output file", io2); } byte[] buf = new byte[8192]; int numBytesRead = 0; while ((numBytesRead = input.read(buf)) != -1) { output.write(buf, 0, numBytesRead); } } catch (IOException io) { throw new RuntimeException("couldn't read/write or something", io); } finally {
    52. try { if (input != null) { input.close(); } } catch (IOException ignored1) { } try { if (output != null) { output.close(); } } catch (IOException ignored2) { } }
    53. ruby
    54. File.open("/tmp/src.txt") do |input| File.open("/tmp/dest.txt", "w") do |output| output << input.read end end
    55. “Quiero buscar todos los patrones twitters en la sentencia”
    56. java
    57. después de google...
    58. String x = "@j4rs en @encuentrolinux mostrando jruby"; Pattern p = Pattern.compile("@w+"); Matcher m = p.matcher(x); while (m.find()) { System.out.println(m.group()); }
    59. ruby
    60. "@j4rs en @encuentrolinux mostrando jruby".scan(/@w+/).each do |t| puts t end
    61. “Quiero repetir ‘Hola EL2009’ 5 veces...”
    62. java
    63. for (int i = 0; i < 5; i++) { System.out.println("Hola EL2009"); }
    64. ruby
    65. 5.times {puts "Hola EL2009"}
    66. “Crear la clase Rectángulo y definir su área”
    67. java
    68. public class Rectangulo { private double a; private double b; public Rectangulo(int a, int b) { this.a = a; this.b = b; } /** * @return the a */ public double getA() { return a; } /** * @param a the a to set */ public void setA(double a) { this.a = a; }
    69. /** * @return the b */ public double getB() { return b; } /** * @param b the b to set */ public void setB(double b) { this.b = b; } /** * @return */ public double area() { return a*b; } }
    70. ruby
    71. class Rectangulo attr_accessor :a, :b def initialize(a, b) @a = a; @b = b; end def area() a*b end end
    72. “...ruby focus on humans...” “...we are masters, machines are the slaves...”
    73. but so?, esto es java, de que me sirve ruby?
    74. próximo protagonista
    75. ¿ JRuby ?
    76. • Implementación de Ruby 100 % en Java
    77. •Implementación de Ruby 100 % en Java • 5 veces más rapida que C-Ruby
    78. •Implementación de Ruby 100 % en Java • 5 veces más rapida que C-Ruby • Versión estable 1.3 (Comp. Ruby 1.8.7)
    79. •Implementación de Ruby 100 % en Java • 5 veces más rapida que C-Ruby • Versión estable 1.3 (Comp. Ruby 1.8.7) • JRuby 1.4 en Octubre (Comp. Ruby 1.9)
    80. •Implementación de Ruby 100 % en Java • 5 veces más rapida que C-Ruby • Versión estable 1.3 (Comp. Ruby 1.8.7) • JRuby 1.4 en Octubre (Comp. Ruby 1.9) • Instalación: jruby.jar
    81. Java <=> Ruby
    82. demo: Java Swing
    83. demo: probar lib java sin main()
    84. próximo protagonista
    85. ¿ Rails ?
    86. • framework web open source
    87. • framework web open source • construido sobre y para Ruby
    88. • framework web open source • construido sobre y para Ruby • orientado al desarrollo ágil
    89. • framework web open source • construido sobre y para Ruby • orientado al desarrollo ágil • una filosofía diferente de crear aplicaciones web
    90. • framework web open source • construido sobre y para Ruby • orientado al desarrollo ágil • una filosofía diferente de crear aplicaciones web • “convención sobre configuración...”
    91. • framework web open source • construido sobre y para Ruby • orientado al desarrollo ágil • una filosofía diferente de crear aplicaciones web • “convención sobre configuración...” • mucho más...
    92. cultura alternativa...
    93. Libertad...
    94. Libertad... No precisamente este tipo de libertad...
    95. diversión...
    96. demo: al final
    97. último protagonista...
    98. + ¿ JRuby on Rails ?
    99. En la unión está la fuerza...
    100. Capa dinámica (código de aplicación) JRuby (Rails) Capa Estable (servidores de aplicaciones), Alto desempeño (Java) http://olabini.com/blog/2008/01/language-explorations/
    101. una historia de éxito...
    102. un cliente estratégico...
    103. el proyecto...
    104. 1. Parsear XMLs
    105. 1. Parsear XMLs 2. Crear prototipo WS-*
    106. 1. Parsear XMLs 2. Crear prototipo WS-* 3. Consumir WS-*
    107. 1. Parsear XMLs 2. Crear prototipo WS-* 3. Consumir WS-* 4. Generar PDFs
    108. 1. Parsear XMLs 2. Crear prototipo WS-* 3. Consumir WS-* 4. Generar PDFs 5. Mensajería asíncrona vía MQ Series
    109. 1. Parsear XMLs 2. Crear prototipo WS-* 3. Consumir WS-* 4. Generar PDFs 5. Mensajería asíncrona vía MQ Series 6. Mucho de HTML + CSS + JS
    110. tiempo = 3 días
    111. Negociamos con el cliente: No lo logramos con J2EE
    112. Única restricción: Debe correr en nuestra Infraestructura: java
    113. + JRuby on Rails
    114. 3 días y 150 lineas de código más tarde estaba lista
    115. Un secreto: Problemas de performance Necesitamos migrar la aplicación a Java
    116. Tiempo: Una Noche calurosa de Miami
    117. demo final: JRuby on Rails
    118. Aplicación: “Social Todo List”
    119. Conclusiones
    120. Capa dinámica (código de aplicación) JRuby, Jython, otro... Capa Estable (servidores de aplicaciones), Alto desempeño (Java) http://olabini.com/blog/2008/01/language-explorations/
    121. Poliglotas
    122. ¿ Preguntas ? http://continuum.cl http://twitter.com/j4rs

    + Jorge Alberto  Rodríguez SuárezJorge Alberto Rodríguez Suárez, 3 weeks ago

    custom

    91 views, 0 favs, 1 embeds more stats

    JRuby on Rails al rescate de J2EE: Encuentro Linux more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 91
      • 63 on SlideShare
      • 28 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 3
    Most viewed embeds
    • 28 views on http://blog.continuum.cl

    more

    All embeds
    • 28 views on http://blog.continuum.cl

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories