Elixir's Object
Oriented Layer
Paolo Montrasio
paolo.montrasio@connettiva.eu
https://github.com/pmontrasio/elixir-oo
OOP to me means only messaging, local retention and protection and
hiding of state-process, and extreme late-binding of all things. It can be
done in Smalltalk and in LISP.
Alan Kay, one of fathers of object oriented programming
http://www.purl.org/stefan_ram/pub/doc_kay_oop_en
I might think, though I'm not quite sure if I believe this or not, but Erlang
might be the only object oriented language because the 3 tenets of object
oriented programming are that it's based on message passing, that you
have isolation between objects and have polymorphism.
Joe Armstrong, creator of Erlang, http://www.infoq.com/interviews/johnson-armstrong-oop
Elixir's Object Oriented Layer
Elixir's Object Oriented Layer
OO – Process Equivalence
Elixir's Object Oriented Layer
Elixir's Object Oriented Layer
Code running in the
client process
Code running in the
server process
__MODULE__ for easier refactoring
It returns {:ok, pid}
__MODULE__ for easier refactoring
It returns {:ok, pid}
cast: async message sending
__MODULE__ for easier refactoring
It returns {:ok, pid}
cast: async message sending
call: sync message sending
__MODULE__ for easier refactoring
It returns {:ok, pid}
cast: async message sending
call: sync message sending
Implementation, callback of Genserver.cast
:noreply, new state
__MODULE__ for easier refactoring
It returns {:ok, pid}
cast: async message sending
call: sync message sending
Implementation, callback of Genserver.cast
:noreply, new state
Implementation, callback of Genserver.call
:reply, return value, new state
More clutter,
especially in the client
Elixir's Object Oriented Layer
Elixir's Object Oriented Layer
Elixir's Object Oriented Layer
Paolo Montrasio
paolo.montrasio@connettiva.eu
https://github.com/pmontrasio/elixir-oo
GenServer documentation
http://elixir-lang.org/docs/stable/elixir/GenServer.html
GenServer implementation
https://github.com/elixir-lang/elixir/blob/v1.2/lib/elixir/lib/gen_server.ex

More Related Content

PDF
Mastering Perl
PDF
Elixir紹介
DOCX
Assighment interview
PPTX
Perbandingan citra
DOCX
The Children Ran to See
PDF
Adulthood and ageing
PDF
CaseSales: практика внешней валидизации методики
PDF
NANOPROTECH Presentation eng
Mastering Perl
Elixir紹介
Assighment interview
Perbandingan citra
The Children Ran to See
Adulthood and ageing
CaseSales: практика внешней валидизации методики
NANOPROTECH Presentation eng

Viewers also liked (20)

DOCX
That's When it Happened
PDF
Quiet, god
PDF
Trabajo extraclase pimientos
PPT
Lec 02 (constant acc 051)
PDF
Презентация Лаборатории "Гуманитарные Технологии"
PDF
Cara Mengetahui Ukuran Sepatu Bola yang Pas bagi Anda
PDF
Квалификационный тест: хороший, плохой, злой
PPTX
Anxiety disorder (abnormal psychology)
PPTX
Для выступления на съезде психологов Пенсионного фонда РФ
PDF
Phoenix per principianti
PPTX
(Group5)3 d printing
PDF
Analisis fourier 2014
PPT
тмт нийлмэл тогтолцоо
PDF
Asking “What?”, Automating the “How?”: The Vision of Declarative Performan...
ODP
API less
PDF
Medicamentos embarazo
ODP
Chatbots e dati sensibili
PPTX
ОАО "РЖД": комплексная методика оценки руководителей структурных подразделений
PPTX
programe planning
That's When it Happened
Quiet, god
Trabajo extraclase pimientos
Lec 02 (constant acc 051)
Презентация Лаборатории "Гуманитарные Технологии"
Cara Mengetahui Ukuran Sepatu Bola yang Pas bagi Anda
Квалификационный тест: хороший, плохой, злой
Anxiety disorder (abnormal psychology)
Для выступления на съезде психологов Пенсионного фонда РФ
Phoenix per principianti
(Group5)3 d printing
Analisis fourier 2014
тмт нийлмэл тогтолцоо
Asking “What?”, Automating the “How?”: The Vision of Declarative Performan...
API less
Medicamentos embarazo
Chatbots e dati sensibili
ОАО "РЖД": комплексная методика оценки руководителей структурных подразделений
programe planning
Ad

Similar to Elixir's Object Oriented Layer (20)

PPT
Oops in PHP By Nyros Developer
PPTX
Java ppt.pptxkkkkkkkkkkkkkkkkkkkkkkkkkkk
PDF
BEAM in Action: Scrivere una web application con Elixir - Gabriele Santomaggi...
PDF
Evolution Of Object Oriented Technology
PDF
Logic Progamming in Perl
PPT
Oops And C++ Fundamentals
PPTX
Logging with Monolog
DOCX
Java OOPs Concepts.docx
PPTX
NAOqi framework
PDF
Using at least two examples (whenever applicable), concisely discuss .pdf
PPTX
java oops and java very important for .pptx
PPTX
java oops compilation object class inheritance.pptx
PDF
Introduction to Clojure
PPTX
object oriented programming(oops)
ODT
Object Oriented Approach Within Siebel Boundaries
PDF
Functional programming in Python 1st Edition David Mertz
PDF
A Strong Object Recognition Using Lbp, Ltp And Rlbp
PPTX
INTRODUCTION TO JAVA
PDF
Functional programming in Python 1st Edition David Mertz
PPTX
Object Oriented programming - Introduction
Oops in PHP By Nyros Developer
Java ppt.pptxkkkkkkkkkkkkkkkkkkkkkkkkkkk
BEAM in Action: Scrivere una web application con Elixir - Gabriele Santomaggi...
Evolution Of Object Oriented Technology
Logic Progamming in Perl
Oops And C++ Fundamentals
Logging with Monolog
Java OOPs Concepts.docx
NAOqi framework
Using at least two examples (whenever applicable), concisely discuss .pdf
java oops and java very important for .pptx
java oops compilation object class inheritance.pptx
Introduction to Clojure
object oriented programming(oops)
Object Oriented Approach Within Siebel Boundaries
Functional programming in Python 1st Edition David Mertz
A Strong Object Recognition Using Lbp, Ltp And Rlbp
INTRODUCTION TO JAVA
Functional programming in Python 1st Edition David Mertz
Object Oriented programming - Introduction
Ad

More from Paolo Montrasio (20)

PPTX
Sviluppare agenti conversazionali con Rasa
PDF
Il Chatbot come guida di viaggio: Travelchat
PDF
Costruire chatbot conversazionali ed intelligenti con Xenioo
PDF
Diving deep into NLP
PPTX
Voicebot: i Chatbot crescono e imparano a parlare
PPT
IBM Watson, un caso reale
PPTX
Gardy, un chatbot multilingua
PPTX
Il più intelligente Chatbot Bancario in Italia!
PDF
Chatbot, a chi proporli e come ... scegli il giusto target
PDF
Cicerus - una piattaforma per lo sviluppo di chatbot
PDF
Esplorando Google Assistant e Dialogflow
PDF
Hubot + wit.ai, un chatbot aziendale per Slack
PDF
Making Chatbots
PPTX
L'AI per Sales & Marketing B2B
PDF
Chatbot per i musei
PDF
Innovazione digitale e i chatbot 2017
PDF
Trovare clienti con un chatbot
PDF
Innovare la relazione con i clienti nel retail
PDF
Moose.ai: migliorare la customer experience delle banche con un chatbot B2C &...
PDF
Serverless chatbot: from idea to production at blazing speed
Sviluppare agenti conversazionali con Rasa
Il Chatbot come guida di viaggio: Travelchat
Costruire chatbot conversazionali ed intelligenti con Xenioo
Diving deep into NLP
Voicebot: i Chatbot crescono e imparano a parlare
IBM Watson, un caso reale
Gardy, un chatbot multilingua
Il più intelligente Chatbot Bancario in Italia!
Chatbot, a chi proporli e come ... scegli il giusto target
Cicerus - una piattaforma per lo sviluppo di chatbot
Esplorando Google Assistant e Dialogflow
Hubot + wit.ai, un chatbot aziendale per Slack
Making Chatbots
L'AI per Sales & Marketing B2B
Chatbot per i musei
Innovazione digitale e i chatbot 2017
Trovare clienti con un chatbot
Innovare la relazione con i clienti nel retail
Moose.ai: migliorare la customer experience delle banche con un chatbot B2C &...
Serverless chatbot: from idea to production at blazing speed

Recently uploaded (20)

PPTX
CNN LeNet5 Architecture: Neural Networks
PPTX
Cybersecurity-and-Fraud-Protecting-Your-Digital-Life.pptx
PDF
CCleaner 6.39.11548 Crack 2025 License Key
PDF
How Tridens DevSecOps Ensures Compliance, Security, and Agility
PDF
AI Guide for Business Growth - Arna Softech
PDF
DNT Brochure 2025 – ISV Solutions @ D365
DOCX
Modern SharePoint Intranet Templates That Boost Employee Engagement in 2025.docx
PPTX
Full-Stack Developer Courses That Actually Land You Jobs
PDF
iTop VPN Crack Latest Version Full Key 2025
PDF
Autodesk AutoCAD Crack Free Download 2025
PPTX
Tech Workshop Escape Room Tech Workshop
PPTX
"Secure File Sharing Solutions on AWS".pptx
PPTX
Download Adobe Photoshop Crack 2025 Free
PDF
Wondershare Recoverit Full Crack New Version (Latest 2025)
PDF
Multiverse AI Review 2025: Access All TOP AI Model-Versions!
PPTX
Trending Python Topics for Data Visualization in 2025
PDF
EaseUS PDF Editor Pro 6.2.0.2 Crack with License Key 2025
PPTX
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
PDF
Salesforce Agentforce AI Implementation.pdf
PDF
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
CNN LeNet5 Architecture: Neural Networks
Cybersecurity-and-Fraud-Protecting-Your-Digital-Life.pptx
CCleaner 6.39.11548 Crack 2025 License Key
How Tridens DevSecOps Ensures Compliance, Security, and Agility
AI Guide for Business Growth - Arna Softech
DNT Brochure 2025 – ISV Solutions @ D365
Modern SharePoint Intranet Templates That Boost Employee Engagement in 2025.docx
Full-Stack Developer Courses That Actually Land You Jobs
iTop VPN Crack Latest Version Full Key 2025
Autodesk AutoCAD Crack Free Download 2025
Tech Workshop Escape Room Tech Workshop
"Secure File Sharing Solutions on AWS".pptx
Download Adobe Photoshop Crack 2025 Free
Wondershare Recoverit Full Crack New Version (Latest 2025)
Multiverse AI Review 2025: Access All TOP AI Model-Versions!
Trending Python Topics for Data Visualization in 2025
EaseUS PDF Editor Pro 6.2.0.2 Crack with License Key 2025
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
Salesforce Agentforce AI Implementation.pdf
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...

Elixir's Object Oriented Layer

  • 1. Elixir's Object Oriented Layer Paolo Montrasio paolo.montrasio@connettiva.eu https://github.com/pmontrasio/elixir-oo
  • 2. OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP. Alan Kay, one of fathers of object oriented programming http://www.purl.org/stefan_ram/pub/doc_kay_oop_en I might think, though I'm not quite sure if I believe this or not, but Erlang might be the only object oriented language because the 3 tenets of object oriented programming are that it's based on message passing, that you have isolation between objects and have polymorphism. Joe Armstrong, creator of Erlang, http://www.infoq.com/interviews/johnson-armstrong-oop
  • 5. OO – Process Equivalence
  • 8. Code running in the client process Code running in the server process
  • 9. __MODULE__ for easier refactoring It returns {:ok, pid}
  • 10. __MODULE__ for easier refactoring It returns {:ok, pid} cast: async message sending
  • 11. __MODULE__ for easier refactoring It returns {:ok, pid} cast: async message sending call: sync message sending
  • 12. __MODULE__ for easier refactoring It returns {:ok, pid} cast: async message sending call: sync message sending Implementation, callback of Genserver.cast :noreply, new state
  • 13. __MODULE__ for easier refactoring It returns {:ok, pid} cast: async message sending call: sync message sending Implementation, callback of Genserver.cast :noreply, new state Implementation, callback of Genserver.call :reply, return value, new state
  • 17. Elixir's Object Oriented Layer Paolo Montrasio paolo.montrasio@connettiva.eu https://github.com/pmontrasio/elixir-oo GenServer documentation http://elixir-lang.org/docs/stable/elixir/GenServer.html GenServer implementation https://github.com/elixir-lang/elixir/blob/v1.2/lib/elixir/lib/gen_server.ex