Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Java 8: Más funcional que nunca

3,874 views

Published on

Introducción a programación funcional con Java 8.

Presentación parte de GuateJUG tour 2015, Universidad de San Carlos de Guatemala 26/09/2015

Published in: Software
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Java 8: Más funcional que nunca

  1. 1. Java 8: M´as funcional que nunca V´ıctor Orozco GuateJUG September 26, 2015
  2. 2. V´ıctor Orozco Developer (JVM/Open Source Advocate) Ex-JUG Leader Consultor independiente (Nabenik) @tuxtor The J*
  3. 3. Java 8 https://www.oracle.com/java8 https://www.oracle.com/java8launch
  4. 4. Java 8 Nashorn Date/Time API Compact Profiles Type Annotations Default methods Streams Lambda Expressions
  5. 5. Paradigmas (Simplificaci´on) Paradigmas Imperativo Estructurado Pascal OOP Java Declarativo Funcional Clojure Logico Prolog
  6. 6. Programaci´on funcional Computaci´on = Evaluaci´on de funciones matem´aticas (calculo de lambdas) NO cambios en estado NO mutar datos Declarativo → Expresiones
  7. 7. Java vs. Funcional (Organizaci´on) Java Clases FP Funciones
  8. 8. Java vs. Funcional (Algoritmos) Java Imperativo, comportamiento como una serie de pasos FP Declarativo, interacci´on de fun- ciones sin especificar su contenido
  9. 9. Java vs. Funcional (Mutabilidad y estado) Java Estado y comportamiento juntos, promueve mutabilidad FP Evita estado, pro- mueve inmutabilidad
  10. 10. Java vs. Funcional (Estilo) Java OOP + Patrones para ab- stracciones de alto nivel FP Es una abstracci´on en alto nivel por si mismo
  11. 11. Java vs. Funcional (Concurrencia) Java Concurrencia basica con locks y recursos compartidos FP Workflows paralelos sin es- tado compartido (no locks!)
  12. 12. Java vs. Funcional (C´odigo) Java Descriptivo (demasiado) FP Conciso y denso
  13. 13. Java 8 Un licuado de programaci´on orientada a objetos con azucares sint´acticas funcionales.
  14. 14. ¿Porque programaci´on funcional? ¡Paralelismo! Multicore, multicpu Elegancia
  15. 15. Programaci´on funcional en Java 8 Java no es un lenguaje funcional puro (Clojure) Otras opciones JVM (Scala, Kotlin, Ceylon) Java soporta programaci´on funcional a trav´es de bibliotecas
  16. 16. Bloques funcionales en Java 8 Interfaces funcionales Referencia a funciones Lambdas Funciones predefinidas en Java 8 (java.util.function) Streams API
  17. 17. Interfaces funcionales Solo un m´etodo abstracto Interfaces ahora permiten default methods @FunctionalInterface public interface Runnable { public abstract void Run (); }
  18. 18. Referencias a funciones Permiten utilizar una funci´on dentro de una expresi´on lambda Permiten invocar m´etodos existentes
  19. 19. Expresion lambda Funci´on an´onima sin asociar a un identificador Usadas para pasar comportamiento a funciones high-order Usadas para construir el resultado de una funci´on high-order que necesita retornar una funci´on
  20. 20. Expresion lambda (anatomia) (parametros) → comportamiento (Integer i) -> {System.out.println(i);}; i -> System.out.println(i); i -> i*2;
  21. 21. Funciones predefinidas M´as de 40 interfaces funcionales en Java 8 Raramente se deben crear nuevas
  22. 22. Streams API Map-Reduce Monads = Serie de pasos / funciones anidadas Stream Operaci´on intermedia Operaci´on intermedia Operaci´on terminal
  23. 23. Ejemplo http://github.com/tuxtor/fpjavademo
  24. 24. Programaci´on funcional - Bueno Divertido Declarativo Menos c´odigo, c´odigo m´as legible
  25. 25. Programaci´on funcional - Malo Performance - invokedinamic Debug Flexibilidad
  26. 26. Lecturas recomendadas JDK 8 Lamdas & Streams MOOC Functional Programming in Java: Harnessing the Power Of Java 8 Lambda Expressions
  27. 27. Java 8 y m´as 14 de noviembre http://www.guate-jug.net http://www.guate-jug.net/javaday2015/llamada
  28. 28. Gracias me@vorozco.com http://vorozco.com http://github.com/tuxtor/slides This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Guatemala License.

×