Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
マンガアプリViewerの大画面対応を考える
kk__777
0
440
CSC305 Lecture 11
javiergs
PRO
0
320
AI時代に必須!状況言語化スキル / ai-context-verbalization
minodriven
2
270
contribution to astral-sh/uv
shunsock
0
570
EMこそClaude Codeでコード調査しよう
shibayu36
0
520
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
650
Register is more than clipboard
satorunooshie
1
240
GitHub Copilotを使いこなせ!/mastering_github_copilot!
kotakageyama
2
480
alien-signals と自作 OSS で実現する フレームワーク非依存な ロジック共通化の探求 / Exploring Framework-Agnostic Logic Sharing with alien-signals and Custom OSS
aoseyuu
3
5.2k
AsyncSequenceとAsyncStreamのプロポーザルを全部読む!!
s_shimotori
1
220
ドメイン駆動設計のエッセンス
masuda220
PRO
15
7.1k
AIと人間の共創開発!OSSで試行錯誤した開発スタイル
mae616
2
850
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
Writing Fast Ruby
sferik
630
62k
Designing for humans not robots
tammielis
254
26k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
A better future with KSS
kneath
239
18k
Building an army of robots
kneath
306
46k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
BBQ
matthewcrist
89
9.9k
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