SlideShare a Scribd company logo
1 of 19
Download to read offline
Let’s Talk About
Dimitris Zorbas - Athens Ruby Meetup#26
github.com/zorbash @_zorbash
is a functional, concurrent language designed for
building scalable and maintainable applications.
Dimitris Zorbas - Athens Ruby Meetup#26
The power of Erlang meets the joy of Ruby!
Why Bother?
➔ Created by a rubyist
aimed to rubyists
➔ Learn a new language
every year
➔ Even Matz likes it!
Dimitris Zorbas - Athens Ruby Meetup#26
Really Why Bother?
Seems to solve the core issues of Ruby
(performance / scalability / maintainability),
adopting a functional programming model, with a
sweet Ruby-like syntax and cherries on top.
Dimitris Zorbas - Athens Ruby Meetup#26
Really Why Bother?
Dimitris Zorbas - Athens Ruby Meetup#26
Features
Immutability
Dimitris Zorbas - Athens Ruby Meetup#26
will_change = 42
answer = fn -> will_change end
will_change = 1337
answer.()
# => 42
Features
Pipelines
Dimitris Zorbas - Athens Ruby Meetup#26
[42, nil, 1337, nil, 4]
|> Enum.filter(&(&1))
|> Enum.map(&(&1 * 2))
|> Enum.sort
|> Enum.join(", ")
# => "84, 2674, 8"
Features
Pattern-Matching
Dimitris Zorbas - Athens Ruby Meetup#26
Pattern matching is one of the cornerstones of an equational style of
definition; more often than not it leads to a cleaner and more readily
understandable definition than a style based on conditional
equations. It also simplifies the process of reasoning formally about
functions.
Features
Pattern-Matching
Dimitris Zorbas - Athens Ruby Meetup#26
defmodule Speaker do
def talk(:bob), do: "Hi, uncle Bob!"
def talk(42), do: "Oh! the answer to life the universe and everything"
def talk(n) when is_number(n), do: "You're an ordinary number"
def talk(_), do: "I don't really know what to tell you"
end
Concurrency: Actor Model
Features
Dimitris Zorbas - Athens Ruby Meetup#26
Processes (actors) are the center of computation and have mailboxes.
They communicate by sending asynchronous messages to each other.
Concurrency: Actor Model
Features
Dimitris Zorbas - Athens Ruby Meetup#26
OOP to me means only messaging, local retention and protection and
hiding of state-process and extreme late-binding of all things.
Dimitris Zorbas - Athens Ruby Meetup#26
defmodule Speaker do
import IO, only: [puts: 1]
def new, do: spawn &start/0
def start do
receive do
{:answer, name} -> puts talk(name)
_ -> puts "I don't know how to handle that"
after
2000 -> puts "[#{inspect(self)}] Tell me something to do"
end
start
end
def talk(:bob), do: "Hi, uncle Bob!"
def talk(42), do: "Oh! the answer to life the universe and everything"
def talk(n) when is_number(n), do: "You're an ordinary number"
def talk(_), do: "I don't really know what to tell you"
end
Features
Async Tests
defmodule SpeakerTest do
use ExUnit.Case, async: true # Examples run concurrently
test "talking to bob" do
assert Speaker.talk(:bob) == "Hi, uncle Bob!"
End
test "talking to a stranger" do
assert Speaker.talk(:voldemort) == "I don't really know what to tell you"
end
end
Dimitris Zorbas - Athens Ruby Meetup#26
Erlang Interoperability
Features
Dimitris Zorbas - Athens Ruby Meetup#26
Erlang / LFE (Lisp-Flavored-Erlang) / Elixir all run on BEAM
OTP is directly available in Elixir
Live Fast, Die Young
Philosophy
Dimitris Zorbas - Athens Ruby Meetup#26
Live Fast, Die Young
Philosophy
Dimitris Zorbas - Athens Ruby Meetup#26
● Failures are embraced and managed. Let it crash!
● Failure is isolated in process level. No exceptions.
● Failing fast is revealing. The system stays up.
● Write Offensive Code
Live Fast, Die Young
Philosophy
Dimitris Zorbas - Athens Ruby Meetup#26
The world is concurrent. Things in the world don't share data.
Things communicate with messages. Things fail.
Resources
Dimitris Zorbas - Athens Ruby Meetup#26
● http://elixir-lang.org/getting-started/introduction.html
● http://elixirplayground.com/
● https://elixir-lang.slack.com/
you |> ask :questions |> Enum.any?

More Related Content

Viewers also liked

Rails Engine Patterns
Rails Engine PatternsRails Engine Patterns
Rails Engine PatternsAndy Maleh
 
160 lec03pt1summer15
160 lec03pt1summer15160 lec03pt1summer15
160 lec03pt1summer15pasporn
 
Matrizdeestrategasdeaprendizaje 150528153610-lva1-app6892
Matrizdeestrategasdeaprendizaje 150528153610-lva1-app6892Matrizdeestrategasdeaprendizaje 150528153610-lva1-app6892
Matrizdeestrategasdeaprendizaje 150528153610-lva1-app6892psiranz1
 
Hepatitis b factsheet_2009_arabic
Hepatitis b factsheet_2009_arabicHepatitis b factsheet_2009_arabic
Hepatitis b factsheet_2009_arabicITPCMENA
 
DECRETO LEGGE 11 novembre 2016, n. 205 Nuovi interventi urgenti in favore del...
DECRETO LEGGE 11 novembre 2016, n. 205 Nuovi interventi urgenti in favore del...DECRETO LEGGE 11 novembre 2016, n. 205 Nuovi interventi urgenti in favore del...
DECRETO LEGGE 11 novembre 2016, n. 205 Nuovi interventi urgenti in favore del...Luca Mengoni
 
акты по ростпотребнадзору распоряжение 270074
акты по ростпотребнадзору распоряжение 270074акты по ростпотребнадзору распоряжение 270074
акты по ростпотребнадзору распоряжение 270074virtualtaganrog
 
UCX: An Open Source Framework for HPC Network APIs and Beyond
UCX: An Open Source Framework for HPC Network APIs and BeyondUCX: An Open Source Framework for HPC Network APIs and Beyond
UCX: An Open Source Framework for HPC Network APIs and BeyondEd Dodds
 
Thinkpad T42 & T43 series
Thinkpad T42 & T43 seriesThinkpad T42 & T43 series
Thinkpad T42 & T43 seriesthecar1992
 
Norvegien. zukunft, prophezeiten ereignisse
Norvegien. zukunft, prophezeiten ereignisseNorvegien. zukunft, prophezeiten ereignisse
Norvegien. zukunft, prophezeiten ereignisseJean-Jacques PUGIN
 
Sotto le due torri
Sotto le due torriSotto le due torri
Sotto le due torriLuca Mengoni
 
Skroutz - 25th Athens Agile/Scrum Meetup
Skroutz - 25th Athens Agile/Scrum MeetupSkroutz - 25th Athens Agile/Scrum Meetup
Skroutz - 25th Athens Agile/Scrum MeetupSkroutz S.A.
 
8 федеральный закон рф 24.07.1998 № 124
8 федеральный закон рф 24.07.1998 № 1248 федеральный закон рф 24.07.1998 № 124
8 федеральный закон рф 24.07.1998 № 124virtualtaganrog
 

Viewers also liked (17)

Rails Engine Patterns
Rails Engine PatternsRails Engine Patterns
Rails Engine Patterns
 
160 lec03pt1summer15
160 lec03pt1summer15160 lec03pt1summer15
160 lec03pt1summer15
 
Matrizdeestrategasdeaprendizaje 150528153610-lva1-app6892
Matrizdeestrategasdeaprendizaje 150528153610-lva1-app6892Matrizdeestrategasdeaprendizaje 150528153610-lva1-app6892
Matrizdeestrategasdeaprendizaje 150528153610-lva1-app6892
 
Hepatitis b factsheet_2009_arabic
Hepatitis b factsheet_2009_arabicHepatitis b factsheet_2009_arabic
Hepatitis b factsheet_2009_arabic
 
DECRETO LEGGE 11 novembre 2016, n. 205 Nuovi interventi urgenti in favore del...
DECRETO LEGGE 11 novembre 2016, n. 205 Nuovi interventi urgenti in favore del...DECRETO LEGGE 11 novembre 2016, n. 205 Nuovi interventi urgenti in favore del...
DECRETO LEGGE 11 novembre 2016, n. 205 Nuovi interventi urgenti in favore del...
 
frontline97-digital-3
frontline97-digital-3frontline97-digital-3
frontline97-digital-3
 
Branded Nutrition PDF
Branded Nutrition PDFBranded Nutrition PDF
Branded Nutrition PDF
 
географічне краєзнавство
географічне краєзнавствогеографічне краєзнавство
географічне краєзнавство
 
акты по ростпотребнадзору распоряжение 270074
акты по ростпотребнадзору распоряжение 270074акты по ростпотребнадзору распоряжение 270074
акты по ростпотребнадзору распоряжение 270074
 
UCX: An Open Source Framework for HPC Network APIs and Beyond
UCX: An Open Source Framework for HPC Network APIs and BeyondUCX: An Open Source Framework for HPC Network APIs and Beyond
UCX: An Open Source Framework for HPC Network APIs and Beyond
 
Thinkpad T42 & T43 series
Thinkpad T42 & T43 seriesThinkpad T42 & T43 series
Thinkpad T42 & T43 series
 
Presentation1
Presentation1Presentation1
Presentation1
 
Norvegien. zukunft, prophezeiten ereignisse
Norvegien. zukunft, prophezeiten ereignisseNorvegien. zukunft, prophezeiten ereignisse
Norvegien. zukunft, prophezeiten ereignisse
 
Cases from the Clinic
Cases from the ClinicCases from the Clinic
Cases from the Clinic
 
Sotto le due torri
Sotto le due torriSotto le due torri
Sotto le due torri
 
Skroutz - 25th Athens Agile/Scrum Meetup
Skroutz - 25th Athens Agile/Scrum MeetupSkroutz - 25th Athens Agile/Scrum Meetup
Skroutz - 25th Athens Agile/Scrum Meetup
 
8 федеральный закон рф 24.07.1998 № 124
8 федеральный закон рф 24.07.1998 № 1248 федеральный закон рф 24.07.1998 № 124
8 федеральный закон рф 24.07.1998 № 124
 

Similar to Let's talk about elixir - 26th Athens Ruby Meetup

P4 P Update January 2009
P4 P Update January 2009P4 P Update January 2009
P4 P Update January 2009vsainteluce
 
Intro To Ror
Intro To RorIntro To Ror
Intro To Rormyuser
 
Ruby Programming Language - Introduction
Ruby Programming Language - IntroductionRuby Programming Language - Introduction
Ruby Programming Language - IntroductionKwangshin Oh
 
Pré Descobrimento Do Brasil
Pré Descobrimento Do BrasilPré Descobrimento Do Brasil
Pré Descobrimento Do Brasilecsette
 
Ruby on Rails Training - Module 1
Ruby on Rails Training - Module 1Ruby on Rails Training - Module 1
Ruby on Rails Training - Module 1Mark Menard
 
Fukuoka Ruby Award 2023 - Opal
Fukuoka Ruby Award 2023 - OpalFukuoka Ruby Award 2023 - Opal
Fukuoka Ruby Award 2023 - OpalAndy Maleh
 
Ruby tutorial
Ruby tutorialRuby tutorial
Ruby tutorialknoppix
 
Code for Startup MVP (Ruby on Rails) Session 2
Code for Startup MVP (Ruby on Rails) Session 2Code for Startup MVP (Ruby on Rails) Session 2
Code for Startup MVP (Ruby on Rails) Session 2Henry S
 

Similar to Let's talk about elixir - 26th Athens Ruby Meetup (20)

Ruby
RubyRuby
Ruby
 
Rails console
Rails consoleRails console
Rails console
 
P4 P Update January 2009
P4 P Update January 2009P4 P Update January 2009
P4 P Update January 2009
 
Ebay News 2000 10 19 Earnings
Ebay News 2000 10 19 EarningsEbay News 2000 10 19 Earnings
Ebay News 2000 10 19 Earnings
 
Ebay News 2001 4 19 Earnings
Ebay News 2001 4 19 EarningsEbay News 2001 4 19 Earnings
Ebay News 2001 4 19 Earnings
 
Intro To Ror
Intro To RorIntro To Ror
Intro To Ror
 
Initiation à Ruby on Rails
Initiation à Ruby on RailsInitiation à Ruby on Rails
Initiation à Ruby on Rails
 
Why Ruby?
Why Ruby? Why Ruby?
Why Ruby?
 
Ruby Programming Language - Introduction
Ruby Programming Language - IntroductionRuby Programming Language - Introduction
Ruby Programming Language - Introduction
 
Pré Descobrimento Do Brasil
Pré Descobrimento Do BrasilPré Descobrimento Do Brasil
Pré Descobrimento Do Brasil
 
Elixir
ElixirElixir
Elixir
 
Ruby on Rails Training - Module 1
Ruby on Rails Training - Module 1Ruby on Rails Training - Module 1
Ruby on Rails Training - Module 1
 
IJTC%202009%20JRuby
IJTC%202009%20JRubyIJTC%202009%20JRuby
IJTC%202009%20JRuby
 
IJTC%202009%20JRuby
IJTC%202009%20JRubyIJTC%202009%20JRuby
IJTC%202009%20JRuby
 
Ruby
RubyRuby
Ruby
 
Fukuoka Ruby Award 2023 - Opal
Fukuoka Ruby Award 2023 - OpalFukuoka Ruby Award 2023 - Opal
Fukuoka Ruby Award 2023 - Opal
 
Ruby tutorial
Ruby tutorialRuby tutorial
Ruby tutorial
 
Code for Startup MVP (Ruby on Rails) Session 2
Code for Startup MVP (Ruby on Rails) Session 2Code for Startup MVP (Ruby on Rails) Session 2
Code for Startup MVP (Ruby on Rails) Session 2
 
ppt7
ppt7ppt7
ppt7
 
ppt2
ppt2ppt2
ppt2
 

More from Skroutz S.A.

Skroutz - Next Generation of IT Recruitment (Organized by Kariera.gr)
Skroutz - Next Generation of IT Recruitment (Organized by Kariera.gr)Skroutz - Next Generation of IT Recruitment (Organized by Kariera.gr)
Skroutz - Next Generation of IT Recruitment (Organized by Kariera.gr)Skroutz S.A.
 
Skroutz - How to build a strong employer brand? - Athens Startup Safary
Skroutz - How to build a strong employer brand? - Athens Startup SafarySkroutz - How to build a strong employer brand? - Athens Startup Safary
Skroutz - How to build a strong employer brand? - Athens Startup SafarySkroutz S.A.
 
Skroutz V. Dimos on "Designing Design @ Digitized 2016 Conference
Skroutz V. Dimos on "Designing Design @ Digitized 2016 ConferenceSkroutz V. Dimos on "Designing Design @ Digitized 2016 Conference
Skroutz V. Dimos on "Designing Design @ Digitized 2016 ConferenceSkroutz S.A.
 
Skroutz redesign - How to approach card-based design & SASS content - specifi...
Skroutz redesign - How to approach card-based design & SASS content - specifi...Skroutz redesign - How to approach card-based design & SASS content - specifi...
Skroutz redesign - How to approach card-based design & SASS content - specifi...Skroutz S.A.
 
E-shop Survival Kit in a Comparison Shopping Engine - 6+1 Dos & Dont's
E-shop Survival Kit in a Comparison Shopping Engine - 6+1 Dos & Dont'sE-shop Survival Kit in a Comparison Shopping Engine - 6+1 Dos & Dont's
E-shop Survival Kit in a Comparison Shopping Engine - 6+1 Dos & Dont'sSkroutz S.A.
 
Rails Engines - A presentation for the 22nd Athens Ruby Meetup
Rails Engines - A presentation for the 22nd Athens Ruby MeetupRails Engines - A presentation for the 22nd Athens Ruby Meetup
Rails Engines - A presentation for the 22nd Athens Ruby MeetupSkroutz S.A.
 
Karate - How we build things in Skroutz (Agile Summit '15)
Karate - How we build things in Skroutz (Agile Summit '15)Karate - How we build things in Skroutz (Agile Summit '15)
Karate - How we build things in Skroutz (Agile Summit '15)Skroutz S.A.
 
Skroutz - Why do customers abandon your e-shop? by V. Giannakouris @ E-busine...
Skroutz - Why do customers abandon your e-shop? by V. Giannakouris @ E-busine...Skroutz - Why do customers abandon your e-shop? by V. Giannakouris @ E-busine...
Skroutz - Why do customers abandon your e-shop? by V. Giannakouris @ E-busine...Skroutz S.A.
 

More from Skroutz S.A. (8)

Skroutz - Next Generation of IT Recruitment (Organized by Kariera.gr)
Skroutz - Next Generation of IT Recruitment (Organized by Kariera.gr)Skroutz - Next Generation of IT Recruitment (Organized by Kariera.gr)
Skroutz - Next Generation of IT Recruitment (Organized by Kariera.gr)
 
Skroutz - How to build a strong employer brand? - Athens Startup Safary
Skroutz - How to build a strong employer brand? - Athens Startup SafarySkroutz - How to build a strong employer brand? - Athens Startup Safary
Skroutz - How to build a strong employer brand? - Athens Startup Safary
 
Skroutz V. Dimos on "Designing Design @ Digitized 2016 Conference
Skroutz V. Dimos on "Designing Design @ Digitized 2016 ConferenceSkroutz V. Dimos on "Designing Design @ Digitized 2016 Conference
Skroutz V. Dimos on "Designing Design @ Digitized 2016 Conference
 
Skroutz redesign - How to approach card-based design & SASS content - specifi...
Skroutz redesign - How to approach card-based design & SASS content - specifi...Skroutz redesign - How to approach card-based design & SASS content - specifi...
Skroutz redesign - How to approach card-based design & SASS content - specifi...
 
E-shop Survival Kit in a Comparison Shopping Engine - 6+1 Dos & Dont's
E-shop Survival Kit in a Comparison Shopping Engine - 6+1 Dos & Dont'sE-shop Survival Kit in a Comparison Shopping Engine - 6+1 Dos & Dont's
E-shop Survival Kit in a Comparison Shopping Engine - 6+1 Dos & Dont's
 
Rails Engines - A presentation for the 22nd Athens Ruby Meetup
Rails Engines - A presentation for the 22nd Athens Ruby MeetupRails Engines - A presentation for the 22nd Athens Ruby Meetup
Rails Engines - A presentation for the 22nd Athens Ruby Meetup
 
Karate - How we build things in Skroutz (Agile Summit '15)
Karate - How we build things in Skroutz (Agile Summit '15)Karate - How we build things in Skroutz (Agile Summit '15)
Karate - How we build things in Skroutz (Agile Summit '15)
 
Skroutz - Why do customers abandon your e-shop? by V. Giannakouris @ E-busine...
Skroutz - Why do customers abandon your e-shop? by V. Giannakouris @ E-busine...Skroutz - Why do customers abandon your e-shop? by V. Giannakouris @ E-busine...
Skroutz - Why do customers abandon your e-shop? by V. Giannakouris @ E-busine...
 

Recently uploaded

✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663Call Girls Mumbai
 
Russian Call Girls Thane Swara 8617697112 Independent Escort Service Thane
Russian Call Girls Thane Swara 8617697112 Independent Escort Service ThaneRussian Call Girls Thane Swara 8617697112 Independent Escort Service Thane
Russian Call Girls Thane Swara 8617697112 Independent Escort Service ThaneCall girls in Ahmedabad High profile
 
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts servicevipmodelshub1
 
象限策略:Google Workspace 与 Microsoft 365 对业务的影响 .pdf
象限策略:Google Workspace 与 Microsoft 365 对业务的影响 .pdf象限策略:Google Workspace 与 Microsoft 365 对业务的影响 .pdf
象限策略:Google Workspace 与 Microsoft 365 对业务的影响 .pdfkeithzhangding
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Roomgirls4nights
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Roomdivyansh0kumar0
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGAPNIC
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirtrahman018755
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...SofiyaSharma5
 
Call Girls in East Of Kailash 9711199171 Delhi Enjoy Call Girls With Our Escorts
Call Girls in East Of Kailash 9711199171 Delhi Enjoy Call Girls With Our EscortsCall Girls in East Of Kailash 9711199171 Delhi Enjoy Call Girls With Our Escorts
Call Girls in East Of Kailash 9711199171 Delhi Enjoy Call Girls With Our Escortsindian call girls near you
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 

Recently uploaded (20)

✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
 
Russian Call Girls Thane Swara 8617697112 Independent Escort Service Thane
Russian Call Girls Thane Swara 8617697112 Independent Escort Service ThaneRussian Call Girls Thane Swara 8617697112 Independent Escort Service Thane
Russian Call Girls Thane Swara 8617697112 Independent Escort Service Thane
 
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
 
象限策略:Google Workspace 与 Microsoft 365 对业务的影响 .pdf
象限策略:Google Workspace 与 Microsoft 365 对业务的影响 .pdf象限策略:Google Workspace 与 Microsoft 365 对业务的影响 .pdf
象限策略:Google Workspace 与 Microsoft 365 对业务的影响 .pdf
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
 
Vip Call Girls Aerocity ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Aerocity ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Aerocity ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Aerocity ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOG
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girls
 
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
 
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
 
Call Girls in East Of Kailash 9711199171 Delhi Enjoy Call Girls With Our Escorts
Call Girls in East Of Kailash 9711199171 Delhi Enjoy Call Girls With Our EscortsCall Girls in East Of Kailash 9711199171 Delhi Enjoy Call Girls With Our Escorts
Call Girls in East Of Kailash 9711199171 Delhi Enjoy Call Girls With Our Escorts
 
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 

Let's talk about elixir - 26th Athens Ruby Meetup

  • 1. Let’s Talk About Dimitris Zorbas - Athens Ruby Meetup#26 github.com/zorbash @_zorbash
  • 2. is a functional, concurrent language designed for building scalable and maintainable applications. Dimitris Zorbas - Athens Ruby Meetup#26 The power of Erlang meets the joy of Ruby!
  • 3. Why Bother? ➔ Created by a rubyist aimed to rubyists ➔ Learn a new language every year ➔ Even Matz likes it! Dimitris Zorbas - Athens Ruby Meetup#26
  • 4. Really Why Bother? Seems to solve the core issues of Ruby (performance / scalability / maintainability), adopting a functional programming model, with a sweet Ruby-like syntax and cherries on top. Dimitris Zorbas - Athens Ruby Meetup#26
  • 5. Really Why Bother? Dimitris Zorbas - Athens Ruby Meetup#26
  • 6. Features Immutability Dimitris Zorbas - Athens Ruby Meetup#26 will_change = 42 answer = fn -> will_change end will_change = 1337 answer.() # => 42
  • 7. Features Pipelines Dimitris Zorbas - Athens Ruby Meetup#26 [42, nil, 1337, nil, 4] |> Enum.filter(&(&1)) |> Enum.map(&(&1 * 2)) |> Enum.sort |> Enum.join(", ") # => "84, 2674, 8"
  • 8. Features Pattern-Matching Dimitris Zorbas - Athens Ruby Meetup#26 Pattern matching is one of the cornerstones of an equational style of definition; more often than not it leads to a cleaner and more readily understandable definition than a style based on conditional equations. It also simplifies the process of reasoning formally about functions.
  • 9. Features Pattern-Matching Dimitris Zorbas - Athens Ruby Meetup#26 defmodule Speaker do def talk(:bob), do: "Hi, uncle Bob!" def talk(42), do: "Oh! the answer to life the universe and everything" def talk(n) when is_number(n), do: "You're an ordinary number" def talk(_), do: "I don't really know what to tell you" end
  • 10. Concurrency: Actor Model Features Dimitris Zorbas - Athens Ruby Meetup#26 Processes (actors) are the center of computation and have mailboxes. They communicate by sending asynchronous messages to each other.
  • 11. Concurrency: Actor Model Features Dimitris Zorbas - Athens Ruby Meetup#26 OOP to me means only messaging, local retention and protection and hiding of state-process and extreme late-binding of all things.
  • 12. Dimitris Zorbas - Athens Ruby Meetup#26 defmodule Speaker do import IO, only: [puts: 1] def new, do: spawn &start/0 def start do receive do {:answer, name} -> puts talk(name) _ -> puts "I don't know how to handle that" after 2000 -> puts "[#{inspect(self)}] Tell me something to do" end start end def talk(:bob), do: "Hi, uncle Bob!" def talk(42), do: "Oh! the answer to life the universe and everything" def talk(n) when is_number(n), do: "You're an ordinary number" def talk(_), do: "I don't really know what to tell you" end
  • 13. Features Async Tests defmodule SpeakerTest do use ExUnit.Case, async: true # Examples run concurrently test "talking to bob" do assert Speaker.talk(:bob) == "Hi, uncle Bob!" End test "talking to a stranger" do assert Speaker.talk(:voldemort) == "I don't really know what to tell you" end end Dimitris Zorbas - Athens Ruby Meetup#26
  • 14. Erlang Interoperability Features Dimitris Zorbas - Athens Ruby Meetup#26 Erlang / LFE (Lisp-Flavored-Erlang) / Elixir all run on BEAM OTP is directly available in Elixir
  • 15. Live Fast, Die Young Philosophy Dimitris Zorbas - Athens Ruby Meetup#26
  • 16. Live Fast, Die Young Philosophy Dimitris Zorbas - Athens Ruby Meetup#26 ● Failures are embraced and managed. Let it crash! ● Failure is isolated in process level. No exceptions. ● Failing fast is revealing. The system stays up. ● Write Offensive Code
  • 17. Live Fast, Die Young Philosophy Dimitris Zorbas - Athens Ruby Meetup#26 The world is concurrent. Things in the world don't share data. Things communicate with messages. Things fail.
  • 18. Resources Dimitris Zorbas - Athens Ruby Meetup#26 ● http://elixir-lang.org/getting-started/introduction.html ● http://elixirplayground.com/ ● https://elixir-lang.slack.com/
  • 19. you |> ask :questions |> Enum.any?