Skip to content

Introducción a la programación con transient

A
Hosted By
Alberto Gómez C.
Introducción a la programación con transient

Details

Descripción del Taller:
Transient el el nombre de una librería Haskell que tiene incluidas funcionalidades web, computación distribuida, reactiva y multi hebra entre otras cosas. Creada para que el que empieza a conocer Haskell pueda programar al menos algunas de esas funcionalidades desde el principio sin una larga curva de aprendizaje, con el objetivo de hacer Haskell mas cercano a las necesidades prácticas.

Es además una nueva forma de programar casi todo. Avisamos que esta librería comete una gran cantidad de herejías y está hecha por un individuo subversivo y peligroso. Buscado en varios paises por sus presentaciones con tartamudeos dubitaciones y carraspeos, a todas luces con animo de provocar.

Espero que sea asequible para todo el mundo incluidos recién llegados a Haskell o simplemente con gente que tenga curiosidad y no conozca todavía el lenguaje.

Este programa es un ejemplo motivador, ya que es una aplicación web completa, corre en el servidor y en navegadores, que presenta una caja de texto donde pide el nombre. Al pulsar enter, se envía al servidor, que devuelve tres veces (en tres threads distintos) el mensaje "hello " y lo presenta debajo de la caja:

---------------------------------------------------
main= keep . initNode $ myProgram

myProgram :: Cloud ()
myProgram= onBrowser $ do
name <- local . render $ getString Nothing ! atr "placeholder" "your name" `fire` OnChange
r <- atServer . local . choose . take 3 . repeat $ "hello "++ name
local . render . rawHtml $ h1 r

-----------------------------------------------------

Los componentes de Transient son:

-- transient como tal, que implementa efectos reactivos, streaming,
estado, paralelismo, concurrencia
https://github.com/transient-haskell/transient

-- transient con efectos de computación distribuida, map-reduce y otros
servicios para computación distribuida
https://github.com/transient-haskell/transient-universe

-- una librería para aplicaciones web cliente y servidor.
https://github.com/transient-haskell/axiom

-- comunicaciones seguras
https://github.com/transient-haskell/transient-universe-tls

-- Algunos ejemplos que veremos
https://github.com/transient-haskell/transient-examples

Haremos ejemplos de aplicaciones Web, distribuidas, con multi-hilo y/o reactivas, incluso algún ejemplo con map-reduce y discutiremos para entender la teoría, como funciona y como se puede utilizar para divertirse programando o para hacer con el mínimo esfuerzo esas aplicaciones que se necesitan para ayer.

Para empezar a trabajar desde el principio sin problemas de instalación, se recomienda tener Docker instalado y la imagen de transient cargada:

Como instalar docker: https://www.docker.com/get-docker

Una vez instalado, hacer:

> docker pull agocorona/transient

Podéis contactar conmigo y discutir sobre el taller, sobre como instalar docker etc antes, durante y después en:
https://gitter.im/Transient-Transient-Universe-HPlay/taller

Bio:
Alberto Gómez Corona. Licenciado en Fisicas. Ha trabajado en empresas tanto privadas como públicas, españolas y europeas en proyectos para la industria o de I+D siempre en Software. Actualmente es Free Lance. Empecé con el ZX spectrum, para el que contruyó un compilador de Prolog, otro de Lisp y otro de C. Desde entonces no ha dejado de programar en estos lenguajes además de Fortran, C++, C# , Web/Javascript yJava. Le fascinó Lisp y hace mas de 10 años descubrió Haskell. Es el autor de unos cuantos paquetes, siempre con ideas peculiares, como "MFlow", un Web framework basado en continuaciones, "Workflow": un paquete que salva y recupera el estado de ejecución y "Transient", un EDSL con combinadores que permiten lo que se descibe en este taller. Lo presentó en LambdaConf/Denver año pasado en la medida en que se lo permitió el Jet-Lag y el año anterior en Lambda World, en Cadiz.

¡¡ Los Esperamos !!

Photo of Madrid Haskell Users Group group
Madrid Haskell Users Group
See more events
Liferay
Paseo de la Castellana 280. 1ª Plta. · 28046 Madrid