Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Intro a Scala

Intro a Scala

Charla que dimos en la Scala Meetup Montevideo

Avatar for federico silva

federico silva

January 17, 2013
Tweet

More Decks by federico silva

Other Decks in Programming

Transcript

  1. Scala es: • Lenguaje de propósito general • Multiparadigma •

    Fuertemente tipado (según es.wikipedia) • Hosteado en el JVM ( Genera Bytecode ) • Interoperable con Java (y otros lenguajes en el jvm) viernes 18 de enero de 13
  2. Por que? • En principio el software debería ser contruido

    a partir de componentes. • Los lenguajes necesitan ser escalables: iguales en pequeña y gran escala. • Se intenta lograr ese objetivo fusionando OO/FP viernes 18 de enero de 13
  3. Multi paradigma Orientado a Objetos (Imperativo) • Fácil de adaptar

    y extender • Las clases proveen abstracciones parciales • Modularidad Funcional • Funciones de alto orden: flexibilidad • Inmutabilidad y transparencia referencial • Construir cosas a partir de partes pequeñas • La inmutabilidad y la transparencia referencial son muy beneficiosas en el mundo multicore. viernes 18 de enero de 13
  4. Lenguaje escalable • Pequeña escala: scripts, programa en un archivo,

    conciso. • Sistemas basados en componentes. Posiblemente cientos. ( The Cake Pattern) viernes 18 de enero de 13
  5. Lenguaje Agil • Inferencia de tipos • Libertad de estructurar

    el sistema como queramos • El type system es poderoso y en general no se mete en el camino • Sintaxis flexible: Crea tu propio lenguaje viernes 18 de enero de 13
  6. Type System Unificado • Todo es un objeto • El

    compilador decide cuando puede no boxear. viernes 18 de enero de 13
  7. Show me the Code • Clases, objetos y traits •

    Funciones • Operator Overloading • For Comprehensions • Polimorfismo paramétrico (Generics) • Pattern Matching • Option/Either • No vamos a ver: Implicits, typeclasses (Otra charla). viernes 18 de enero de 13
  8. Hay Herramientas? • IDES: Eclipse, IDEA, vim :) • Concurrencia:

    Akka (the killer app) • Machine Learning/BigData: Spark, Scalding, scoobi • Web: Unfiltered, Scalatra, Play! (varios mas!) • Build Tools: sbt, maven viernes 18 de enero de 13