Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Elixiiiir

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 7

Programación funcional

La programación funcional nos es más que un paradigma de programación,


es decir, es una forma en la cual podemos resolver diferentes
problemáticas.
La programación funcional es un paradigma declarativo. Nos enfocaremos
en "qué" estamos haciendo y no en "cómo" se está haciendo que sería el
enfoque imperativo. Esto quiere decir que nosotros expresaremos nuestra
lógica sin describir controles de flujo; no usaremos ciclos o condicionales.

HISTORIA
La década de los 80 llegó Erlang, uno de los protagonistas de esta historia que, para
poder entender el poder que alcanzará Elixir, primero hay que explicar un poco más
sobre este viejo lenguaje que sigue vivo.
Erlang es un lenguaje funcional increíblemente potente a la hora de tratar la
concurrencia. Nació de las manos de Ericsson con el fin de mejorar el desarrollo de
aplicaciones telefónicas. Dos ejemplos gráficos.
1. ¿Habías pensado cómo tu operador de telefonía móvil sigue funcionando
incluso mientras estás teniendo una actualización de software? Erlang, amigo.
2.  Whatsapp tiene 1.200 millones de usuarios. Manejar más de 10.000
conexiones concurrentes es un reto, pero WhatsApp tiene servidores
individuales con más de 2 millones de conexiones en un único servidor.
Manejado por Erlang.
Erlang es un lenguaje funcional en una etapa ya madura y llena de funcionalidades que
además ofrece una concurrencia difícil de replicar. Entonces, ¿por qué no acabó de
cuajar entre el público general? Entre otras cosas porque es un lenguaje bastante
difícil. Su sintaxis es un poco extraña, sobre todo si estás acostumbrado a trabajar con
los lenguajes más populares a día de hoy: PHP, Java, JavaScript… o Ruby, del que
hablaremos más tarde también.
Pero entonces viene 2011 y llega Elixir de la mano de José Valim, que dice lo
siguiente: «Me gustó todo lo que vi en Erlang, pero odié todo lo que no vi». Así que,
para él, sólo había una opción: Crear un lenguaje con la potencia y funcionalidades de
Erlang y, siendo uno de los mayores conocedores de Ruby y parte del Rails Core Team,
otorgarle la facilidad y productividad de Ruby.
¿Cómo? Con una jugada maestra. Hace correr Elixir dentro de la Erlang Virtual
Machine. Así, un lenguaje moderno como Elixir gana robustez y se aleja de la dificultad
académica típica de otros lenguajes funcionales, haciéndolo más asequible para todo
tipo de programadores. Y con una sintaxis similar a la de Ruby, crea un lenguaje fácil
de aprender. Además, como el lenguaje se compila a bytecode de Erlang, se pueden
utilizar funciones de ese lenguaje sin ningún tipo de penalización.
Así pues, tenemos un lenguaje fácil de aprender, funcional

Elixir, un lenguaje funcional basado en Erlang pero con una sintaxis elegante
influenciada por Ruby

“Está diseñado para crear aplicaciones escalables y mantenibles


¿Cuáles empresas y proyectos utilizan Elixir?
Ese lenguaje es utilizado por grandes empresas, ya sea en el desarrollo web o hasta en
la construcción de sistemas embarcados. Entre estos, están:
• Bleacher Report, sitio web deportivo con sede en San Francisco (EUA);
• Inverse, otra empresa americana de medios digitales;
• Adobe, multinacional americana que desarrolla programas de computadores,
como Acrobat Reader.
• E-MetroTel, uma compañia de comunicación integrada;
• Moz, empresa de software dedicada a SEO e Inbound Marketing.
Entre las soluciones más famosas que se crearon utilizando Elixir, se destacan:
• WhatsApp, aplicación para intercambio de mensajes utilizados por 2 mil
millones de per
• onas en el mundo;
• Pinterest, red social para compartir imágenes;
• Discord, aplicación proyectada para la comunidad de juegos, que permite que
las personas se comuniquen por voz, video y texto;
• Envato, un marketplace para recursos digitales y personas creativas.

Diferencies amb altres llenguatges


• Pattern matching
• OTP (Open Telecom Platform)

OTP (Open Telecom Platform) es un conjunto de librerías y funcionalidades de


Erlang, que permiten trabajar de forma fácil y asequible con programación
concurrente.

Hay que tener en cuenta que Erlang y OTP estaban pensados inicialmente para
su uso en centralitas telefónicas, así que a la hora de diseñar OTP se basaron en
un modelo de actores. Esto quiere decir, que los procesos concurrentes, son
totalmente independientes y no comparten ningún tipo de información.
Cuando un proceso quiere comunicarse con otro, solo puede hacerlo a través
del paso de mensajes (a través de un buzón), que el proceso de destino
procesará cuando crea conveniente o le sea posible.

• Macros es com la metaprogramación consiste en escribir programas que


escriben o manipulan otros programas (o a sí mismos) como datos, o que hacen
en tiempo de compilación parte del trabajo que, de otra forma, se haría en tiempo
de ejecución. Esto permite al programador ahorrar tiempo en la producción de
código.

• Operador PIPE
Com fer funcionar elixir
-Atom o algún editor de codi amb paquets d’elixir
-Erlang + Elixir
-Plug in Phoenix per webs
-Cmd o powershell amb el mode interactiu

Instal·lar Elixir
Aquí teniu varies maneres d’instalar elixir als diferents softwares

Guia Elixir
Obrim la maquina erlang amb elixir compartint la pantalla, i vaig fent
• Basic:
• Nombres enters, binaris, octals i hexadecimals
252
0b0110
0o644
0x1F
 Booleans: Suporta true i false com booleans, tot valor es vertader a
excepció de false y nil
True
False
 Àtoms: Constant de la que, el seu nom es el seu valor

:foo
:true
 Cadenes
“foo
bar”

 Operacions aritmètiques, booleanes i comparacions

 Pattern matching si cal ho faig a la maquina erlang

 IF I UNLESS (A NO SER QUE)


INTEGER ENTERO

 Case Si es necesario buscar una coincidencia en múltiples patrones


podemos usar case

Si no utilitzem La variable _ es una inclusión importante en la


declaración case. Sin esto, cuando no se encuentre una coincidencia, se
lanzará un error:

Considera _ como el else que coincidirá con “todo lo demás”. Ya


que case se basa en la coincidencia de patrones, se aplican las mismas
reglas y restricciones.

 Cond

Cuando necesitamos coincidencias con condiciones, y no valores,


podemos cambiar a cond; esto es parecido a else if
Else if sino

 Funcions sense nom  


Para definir una función anónima en Elixir necesitamos las palabras
clave fn y end. Dentro de estos podemos definir, separados por ->,
cualquier número de parámetros y el cuerpo de la función.
 Funcions amb nom obro el atom i cmd

Iex i nom de exemple que vulgui


Posem el nom del mòdul i el que ens digui
Podemos definir funciones con nombre para así poder referirnos a ellas luego. Estas funciones
con nombre son definidas con la palabra clave def dentro de un módulo. Vamos a aprender
más acerca de los módulos en las siguientes lecciones, por ahora nos enfocaremos solamente
en las funciones con nombre.
Las funciones definidas dentro de un módulo están disponibles para ser usadas por otros
módulos, esto es particularmente útil para construir bloques en Elixir:

Operador pipe
Ordenat i bonic
Ho fa mes curt
toma el resultado de una expresión, y se lo pasa a la siguiente

 MIX
Com esteu veient atom no permet crear un projecte
Cmd i posem mix new exemple

A mix.exs configurarem l’aplicacio dependència entorn i versió

App per el nom de laplicacio


Version per la versió del projecte
Elixir per la versió delixir
Deps per les dependències

Mix va compilant ell sol però poder necesties ferho tu


Nomes em de posar mix compile al directori base
Cuando estamos listos para crear un nuevo proyecto Elixir, mix lo hace fácil
con el comando mix new. Esto generará la estructura y los archivos necesarios
de nuestro proyecto. Esto es bastante sencillo, ahora vamos a empezar:

También podría gustarte