0
ERLANG
SILICON VALLEY
MEETUP
April 14, 2014
AGENDA
6:30 - Doors open
6:45 - Introduction / Announcements
7:00 - Why Erlang?
7:45 - Meetup Organization
8:15 - Erlang I...
INTRODUCTION
AND
ANNOUNCEMENTS
DOUG GOLDIE
Freelance developer, architect, consultant
Ruby, Rails stack
Boatbound, V.me at Visa, Paynearme
doug@codecauld...
WHY ERLANG?
by Doug Goldie
WHATSAPP
• 465M monthly users
• 19B messages in & 40B out per day
• Small team (~10 on Erlang),
handle development and ops...
A YEAR AGO…
• I took the summer off….
• “Why Erlang?”
• Challenges of SOA
• Curious about Erlang.
• Learn a functional lan...
ERICSSON
TELECOM NEEDED
• Concurrency
• Distribution
• Fault Tolerance
• Soft real-time
• Hot code upgrade
• Incremental code loadi...
ERLANG
CONCURRENCY
• Isolated processes
• Asynchronous messaging passing
• Actor model
Distributed
FAULT TOLERANCE
Reliability
Redundancy
Nine nines 99.9999999%
SOFT REAL-TIME
Deadlines
Soft allows some slip
SOFT REAL-TIME
Lightweight processes.
Garbage collection
HOT
CODE
UPGRAD
E
INCREMENTAL CODE LOADING
EXTERNAL INTERFACES
–Robert Virding, OTP class, 2014
“It’s about building Systems.”
ERLANG LANGUAGE
FUNCTIONAL
fac(N) when N == 0 -> 1;
fac(N) when N > 0 -> N*fac(N-1).
Recursion
double([H|T]) -> [2*H|double(T)];
double([]...
MODULES, ETC.
• Modules
• Behaviours
ERLANG/OTP
OTP• Library of Design
Patterns
• Supervision Tree
• Workers and
supervisors
• Behaviours
CLIENT SERVER
gen_server
FINITE STATE MACHINE
gen_fsm
ELIXIR
• Jose Valim
• Light layer of syntactic sugar
• Pipes
• Macros
THE WEB
THE WEB
• Concurrent
• Soft real-time
• Asynchronous
• Omnipresent
• Internet of Things
REFERENCES
• Erlang and the Web
http://ninenines.eu/docs/en/cowboy/HEAD/guide/erlang_web/
• Concurrency Oriented Programmi...
DOUG GOLDIE
doug@codecauldron.com
Why erlang
Why erlang
Why erlang
Why erlang
Why erlang
Why erlang
Upcoming SlideShare
Loading in...5
×

Why erlang

303

Published on

First Erlang Silicon Valley meetup. Discussing Why we should learn and use Erlang.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
303
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
12
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Why erlang"

  1. 1. ERLANG SILICON VALLEY MEETUP April 14, 2014
  2. 2. AGENDA 6:30 - Doors open 6:45 - Introduction / Announcements 7:00 - Why Erlang? 7:45 - Meetup Organization 8:15 - Erlang Intro 9:00 - Doors close
  3. 3. INTRODUCTION AND ANNOUNCEMENTS
  4. 4. DOUG GOLDIE Freelance developer, architect, consultant Ruby, Rails stack Boatbound, V.me at Visa, Paynearme doug@codecauldron.com
  5. 5. WHY ERLANG? by Doug Goldie
  6. 6. WHATSAPP • 465M monthly users • 19B messages in & 40B out per day • Small team (~10 on Erlang), handle development and ops • ~ 550 servers + standby gear • > 11,000 cores
  7. 7. A YEAR AGO… • I took the summer off…. • “Why Erlang?” • Challenges of SOA • Curious about Erlang. • Learn a functional language again.
  8. 8. ERICSSON
  9. 9. TELECOM NEEDED • Concurrency • Distribution • Fault Tolerance • Soft real-time • Hot code upgrade • Incremental code loading • External interfaces
  10. 10. ERLANG
  11. 11. CONCURRENCY • Isolated processes • Asynchronous messaging passing • Actor model
  12. 12. Distributed
  13. 13. FAULT TOLERANCE Reliability Redundancy Nine nines 99.9999999%
  14. 14. SOFT REAL-TIME
  15. 15. Deadlines Soft allows some slip SOFT REAL-TIME Lightweight processes. Garbage collection
  16. 16. HOT CODE UPGRAD E
  17. 17. INCREMENTAL CODE LOADING
  18. 18. EXTERNAL INTERFACES
  19. 19. –Robert Virding, OTP class, 2014 “It’s about building Systems.”
  20. 20. ERLANG LANGUAGE
  21. 21. FUNCTIONAL fac(N) when N == 0 -> 1; fac(N) when N > 0 -> N*fac(N-1). Recursion double([H|T]) -> [2*H|double(T)]; double([]) -> []. Pattern matching
  22. 22. MODULES, ETC. • Modules • Behaviours
  23. 23. ERLANG/OTP
  24. 24. OTP• Library of Design Patterns • Supervision Tree • Workers and supervisors • Behaviours
  25. 25. CLIENT SERVER gen_server
  26. 26. FINITE STATE MACHINE gen_fsm
  27. 27. ELIXIR • Jose Valim • Light layer of syntactic sugar • Pipes • Macros
  28. 28. THE WEB
  29. 29. THE WEB • Concurrent • Soft real-time • Asynchronous • Omnipresent • Internet of Things
  30. 30. REFERENCES • Erlang and the Web http://ninenines.eu/docs/en/cowboy/HEAD/guide/erlang_web/ • Concurrency Oriented Programming in Erlang http://www.guug.de/veranstaltungen/ffg2003/papers/ffg2003-armstrong.pdf • Why OO Sucks http://www.sics.se/~joe/bluetail/vol1/v1_oo.html • Erlang Central https://erlangcentral.org/ • Erlang History http://www.erlang.org/faq/academic.html • WhatsApp presentation http://www.erlang-factory.com/conference/show/conference-6/home/#rick-reed
  31. 31. DOUG GOLDIE doug@codecauldron.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×