Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

El Lenguaje Scala (página 2)




Enviado por Pablo Turmero



Partes: 1, 2

Monografias.com

17
Eficiencia
Los resultados obtenidos comparando el Factorial en Java como en Scala usando recursión de cola son:

Monografias.com

18
Traits: Unidades componibles de comportamiento
Los traits son sencillos pero potentes mecanismos de composición.
Un trait es esencialmente un conjunto de métodos parametrizados.
En Scala las clases aún están organizadas en una jerarquía de herencia simple, pero con los traits podemos definir un comportamiento adicional respecto a sus superclases.

trait Padre {
private var hijos: List[Hijos] = Nil
def añadirHijo(hijo: Hijo) =
hijos = hijo :: hijos
def obtenerHijos = hijos.clone
}

Monografias.com

19
Traits: Unidades componibles de comportamiento
Clase base:
class Hombre(val nombre: String) extends SerHumano

Composición con mixins estática y uso:
class Hombre(val nombre: String) extends SerHumano with Padre

val juan = new Hombre("Juan")
juan.añadirHijo(new Hijo("Jose"))

Composición con mixins dinámica y uso:
val juan = new Hombre("Juan") with Padre
juan.añadirHijo(new Hijo("Jose"))

Monografias.com

20
Traits: Unidades componibles de comportamiento
Los traits nos permiten simular la herencia múltiple:

val orden = new Orden(cliente)
with Entidad
with InventarioCjtoItems
with LimiteDeCompre
with NotificaciónPorCorreo
with ACL
with Transaccion

El orden en que se añaden los traits es importante.

Monografias.com

21
Lenguajes de dominio específico (DSLs)
Las características de Scala lo hacen ideal para el diseño de lenguajes de dominio específico.
Ya se ha creado alguno como Apache Camel. Este DSL permite integrar sistemas heterogéneos haciendo uso de ficheros XML.
Scala soporta XML a nivel de lenguaje y no de biblioteca.

class Entrada(var titulo:String, val enlace:String, val id:String, var fecha:Date,
var sumario: String) {
def toAtom =

{id}
{fecha}
{sumario}

}

Estos ficheros son muy sencillos de manipular gracias al pattern matching.

Monografias.com

22
Herramientas
El conjunto de herramientas para el desarrollo en Scala es muy completo.
Compilador e intérprete: scalac y scala.
Plugins para los IDEs más usados:
Eclispe
IntelliJ
Netbeans
Modo para Emacs.
Frameworks para tests: Specs, ScalaCheck, ScalaTest, SUnit…
Framework web: Lift (similar a Ruby on Rails).
Otros frameworks: Sweet, Slinky y Pinky.
Building: Maven, Ant, SBT (Simple Build Tool).

Monografias.com

23
¿Quién lo usa?
Compañías:
Twitter: Backend (cola de mensajes)
Sony Pictures: Middleware (capa de conversión/traducción)
Nature.com
SAP community
Reaktor Innovations
Mimesis Republic: juegos multijugador online
EDF Trading: inversiones bursátiles

Proyectos Open Source:
Lift: Framework de aplicaciones web similar a Ruby on Rails.
NetLogo: Lenguaje de programación multiagente.
Isabelle: Demostrador de teoremas – Intefaz de usuario

Monografias.com

24
¿Quién lo usa?
Universidades:
Programming Methods Group – Escuela Politécnica Federal de Lausana (EPFL), Suiza.
Program Structures and Data Organization Institute (IPD) – Universidad de Karlsruhe, Alemania.

Tesis:
Object-Oriented Pattern Matching. Burak Emir. EPFL Oct-2007.
An Object-Oriented Programming Model for Event-Based Actors. Philipp Haller. EPFL May-2006.
A Typed Intermediate Language and Algorithms for Compiling Scala by Successive Rewritings. Philippe Altherr. EPFL Mar-2006.
Foundations for Scala: Semantics and Proof of Virtual Types. Vincent Cremet. EPFL May-2006.
Compiling Scala for the Java Virtual Machine. Michel Schinz. EPFL Sep-2005.

Monografias.com

25
Conclusiones
Scala le permite:
Crear código altamente escalable.
Aprovecha la arquitecturas paralelas de hardware (como CPUs multi-core).
Creación de Lenguaje de Dominio Específico (DSL).
Factores que trabajan a favor del programador:
Scala compila a bytecode de Java, se ejecuta en la JVM.
Se basa en principios funcionales de Haskell y Meta Lenguaje.
Hace uso intensivo de inferencia de tipos.
El compilador analiza el código profundamente para determinar de que tipo es un valor en particular, sin intervención del programador.
Scala no fue desarrollado por capricho, y no será abandonado de la misma manera.

Monografias.com

26
Java vs Scala.
Nuestra conclusión es que Scala es un mejor Java.

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter