Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Elixir Introduction
Search
Dimitar Kostov
April 05, 2016
Programming
0
36
Elixir Introduction
Dimitar Kostov
April 05, 2016
Tweet
Share
Other Decks in Programming
See All in Programming
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
150
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.3k
Developing static sites with Ruby
okuramasafumi
0
320
Combinatorial Interview Problems with Backtracking Solutions - From Imperative Procedural Programming to Declarative Functional Programming - Part 2
philipschwarz
PRO
0
110
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
200
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
610
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
160
gunshi
kazupon
1
110
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
39
26k
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
440
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
130
GISエンジニアから見たLINKSデータ
nokonoko1203
0
180
Featured
See All Featured
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
31
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
110
More Than Pixels: Becoming A User Experience Designer
marktimemedia
2
250
Accessibility Awareness
sabderemane
0
22
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
We Have a Design System, Now What?
morganepeng
54
7.9k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
87
The SEO identity crisis: Don't let AI make you average
varn
0
32
Building Flexible Design Systems
yeseniaperezcruz
330
39k
Optimizing for Happiness
mojombo
379
70k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
Transcript
elixir
What is elixir ? + =
Agenda 1. History 2. Features 3. Tools 4. Frameworks and
libraries 5. Resources
Erlang • created in 1986 by Ericsson • open sourced
in 1998 • based on Prolog • battle tested
Erlang VM features • massively concurrent • fault tolerant –
“Let it crash” philosophy • distributed • hot code swapping • soft real time • garbage collected
Who uses Erlang ? • Ericsson • Amazon • Facebook
• Goldman Sachs • Whatsapp
Elixir history • created in 2012 • created by Jose
Valim
Who uses elixir ? • BT • Pinterest • Puppet
Labs • Lexmark • ThoughtBot • BrightCove
Elixir in a nutshell • functional • concurrent • syntax
inspired by Ruby and Clojure • meta programming • macros • protocols
Elixir in a nutshell • UTF-8 binaries strings • first
class documentation • first class regular expressions • pattern matching
Basic types • integer / float • boolean • atom
• string • list • tuple
Higher-level Types • Map • Keyword List • HashDict •
HashSet • Range • IO List
Map
Range
Modules
Functions
Functions
Pipe operator
Pipe operator
Control Flow • pattern matching • conditionals • loops
Pattern matching
Pattern matching
Pattern matching
Guards
Classical branching • if/else and unless/else • cond • case
• loops through recursion
Higher-order functions • Enum module • each • map •
reduce • filter • etc
Comprehensions
Structs
Protocols
Concurrency • Actor model based (CSP) • Lightweight processes •
Links • Tasks • Agents • OTP
Concurrency
Concurrency
OTP
Fault tolerance
Frameworks and libs • ExUnit and ExDoc/Test • Phonenix •
Ecto • Cowboy • OTP / ETS • Mnesia
Tools • iex • exdoc • mix • hex •
dialyzer • exrm
Resources • http://elixir-lang.org • http://hex.pm • http://phoenixframework.org
Resources • Programming Elixir • Elixir in Action • Introducing
Elixir • The Little Elixir and OTP Guidebook • Etudes for Elixir • Metaprogramming Elixir • Programming Phoenix
Resources • Elixir Sips • LearnElixir.tv • Elixir School
Demo • Phoenix App • :observer.start • exdoc
Thanks
None