Historia de la Programacion funcional
-
Upload
jose-luis-garcia-hernandez -
Category
Software
-
view
209 -
download
0
Transcript of Historia de la Programacion funcional
¿Qué es la programación funcional?
Un paradigma de programación, en el que las funciones son ciudadanos de primera clase.
- Haskell- Ocaml
@jlgarhdez
¿Qué es la programación funcional?
Un paradigma de programación, en el que las funciones son ciudadanos de primera clase.
- Haskell- Ocaml
Un estilo de programación, en el que se emula el paradigma funcional en lenguajes no funcionales.
- Underscore.js- Functional php
@jlgarhdez
Cálculo LambdaCreado en 1936 por Alonzo Church.
Una forma de expresar computaciones matemáticas mediante funciones
@jlgarhdez
Creado en 1958 por John McCarthy
Precursor en la programación funcional
Familia de lenguajes de programación (Scheme, Common Lisp, Clojure…)
Todo son expresiones
Lisp
@jlgarhdez
MLSe desarrolla en los 1970s
Al igual que LISP, es una familia de lenguages. (Standard ML, F#, OCaml…)
Tipado estáticamente
Estricto
@jlgarhdez
Creado en 1986 en Ericsson
Junto con el framework OTP, está pensado para crear plataformas escalables y tolerantes a fallos
Modelo de actores
Erlang
@jlgarhdez
HaskellDiseñado por un comité en 1987
Primera implementación en 1990
Tipado estricto
Evaluación perezosa
Tipos de orden superior
Puramente funcional
@jlgarhdez
Creado en 2004 por Martin Odersky
Scala es un lenguaje orientado a objetos que permite la programación funcional de una manera muy efectiva
Corre sobre la JVM y también transpila a JS
El lenguaje del big data. Spark, Flink, Samza, Kafka…
Scala
@jlgarhdez
F#Diseñado por Microsoft en 2005
Dialecto de ML
Corre en el Common Language Runtime (como VB, C#...)
@jlgarhdez
Creado en 2007 por Rich Hickey
Dialecto de Lisp
Tipado dinámico
Diseñado para correr en diferentes plataformas
Actualmente corre en CLR, JVM, y transpila a JavaScript
Clojure
@jlgarhdez
Expresividad
Tipos de datos algebráicos (Haskell, Scala)
Multimethods (Clojure)
Coproductos & Funtores (Haskell, Scala)
@jlgarhdez
Paralelismo
Transparencia referencial
Dado que no existe un estado global, no es necesario implementar MutExes, Semáforos, Locks…
Scala (Akka) y Erlang (OTP) implementan el modelo de actores, que facilita la concurrencia y el paralelismo
@jlgarhdez
Facebook lucha contra el Spam con Haskell.
Ha creado un sistema anti-spam, con capacidades como hot-swap reloading en Haskell
Se suben nuevas reglas (en Haskell) cientos de veces al día
@jlgarhdez
Twitter ha migrado la mayoría de su código backend a Scala.
Han creado proyectos en Scala como Stitch, Finagle...
@jlgarhdez
Jane Street
Jane street es una empresa de trading de alta frecuencia y análisis cuantitativo que usa OCaml
Empezaron a usarlo por su robustez y su sistema de tipos
@jlgarhdez
Linkedin utiliza Scala para gran parte de sus sistemas de backend
Crearon Kafka (ahora un proyecto Apache), una sistema de mensajería pub-sub
@jlgarhdez