The Developers Conference - São Paulo 2016
Talk: Erlang sem enrolação!
O que faz o Whatsapp ter 2 milhões de conexões abertas em uma única máquina? Ou o Call of Duty ter 50k/s de requisições? Nesta talk mostrarei uma introdução avançada à linguagem Erlang falando, sem enrolação, sobre os primeiros passos para lidar com a linguagem ressaltando as suas principais características funcionais e também um pouco sobre a OTP.
What does WhatsApp have 2 million open connections on a single machine? Or Call of Duty have 50k/s requests? This talk will show an advanced introduction to Erlang speaking without stalling on the first steps to deal with the language emphasizing its main functional features and also a little about the OTP.
Exemplo / Example:
https://gist.github.com/fmamud/ae4b7ad572abcac2fc3e6d3ca670f6a6
3. Erlang and OTP in Action (LOGAN, 2011; MERRIT, 2011; CARLSSON, 2011)
“Functional programming and the mindset that it
teaches you are a natural match to the problems
encountered in concurrent and distributed
programming [...]”
4. Ericsson language
● telephony switches problem
● 1986; 30 years ago
● dynamic; strong typing; funcional; fault-
tolerant;
● lightweight processes
● message passing concurrent paradigm
Agner Krarup Erlang was a Danish
mathematician, statistician and
engineer.
5. Erlang’s world set of Erlang libraries and
design principles providing
middle-ware to develop
these systems. It includes
its own distributed
database, applications to
interface towards other
languages, debugging and
release handling tools.
OTP
virtual machine where all
Erlang code is executed
aka emulator
.beam files
BEAM
Erlang Runtime System
where the BEAM, kernel
and standard libraries
amongst others are
included
ERTS
programming language
dynamic & strong typing
funcional & fault-tolerant
lightweight processes
message passing
concurrent paradigm
ERLANG
8. Polemical stuffs
● The Prolog syntax based dillemma;
● There are not unique statement terminators; instead it
there is Period (.), Semicolon (;), colon (,);
● There is no if… then… else… statement;
● String == List of Integers;
● Records are a compile time feature.
10. Another flavors
LFE - Lisp Flavored Erlang
● functional, concurrent, general-purpose
programming language
● Lisp dialect
http://lfe.io
11. Another flavors
● A dynamic programming language that compiles to
bytecode for the Erlang VM;
● syntax improvement (Ruby & Python based);
● improvement on current tools;
● metaprogramming;
● method dispatch;
● protocols;
http://elixir-lang.org
12. References
● Erlang Official Website.
http://www.erlang.org/
● Learn You Some Erlang for great good. (Read it online)
http://learnyousomeerlang.com
● Erlang and OTP in Action. (Maning - 2011)
https://www.manning.com/books/erlang-and-otp-in-action