SlideShare a Scribd company logo
ERLANG
Operating Systems
PST22211- 2020
Dilshan Chathuranga
Hashani Sandunika
Ishan Suranga
Maduka Shashikani
Minoli Sachinthana
Osuri Dishmini
Pinindu Chethiya
Sandunika Hashani
Thisaru Dhanushika
Yalini Pushpakanthan
01
History01
Facts02
Syntax03
Uses04
Agenda
Style
05 Pros & Cons
02
In a nutshell, what is Erlang?
Erlang is a general-purpose programming language and runtime
environment. Erlang has built-in support for concurrency,
distribution and fault tolerance. Erlang is used in several large
telecommunication systems from Ericsson. Erlang is available
as open source from http://www.erlang.org.
03
The Founder
Along with Robert Virding and Mike
Williams in 1986, Armstrong develo
ped Erlang, which was released as o
pen source in 1998.
Joseph Leslie Armstrong (27
December 1950 – 20 April 2019)
was a computer scientist working
in the area of fault – tolerant
distributed systems. He is best
known as one of the co-designers
of the Erlang programming
language.
Joe
Armstrong
04
What is it ??
-----------------------------------------------------
• Erlang was designed with the aim of
improving the development of
telephony applications.
------------------------------------------------------
• The initial version of Erlang was
implemented in Prolog and was
influenced by the programming
language PLEX used in earlier
Ericsson exchanges.
------------------------------------------------------
• In 1992, work began on
the BEAM virtual machine (VM) which
compiles Erlang to C using a mix of
natively compiled code and threaded
code to strike a balance between
performance and disk space.
------------------------------------------------------
• According to Armstrong, the language
went from lab product to real
applications following the collapse of
the next-generation AXE
telephone named AXE-N in 1995.
The name Erlang,
attributed to Bjarne
Däcker, has been
presumed by those
working on the
telephony switches
(for whom the
language was
designed) to be a
reference to Danish
mathematician and
engineer Agner
Krarup Erlang and
a syllabic
abbreviation of
"Ericsson
Language".
05
• As a result, Erlang was chosen for the next
Asynchronous transfer mode (ATM)
exchange AXD.
• In 1998 Ericsson announced the AXD301
switch, containing over a million lines of
Erlang and reported to achieve a high
availability of nine “9” s.
• Shortly thereafter, Ericsson Radio Systems
banned the in-house use of Erlang for new
products, citing a preference for non-
proprietary languages. The ban caused
Armstrong and others to leave Ericsson.
• The implementation was open-sourced at the
end of the year. Ericsson eventually lifted the
ban and re-hired Armstrong in 2004.
• In 2006, native symmetric multiprocessing
support was added to the runtime system and
VM.
06
Timeline of Erlang
Ericsson CS
Lab formed
1984 1987 1991 1993 1994 1996
First fast
Implementation
First Product
Early Erlang
Prototype
Distributed
Erlang
Open telecom
platform
1998
Become open
Source
Future
07
#Facts
Contents Title
• In 2014, Ericsson reported Erlang was being used in
• its support nodes, and in GPRS ,3G and LTE mobile
networks worldwide and also by Nortel and T-Mobile.
• As Tim Bray, director of Web Technologies at Sun
Microsystems, expressed in his keynote at O’Reilly Open
Source Convention (OSCON) in July 2008:
• If somebody came to me and wanted to pay me a lot of money
to build a large scale message handling system that really had
to be up all the time, could never afford to go down for years at
a time, I would unhesitatingly choose Erlang to build it in.
• Erlang is the programming language used to code Whatsapp.
Contents Title Contents Title
08
Erlang Features
• Concurrency
• Fault tolerance
• Soft – Real time
• Distribution
• Hot code loading
• External Interfaces
• Platform Independent
09
Data Types
• Numbers: Integers and floats
• Atoms – similar to constants
(true and false are atoms)
• Funs – anonymous functions
• Sum = fun(X,Y) -> X+Y end.
• Sum(5,5)
• Tuples – Fixed amount of data.
Any item can be accessed in
constant time
• Lists – Group of data types;
varying amount. First item can
be accessed in constant time,
while other elements can be
accessed in O(n) time.
• Records – similar to structs in c
10
Syntax
11
Syntax
Hello World
You can simply impress your audience and add
a unique zing and appeal to your Presentations.
Content
Here
12
Recursive
Functions
-module(recursive).
-export([fact/1, qsort/1]).
fact(1) -> 1;
fact(N) -> N * fact(N - 1).
qsort([]) -> [];
qsort([H | T]) ->
qsort([X || X <- T, X < H])
++ [H] ++
qsort([X || X <- T, X >= H]).
• Recursive.erl
• Compile/Run
13
Guarded Commands
• Compare.erl
-module(guarded).
-export([gt/2]).
greaterThan(N, M) ->
if N > M -> true;
N < M -> false;
true -> equal
end.
while(N) when N == 5 ->
io:fwrite("~n~B ",[N]), while(N-
1);
while(N) when N > 0 ->
io:fwrite("~B ",[N]), while(N-1);
while(_) when true ->
done.
• Compile/Run
14
Who use Erlang
146 companies reportedly use Erlang in their tech stacks, including WhatsApp, Heroku, and thoughtbot.
15
Erlang Integrations
Rollbar, Google Code Prettify, Airbrake, Tile38, and Leptus are some of the popular tools that
integrate with Erlang. Here's a list of all 7 tools that integrate with Erlang.
16
Pros
&
Cons
Pros
• Simplicity
this is one of the most valuable characteristics of a language.it has a very
small set of syntactic primitives that can use. Even the concurrent aspect of
the language is done using just plain functions (with the exception of
the receive primitive).
Erlang's simplicity also makes it very understandable and fun to work
with.
• Managing Concurrency & Failure
Erlang concurrent programs can be built, scaled and distributed with
ease. Once you have the deployment and integration set up, scaling
Erlang nodes and spawning new Erlang processes on different
machines becomes easy. Erlang standard library provides easy-to-
use functions for this very purpose, so reaching parallelism is not only
cheap in terms of implementation but also elegant.
17
• When it comes to program failures Erlang also has your back. When spawning new
processes you are guaranteed to be notified about it to all the monitors and links
that were established. This allows to re-spawn any failed process automatically,
which is already part of the OTP standard library and the default way for structuring
Erlang applications.
Mature community
• One of the most important aspects to consider when trying to predict a technology's
future is to check the what kind of community that technology is being supported
and used by. We've all seen good technologies that end up being destroyed with
useless and buggy features; this is usually what a toxic community does.
• Erlang's community is small, mature and simplicity-driven, which protects it from
being destroyed. This is why Erlang benefits and robustness has lasted this long.
18
Pros
&
Cons
Cons
Setup
Setting up, provisioning and deploying Erlang applications can be hard
to understand and cumbersome. This is due to many reasons, one of the
most important ones being the lack of a proper and unique package
manager.
Also, the hot-reloading feature that Erlang provides by default is no
longer applicable is nowadays containerization of applications. Instead of
having to upload the new code and triggering a hot-reload, you would
just start up an new container and stop the one that's currently running.
The Docker-way of doing things differs a bit from the Erlang-way, so in
some cases, you may have to apply some hack-ish behavior for
deployments.
Types
Erlang is a dynamically-typed language, meaning that during the
compilation phase you won't get any type errors. Erlang's robustness
and failure handling makes errors during runtime a lot less costly.
19
Conclusion
All-in-all, Erlang does an almost-perfect job at
handling concurrency and the complexity involved
when dealing with it, including error handling,
concurrency guarantees and architectures
robustness. Even though it lacks some very useful
features used by many programming languages like
a proper package manager and a static type-checker,
it does not obfuscate its benefits. Erlang might not
be the right tool for every project, but it's definitely
very practical and safe working with it which makes
it worth considering it.
20
THANK YOU
21
Any Questions???
Ad

More Related Content

What's hot (20)

ROS vs ROS2
ROS vs ROS2ROS vs ROS2
ROS vs ROS2
Asit Deva
 
ROS distributed architecture
ROS  distributed architectureROS  distributed architecture
ROS distributed architecture
Pablo Iñigo Blasco
 
ROS+Docker
ROS+DockerROS+Docker
ROS+Docker
Ruffin White
 
Ros with docker 20151107
Ros with docker  20151107Ros with docker  20151107
Ros with docker 20151107
Sejin Park
 
Guide to ROS tools
Guide to ROS tools Guide to ROS tools
Guide to ROS tools
Ashwin Rajendran
 
Simulating TUM Drone 2.0 by ROS
Simulating TUM Drone 2.0  by ROSSimulating TUM Drone 2.0  by ROS
Simulating TUM Drone 2.0 by ROS
esraatarekahmedhasansadek
 
Robot operating systems (ros) overview &
Robot operating systems (ros) overview &Robot operating systems (ros) overview &
Robot operating systems (ros) overview &
Piyush Chand
 
Python 101 for the .NET Developer
Python 101 for the .NET DeveloperPython 101 for the .NET Developer
Python 101 for the .NET Developer
Sarah Dutkiewicz
 
Ceph Day Berlin: Community Update
Ceph Day Berlin:  Community UpdateCeph Day Berlin:  Community Update
Ceph Day Berlin: Community Update
Ceph Community
 
FPGAを用いた処理のロボット向けコンポーネントの設計生産性評価
FPGAを用いた処理のロボット向けコンポーネントの設計生産性評価FPGAを用いた処理のロボット向けコンポーネントの設計生産性評価
FPGAを用いた処理のロボット向けコンポーネントの設計生産性評価
Kazushi Yamashina
 
cReComp : Automated Design Tool for ROS-Compliant FPGA Component
cReComp : Automated Design Tool  for ROS-Compliant FPGA Component cReComp : Automated Design Tool  for ROS-Compliant FPGA Component
cReComp : Automated Design Tool for ROS-Compliant FPGA Component
Kazushi Yamashina
 
Understanding Coroutine
Understanding CoroutineUnderstanding Coroutine
Understanding Coroutine
Justin Li
 
FPGAの処理をソフトウェアコンポーネント化する設計ツールcReCompの高機能化の検討
FPGAの処理をソフトウェアコンポーネント化する設計ツールcReCompの高機能化の検討FPGAの処理をソフトウェアコンポーネント化する設計ツールcReCompの高機能化の検討
FPGAの処理をソフトウェアコンポーネント化する設計ツールcReCompの高機能化の検討
Kazushi Yamashina
 
The Robot Operating System ecosystem and Python
The Robot Operating System ecosystem and PythonThe Robot Operating System ecosystem and Python
The Robot Operating System ecosystem and Python
Esteve Fernández
 
自律移動ロボット向けハード・ソフト協調のためのコンポーネント設計支援ツール
自律移動ロボット向けハード・ソフト協調のためのコンポーネント設計支援ツール自律移動ロボット向けハード・ソフト協調のためのコンポーネント設計支援ツール
自律移動ロボット向けハード・ソフト協調のためのコンポーネント設計支援ツール
Kazushi Yamashina
 
FIWARE Global Summit - FIROS: Helping Robots to be Context Aware
FIWARE Global Summit - FIROS: Helping Robots to be Context AwareFIWARE Global Summit - FIROS: Helping Robots to be Context Aware
FIWARE Global Summit - FIROS: Helping Robots to be Context Aware
FIWARE
 
FPGA処理をROSコンポーネント化する自動設計環境
FPGA処理をROSコンポーネント化する自動設計環境FPGA処理をROSコンポーネント化する自動設計環境
FPGA処理をROSコンポーネント化する自動設計環境
Kazushi Yamashina
 
Concurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple SpacesConcurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple Spaces
luccastera
 
Intro to KotlinNLP
Intro to KotlinNLPIntro to KotlinNLP
Intro to KotlinNLP
Matteo Grella
 
Dynamic Instrumentation- OpenEBS Golang Meetup July 2017
Dynamic Instrumentation- OpenEBS Golang Meetup July 2017Dynamic Instrumentation- OpenEBS Golang Meetup July 2017
Dynamic Instrumentation- OpenEBS Golang Meetup July 2017
OpenEBS
 
Ros with docker 20151107
Ros with docker  20151107Ros with docker  20151107
Ros with docker 20151107
Sejin Park
 
Robot operating systems (ros) overview &
Robot operating systems (ros) overview &Robot operating systems (ros) overview &
Robot operating systems (ros) overview &
Piyush Chand
 
Python 101 for the .NET Developer
Python 101 for the .NET DeveloperPython 101 for the .NET Developer
Python 101 for the .NET Developer
Sarah Dutkiewicz
 
Ceph Day Berlin: Community Update
Ceph Day Berlin:  Community UpdateCeph Day Berlin:  Community Update
Ceph Day Berlin: Community Update
Ceph Community
 
FPGAを用いた処理のロボット向けコンポーネントの設計生産性評価
FPGAを用いた処理のロボット向けコンポーネントの設計生産性評価FPGAを用いた処理のロボット向けコンポーネントの設計生産性評価
FPGAを用いた処理のロボット向けコンポーネントの設計生産性評価
Kazushi Yamashina
 
cReComp : Automated Design Tool for ROS-Compliant FPGA Component
cReComp : Automated Design Tool  for ROS-Compliant FPGA Component cReComp : Automated Design Tool  for ROS-Compliant FPGA Component
cReComp : Automated Design Tool for ROS-Compliant FPGA Component
Kazushi Yamashina
 
Understanding Coroutine
Understanding CoroutineUnderstanding Coroutine
Understanding Coroutine
Justin Li
 
FPGAの処理をソフトウェアコンポーネント化する設計ツールcReCompの高機能化の検討
FPGAの処理をソフトウェアコンポーネント化する設計ツールcReCompの高機能化の検討FPGAの処理をソフトウェアコンポーネント化する設計ツールcReCompの高機能化の検討
FPGAの処理をソフトウェアコンポーネント化する設計ツールcReCompの高機能化の検討
Kazushi Yamashina
 
The Robot Operating System ecosystem and Python
The Robot Operating System ecosystem and PythonThe Robot Operating System ecosystem and Python
The Robot Operating System ecosystem and Python
Esteve Fernández
 
自律移動ロボット向けハード・ソフト協調のためのコンポーネント設計支援ツール
自律移動ロボット向けハード・ソフト協調のためのコンポーネント設計支援ツール自律移動ロボット向けハード・ソフト協調のためのコンポーネント設計支援ツール
自律移動ロボット向けハード・ソフト協調のためのコンポーネント設計支援ツール
Kazushi Yamashina
 
FIWARE Global Summit - FIROS: Helping Robots to be Context Aware
FIWARE Global Summit - FIROS: Helping Robots to be Context AwareFIWARE Global Summit - FIROS: Helping Robots to be Context Aware
FIWARE Global Summit - FIROS: Helping Robots to be Context Aware
FIWARE
 
FPGA処理をROSコンポーネント化する自動設計環境
FPGA処理をROSコンポーネント化する自動設計環境FPGA処理をROSコンポーネント化する自動設計環境
FPGA処理をROSコンポーネント化する自動設計環境
Kazushi Yamashina
 
Concurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple SpacesConcurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple Spaces
luccastera
 
Dynamic Instrumentation- OpenEBS Golang Meetup July 2017
Dynamic Instrumentation- OpenEBS Golang Meetup July 2017Dynamic Instrumentation- OpenEBS Golang Meetup July 2017
Dynamic Instrumentation- OpenEBS Golang Meetup July 2017
OpenEBS
 

Similar to Erlang os (20)

"erlang, webmail and hibari" at Rakuten tech talk
"erlang, webmail and hibari" at Rakuten tech talk"erlang, webmail and hibari" at Rakuten tech talk
"erlang, webmail and hibari" at Rakuten tech talk
CLOUDIAN KK
 
An introduction to erlang
An introduction to erlangAn introduction to erlang
An introduction to erlang
Mirko Bonadei
 
TDC2016SP - Trilha Programação Funcional
TDC2016SP - Trilha Programação FuncionalTDC2016SP - Trilha Programação Funcional
TDC2016SP - Trilha Programação Funcional
tdc-globalcode
 
Erlang sem enrolação
Erlang sem enrolaçãoErlang sem enrolação
Erlang sem enrolação
Felipe Mamud
 
Erlang及其应用
Erlang及其应用Erlang及其应用
Erlang及其应用
Feng Yu
 
Erlang latest version & opensource projects
Erlang latest version & opensource projectsErlang latest version & opensource projects
Erlang latest version & opensource projects
Digikrit
 
NDC London 2014: Erlang Patterns Matching Business Needs
NDC London 2014: Erlang Patterns Matching Business NeedsNDC London 2014: Erlang Patterns Matching Business Needs
NDC London 2014: Erlang Patterns Matching Business Needs
Torben Hoffmann
 
Introduction To Erlang Final
Introduction To Erlang   FinalIntroduction To Erlang   Final
Introduction To Erlang Final
SinarShebl
 
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
siouxhotornot
 
Erlang, an overview
Erlang, an overviewErlang, an overview
Erlang, an overview
Patrick Huesler
 
Keynote joearmstrong
Keynote joearmstrongKeynote joearmstrong
Keynote joearmstrong
Sentifi
 
TEE - kernel support is now upstream. What this means for open source security
TEE - kernel support is now upstream. What this means for open source securityTEE - kernel support is now upstream. What this means for open source security
TEE - kernel support is now upstream. What this means for open source security
Linaro
 
A sip of Elixir
A sip of ElixirA sip of Elixir
A sip of Elixir
Emanuele DelBono
 
Абрамович Максим, "Rad studio xe4"
Абрамович Максим, "Rad studio xe4"Абрамович Максим, "Rad studio xe4"
Абрамович Максим, "Rad studio xe4"
EPAM Systems
 
Running Tensorflow In Production: Challenges and Solutions on YARN 3.x
Running Tensorflow In Production: Challenges and Solutions on YARN 3.x Running Tensorflow In Production: Challenges and Solutions on YARN 3.x
Running Tensorflow In Production: Challenges and Solutions on YARN 3.x
Wangda Tan
 
Erlang
ErlangErlang
Erlang
ESUG
 
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav TulachJDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
PROIDEA
 
Elixir
ElixirElixir
Elixir
Commit University
 
Beam me up, Scotty
Beam me up, ScottyBeam me up, Scotty
Beam me up, Scotty
Gianluca Padovani
 
Learning Elixir as a Rubyist
Learning Elixir as a RubyistLearning Elixir as a Rubyist
Learning Elixir as a Rubyist
Alex Kira
 
"erlang, webmail and hibari" at Rakuten tech talk
"erlang, webmail and hibari" at Rakuten tech talk"erlang, webmail and hibari" at Rakuten tech talk
"erlang, webmail and hibari" at Rakuten tech talk
CLOUDIAN KK
 
An introduction to erlang
An introduction to erlangAn introduction to erlang
An introduction to erlang
Mirko Bonadei
 
TDC2016SP - Trilha Programação Funcional
TDC2016SP - Trilha Programação FuncionalTDC2016SP - Trilha Programação Funcional
TDC2016SP - Trilha Programação Funcional
tdc-globalcode
 
Erlang sem enrolação
Erlang sem enrolaçãoErlang sem enrolação
Erlang sem enrolação
Felipe Mamud
 
Erlang及其应用
Erlang及其应用Erlang及其应用
Erlang及其应用
Feng Yu
 
Erlang latest version & opensource projects
Erlang latest version & opensource projectsErlang latest version & opensource projects
Erlang latest version & opensource projects
Digikrit
 
NDC London 2014: Erlang Patterns Matching Business Needs
NDC London 2014: Erlang Patterns Matching Business NeedsNDC London 2014: Erlang Patterns Matching Business Needs
NDC London 2014: Erlang Patterns Matching Business Needs
Torben Hoffmann
 
Introduction To Erlang Final
Introduction To Erlang   FinalIntroduction To Erlang   Final
Introduction To Erlang Final
SinarShebl
 
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
siouxhotornot
 
Keynote joearmstrong
Keynote joearmstrongKeynote joearmstrong
Keynote joearmstrong
Sentifi
 
TEE - kernel support is now upstream. What this means for open source security
TEE - kernel support is now upstream. What this means for open source securityTEE - kernel support is now upstream. What this means for open source security
TEE - kernel support is now upstream. What this means for open source security
Linaro
 
Абрамович Максим, "Rad studio xe4"
Абрамович Максим, "Rad studio xe4"Абрамович Максим, "Rad studio xe4"
Абрамович Максим, "Rad studio xe4"
EPAM Systems
 
Running Tensorflow In Production: Challenges and Solutions on YARN 3.x
Running Tensorflow In Production: Challenges and Solutions on YARN 3.x Running Tensorflow In Production: Challenges and Solutions on YARN 3.x
Running Tensorflow In Production: Challenges and Solutions on YARN 3.x
Wangda Tan
 
Erlang
ErlangErlang
Erlang
ESUG
 
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav TulachJDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
PROIDEA
 
Learning Elixir as a Rubyist
Learning Elixir as a RubyistLearning Elixir as a Rubyist
Learning Elixir as a Rubyist
Alex Kira
 
Ad

Recently uploaded (20)

ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Ad

Erlang os

  • 1. ERLANG Operating Systems PST22211- 2020 Dilshan Chathuranga Hashani Sandunika Ishan Suranga Maduka Shashikani Minoli Sachinthana Osuri Dishmini Pinindu Chethiya Sandunika Hashani Thisaru Dhanushika Yalini Pushpakanthan 01
  • 3. In a nutshell, what is Erlang? Erlang is a general-purpose programming language and runtime environment. Erlang has built-in support for concurrency, distribution and fault tolerance. Erlang is used in several large telecommunication systems from Ericsson. Erlang is available as open source from http://www.erlang.org. 03
  • 4. The Founder Along with Robert Virding and Mike Williams in 1986, Armstrong develo ped Erlang, which was released as o pen source in 1998. Joseph Leslie Armstrong (27 December 1950 – 20 April 2019) was a computer scientist working in the area of fault – tolerant distributed systems. He is best known as one of the co-designers of the Erlang programming language. Joe Armstrong 04
  • 5. What is it ?? ----------------------------------------------------- • Erlang was designed with the aim of improving the development of telephony applications. ------------------------------------------------------ • The initial version of Erlang was implemented in Prolog and was influenced by the programming language PLEX used in earlier Ericsson exchanges. ------------------------------------------------------ • In 1992, work began on the BEAM virtual machine (VM) which compiles Erlang to C using a mix of natively compiled code and threaded code to strike a balance between performance and disk space. ------------------------------------------------------ • According to Armstrong, the language went from lab product to real applications following the collapse of the next-generation AXE telephone named AXE-N in 1995. The name Erlang, attributed to Bjarne Däcker, has been presumed by those working on the telephony switches (for whom the language was designed) to be a reference to Danish mathematician and engineer Agner Krarup Erlang and a syllabic abbreviation of "Ericsson Language". 05
  • 6. • As a result, Erlang was chosen for the next Asynchronous transfer mode (ATM) exchange AXD. • In 1998 Ericsson announced the AXD301 switch, containing over a million lines of Erlang and reported to achieve a high availability of nine “9” s. • Shortly thereafter, Ericsson Radio Systems banned the in-house use of Erlang for new products, citing a preference for non- proprietary languages. The ban caused Armstrong and others to leave Ericsson. • The implementation was open-sourced at the end of the year. Ericsson eventually lifted the ban and re-hired Armstrong in 2004. • In 2006, native symmetric multiprocessing support was added to the runtime system and VM. 06
  • 7. Timeline of Erlang Ericsson CS Lab formed 1984 1987 1991 1993 1994 1996 First fast Implementation First Product Early Erlang Prototype Distributed Erlang Open telecom platform 1998 Become open Source Future 07
  • 8. #Facts Contents Title • In 2014, Ericsson reported Erlang was being used in • its support nodes, and in GPRS ,3G and LTE mobile networks worldwide and also by Nortel and T-Mobile. • As Tim Bray, director of Web Technologies at Sun Microsystems, expressed in his keynote at O’Reilly Open Source Convention (OSCON) in July 2008: • If somebody came to me and wanted to pay me a lot of money to build a large scale message handling system that really had to be up all the time, could never afford to go down for years at a time, I would unhesitatingly choose Erlang to build it in. • Erlang is the programming language used to code Whatsapp. Contents Title Contents Title 08
  • 9. Erlang Features • Concurrency • Fault tolerance • Soft – Real time • Distribution • Hot code loading • External Interfaces • Platform Independent 09
  • 10. Data Types • Numbers: Integers and floats • Atoms – similar to constants (true and false are atoms) • Funs – anonymous functions • Sum = fun(X,Y) -> X+Y end. • Sum(5,5) • Tuples – Fixed amount of data. Any item can be accessed in constant time • Lists – Group of data types; varying amount. First item can be accessed in constant time, while other elements can be accessed in O(n) time. • Records – similar to structs in c 10
  • 12. Syntax Hello World You can simply impress your audience and add a unique zing and appeal to your Presentations. Content Here 12
  • 13. Recursive Functions -module(recursive). -export([fact/1, qsort/1]). fact(1) -> 1; fact(N) -> N * fact(N - 1). qsort([]) -> []; qsort([H | T]) -> qsort([X || X <- T, X < H]) ++ [H] ++ qsort([X || X <- T, X >= H]). • Recursive.erl • Compile/Run 13
  • 14. Guarded Commands • Compare.erl -module(guarded). -export([gt/2]). greaterThan(N, M) -> if N > M -> true; N < M -> false; true -> equal end. while(N) when N == 5 -> io:fwrite("~n~B ",[N]), while(N- 1); while(N) when N > 0 -> io:fwrite("~B ",[N]), while(N-1); while(_) when true -> done. • Compile/Run 14
  • 15. Who use Erlang 146 companies reportedly use Erlang in their tech stacks, including WhatsApp, Heroku, and thoughtbot. 15
  • 16. Erlang Integrations Rollbar, Google Code Prettify, Airbrake, Tile38, and Leptus are some of the popular tools that integrate with Erlang. Here's a list of all 7 tools that integrate with Erlang. 16
  • 17. Pros & Cons Pros • Simplicity this is one of the most valuable characteristics of a language.it has a very small set of syntactic primitives that can use. Even the concurrent aspect of the language is done using just plain functions (with the exception of the receive primitive). Erlang's simplicity also makes it very understandable and fun to work with. • Managing Concurrency & Failure Erlang concurrent programs can be built, scaled and distributed with ease. Once you have the deployment and integration set up, scaling Erlang nodes and spawning new Erlang processes on different machines becomes easy. Erlang standard library provides easy-to- use functions for this very purpose, so reaching parallelism is not only cheap in terms of implementation but also elegant. 17
  • 18. • When it comes to program failures Erlang also has your back. When spawning new processes you are guaranteed to be notified about it to all the monitors and links that were established. This allows to re-spawn any failed process automatically, which is already part of the OTP standard library and the default way for structuring Erlang applications. Mature community • One of the most important aspects to consider when trying to predict a technology's future is to check the what kind of community that technology is being supported and used by. We've all seen good technologies that end up being destroyed with useless and buggy features; this is usually what a toxic community does. • Erlang's community is small, mature and simplicity-driven, which protects it from being destroyed. This is why Erlang benefits and robustness has lasted this long. 18
  • 19. Pros & Cons Cons Setup Setting up, provisioning and deploying Erlang applications can be hard to understand and cumbersome. This is due to many reasons, one of the most important ones being the lack of a proper and unique package manager. Also, the hot-reloading feature that Erlang provides by default is no longer applicable is nowadays containerization of applications. Instead of having to upload the new code and triggering a hot-reload, you would just start up an new container and stop the one that's currently running. The Docker-way of doing things differs a bit from the Erlang-way, so in some cases, you may have to apply some hack-ish behavior for deployments. Types Erlang is a dynamically-typed language, meaning that during the compilation phase you won't get any type errors. Erlang's robustness and failure handling makes errors during runtime a lot less costly. 19
  • 20. Conclusion All-in-all, Erlang does an almost-perfect job at handling concurrency and the complexity involved when dealing with it, including error handling, concurrency guarantees and architectures robustness. Even though it lacks some very useful features used by many programming languages like a proper package manager and a static type-checker, it does not obfuscate its benefits. Erlang might not be the right tool for every project, but it's definitely very practical and safe working with it which makes it worth considering it. 20