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
Erlang (GeekTalks)
Search
Oleg Zinchenko
October 08, 2015
Programming
0
69
Erlang (GeekTalks)
Erlang talk at GeekTalks event
https://www.facebook.com/events/924154260964782/
Oleg Zinchenko
October 08, 2015
Tweet
Share
More Decks by Oleg Zinchenko
See All by Oleg Zinchenko
ORO Meetup #4
cystbear
0
77
Keep It Simple Security (Symfony Cafe 28-01-2016)
cystbear
0
110
Clojure basics
cystbear
0
79
Welcome to Erlang
cystbear
0
81
Erlang/N2O KNPMeetup
cystbear
0
140
Symfony Best Practices and beyond
cystbear
1
200
DDD on example of Symfony (SymfonyCamp UA 2014)
cystbear
3
910
MongoDB KNPLabs GeekTime
cystbear
1
66
DDD in PHP, on example of Symfony
cystbear
10
4k
Other Decks in Programming
See All in Programming
プールにゆこう
irof
2
120
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
39
18k
スキーマ駆動開発による品質とスピードの両立 - 私達は何故、スキーマを書くのか
kentaroutakeda
0
120
コーンフレークから始める モデリング会話入門
ogurotakayuki
0
280
⼤規模⾔語モデルの拡張(RAG)が 終わったかも知れない件について
nearme_tech
22
15k
CA.swift19 恋するAIアプリ開発の裏側
oskmr
0
340
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
430
App Router への移行は「改善」となり得るのか?/ Can migration to App Router be an improvement
takefumiyoshii
8
2.1k
0→1と1→10の狭間で Javaという技術選定を振り返る/Reflecting on the Decision to Choose Java Between Scaling from 0 to 1 and 1 to 10
jaguar_imo
2
370
元気予報
suu_mire0726
0
860
TYPO3 v13 – The road to LTS: What's new and new APIs
luisasofie_xoxo
0
180
"config" ってなんだ? / What is "config"?
okashoi
0
220
Featured
See All Featured
Teambox: Starting and Learning
jrom
128
8.4k
Six Lessons from altMBA
skipperchong
20
3k
What's in a price? How to price your products and services
michaelherold
237
11k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Into the Great Unknown - MozCon
thekraken
10
980
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
60
14k
jQuery: Nuts, Bolts and Bling
dougneiner
59
7.1k
A Philosophy of Restraint
colly
196
16k
The Mythical Team-Month
searls
215
42k
The Cult of Friendly URLs
andyhume
74
5.7k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
19
1.9k
Transcript
None
Welcome to Erlang
cystbear Erlanger Symfony expert MongoDB adept OSS doer https://twitter.com/1cdecoder https://github.com/cystbear
http://trinity.ck.ua/
None
HOTCODE 2013 https://twitter.com/5ht https://synrc.com/ Maxim Sokhatskiy
Time to change something
History
History https://www.youtube.com/watch?
Specific use cases Non OOP paradigm Naive syntax No so
big community Lack of libs Pros / Cons https://www.erlang-solutions.com/ https://synrc.com/ https://github.com/tapsters https://github.com/erlangbureau
Low level thinking! Functional Fast Robust Expressive syntax Endless running
apps Update code on a fly Own Scheduler Processes based architecture Supervisor tree No shared memory Pros / Cons
Hey, did you heard about FP?
High order functions Lambda functions Separation data and functions Immutable
Lazy Tail recursion Algebraic data types Pattern matching Functional https://twitter.com/nikitonsky http://tonsky.me/talks/2015-frontendconf/ http://tonsky.me/talks/2015-codefest/
Performance http://slides.com/maximsokhatsky/n2o
Scheduler http://habrahabr.ru/post/128772/ http://habrahabr.ru/post/260065/
Basics Integer 42 Float 4.2 aka double Atom ok Binary
<<"Erlang-powa">> Reference #Ref<0.0.0.29> Pid <0.0.42> Port #Port<0.42> Fun #Fun<erl_eval.6.82930912>
Basics2 List [<<42,1,0,90>>, 1, ok] Tuple {<0.0.16>, 107, 42, ["madness",
true]} we can force lists type and typify turples named tuples =:= records
Example -module(fib). -export([fib/1]). fib(0) -> 0; fib(1) -> 1; fib(N)
-> fib(N - 1) + fib(N - 2).
Example -module(fib). -export([fib/1]). fib(N) when N > 0 -> fib(N,
1, 0, 1). fib(1, _, _, _) -> 1; fib(2, _, _, _) -> 1; fib(N, N, _, Prev) -> Prev; fib(N, C, Prev2, Prev) -> fib(N, C+1, Prev, Prev2+Prev).
Example QuickSort qsort([]) -> []; qsort([X|Xs]) -> qsort([Y || Y<-Xs,
Y <= X]) ++ [X] ++ qsort([Y || Y<-Xs, Y > X]).
Application Examples Web Sites Rest Services Video Streaming Chats RabbitMQ
Riak, CouchDB, Hibari, KAI, LeoFS, Mnesia ejabberd Cowboy Wings 3D PrivatBank Github Pages / Gist
Companies
Future
Cherkassy –> fprog https://www.facebook.com/groups/Cherkassy.fprog/
None