SlideShare une entreprise Scribd logo
1  sur  28
Scala Actors from an Erlang
perspective
Who am I

• Reidar Sollid (Reidar is an ancient Viking name, and
  means warrior and protector of the home)
• I am now a Consutlant at Bouvet
• My background is from R&D and Telecom transport
  networks from Nera Networks( now Ceragon) and
  Ericsson.
Motivation

• Most Scala devs comes from Java
• Hacking Scala with a Java mindset limits your
  use of Scala
• Erlang is a pure actor base language
• Getting the mindset from Erlang into Scala
  broadens the horizon
• Java + Erlang = Scala
The concept of forever




• This is a loaner from Joe Armstrong, he is a lot
  funnier than I am but I guess you get the point
  
• I hope he don’t mind
10 x the size of the
The fly
Nine nines 99.999999999

• Standard for Telecom equipment is five nines 99.999 (5.2
  minutes downtime/year)
• The Ericsson AXD301 has 2 million lines of Erlang code
  and nine nines
Shared memory
Concurrency and shared memory
Erlang

•   The world is concurrent
•   Things in the world don't share data
•   Things communicate with messages
•   Things fail
    – Joe Armstrong
What is Erlang

• Created and maintained by Ericsson (now open source)
• Functional, single assignment, strict evaluation, dynamic
  typing
• Actor model, concurrent oriented, fault tolerant, soft-real-
  time
• Light weight processes that communicate using message
  passing (an Erlang process is more light weight than a
  Java thread)
• Erlang started life as a modified prolog
• Erlang shell, escript and compiled *.beam bytecode
Variables and pattern matching

• Variables starts with capital letter or
  underscore
• Variables are immutable, Erlang does not have
  mutable variables
• They are variables because they can be
  assigned or not assigned
• Erlang variables are the same as val variables
  in Scala
Erlang variable demo
Scala variable demo
Atoms and tuples

•   An atom is a global constant starting with lower case
•   Scala has an equivalent called Symbol
•   A tuple is an ordered set of elements
•   Erlang doesn’t have classes so we use tuples (see also
    records)
The spawn keyword

• spawn(Fun) -> pid()
• Spawns out a new process and returns the
  Process Identifier <0.13.1>
• Normally we assign the PID to a variable
• Pid = hello_world:start()
The *Real* Erlang "Hello, World!"




 http://egarson.blogspot.com/2008/03/real-erlang-hello-world.html
Pattern Matching




                   , 29.09.2012
Tail recursion




                 @tailrec
Tail recursion




         tail recursion as seen here is not making the memory grow
         because when the virtual machine sees a function calling
         itself in a tail position (the last expression to be evaluated in a
         function), it eliminates the current stack frame.
Scala react or receive

 • React is the “normal” actor, lightweight process
 • Receive spins out a new Java thread
 • In the paper *
       – 1.80GHz Intel Pentium M processor with 1024 MB
         memory, running Sun’s Java HotSpot™VM 1.5.0 under Linux
         2.6.15
       – Max heap size set to 512 MB
       – 5000 threads
       – 600 000 processes (1 200 000 actors)
 • React uses partial functions to send the process to the
   heap, react has return type Nothing
 • Receive runs on the stack and is heavyweight JVM threads
   (like Java)
 *Actors That Unify Threads and Events P. Haller, M. Odersky
Area server Erlang
Area server in Scala
Remote processes Erlang
Remote actors Scala
Supervisors in Erlang/OTP and
AKKA


   Supervisor

                                 Process




                       Process
      Process




                                           Page
                                            , 29.09.2012
  Actor model baksia
Supervising supervisors

  Root
Supervisor




                                        Supervisor
Supervisor
                                                               Process
                              Process



                                        Process      Process
Process             Process



                                                                  Page
                                                                    , 29.09.2012
     Actor model baksia

Contenu connexe

Similaire à Scala actors erlang

Actors and Threads
Actors and ThreadsActors and Threads
Actors and Threadsmperham
 
Erjang - A journey into Erlang-land
Erjang - A journey into Erlang-landErjang - A journey into Erlang-land
Erjang - A journey into Erlang-landKresten Krab Thorup
 
Looming Marvelous - Virtual Threads in Java Javaland.pdf
Looming Marvelous - Virtual Threads in Java Javaland.pdfLooming Marvelous - Virtual Threads in Java Javaland.pdf
Looming Marvelous - Virtual Threads in Java Javaland.pdfjexp
 
Scala io2013 : Our journey from UML/MDD to Scala macros
Scala io2013 : Our journey from UML/MDD to Scala macrosScala io2013 : Our journey from UML/MDD to Scala macros
Scala io2013 : Our journey from UML/MDD to Scala macrosebiznext
 
OSGi Community Event 2010 - OSGi and Android
OSGi Community Event 2010 - OSGi and AndroidOSGi Community Event 2010 - OSGi and Android
OSGi Community Event 2010 - OSGi and Androidmfrancis
 
Introduction to Actor Model and Akka
Introduction to Actor Model and AkkaIntroduction to Actor Model and Akka
Introduction to Actor Model and AkkaYung-Lin Ho
 
Modern Java Concurrency (OSCON 2012)
Modern Java Concurrency (OSCON 2012)Modern Java Concurrency (OSCON 2012)
Modern Java Concurrency (OSCON 2012)Martijn Verburg
 
Using Apache Camel as AKKA
Using Apache Camel as AKKAUsing Apache Camel as AKKA
Using Apache Camel as AKKAJohan Edstrom
 
Erlang workshopdrammen
Erlang workshopdrammenErlang workshopdrammen
Erlang workshopdrammenReidar Sollid
 
Comparing implementations of the actor model
Comparing implementations of the actor modelComparing implementations of the actor model
Comparing implementations of the actor modelJim Roepcke
 
Java Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
Java Core | Modern Java Concurrency | Martijn Verburg & Ben EvansJava Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
Java Core | Modern Java Concurrency | Martijn Verburg & Ben EvansJAX London
 
The Why and How of Scala at Twitter
The Why and How of Scala at TwitterThe Why and How of Scala at Twitter
The Why and How of Scala at TwitterAlex Payne
 
Introduction to Java 7 (OSCON 2012)
Introduction to Java 7 (OSCON 2012)Introduction to Java 7 (OSCON 2012)
Introduction to Java 7 (OSCON 2012)Martijn Verburg
 
Migrating to Java 11
Migrating to Java 11Migrating to Java 11
Migrating to Java 11Arto Santala
 
Concurrent processing and distributed computing
Concurrent processing and distributed computingConcurrent processing and distributed computing
Concurrent processing and distributed computingRahul Ramteke
 
Scala adoption by enterprises
Scala adoption by enterprisesScala adoption by enterprises
Scala adoption by enterprisesMike Slinn
 
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Baruch Sadogursky
 
Scalamen and OT
Scalamen and OTScalamen and OT
Scalamen and OTgetch123
 

Similaire à Scala actors erlang (20)

Actors and Threads
Actors and ThreadsActors and Threads
Actors and Threads
 
Erjang - A journey into Erlang-land
Erjang - A journey into Erlang-landErjang - A journey into Erlang-land
Erjang - A journey into Erlang-land
 
Looming Marvelous - Virtual Threads in Java Javaland.pdf
Looming Marvelous - Virtual Threads in Java Javaland.pdfLooming Marvelous - Virtual Threads in Java Javaland.pdf
Looming Marvelous - Virtual Threads in Java Javaland.pdf
 
Scala io2013 : Our journey from UML/MDD to Scala macros
Scala io2013 : Our journey from UML/MDD to Scala macrosScala io2013 : Our journey from UML/MDD to Scala macros
Scala io2013 : Our journey from UML/MDD to Scala macros
 
OSGi Community Event 2010 - OSGi and Android
OSGi Community Event 2010 - OSGi and AndroidOSGi Community Event 2010 - OSGi and Android
OSGi Community Event 2010 - OSGi and Android
 
Introduction to Actor Model and Akka
Introduction to Actor Model and AkkaIntroduction to Actor Model and Akka
Introduction to Actor Model and Akka
 
Modern Java Concurrency (OSCON 2012)
Modern Java Concurrency (OSCON 2012)Modern Java Concurrency (OSCON 2012)
Modern Java Concurrency (OSCON 2012)
 
Using Apache Camel as AKKA
Using Apache Camel as AKKAUsing Apache Camel as AKKA
Using Apache Camel as AKKA
 
Erlang workshopdrammen
Erlang workshopdrammenErlang workshopdrammen
Erlang workshopdrammen
 
Comparing implementations of the actor model
Comparing implementations of the actor modelComparing implementations of the actor model
Comparing implementations of the actor model
 
Java Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
Java Core | Modern Java Concurrency | Martijn Verburg & Ben EvansJava Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
Java Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
 
Scala goods bads
Scala goods badsScala goods bads
Scala goods bads
 
The Why and How of Scala at Twitter
The Why and How of Scala at TwitterThe Why and How of Scala at Twitter
The Why and How of Scala at Twitter
 
Introduction to Java 7 (OSCON 2012)
Introduction to Java 7 (OSCON 2012)Introduction to Java 7 (OSCON 2012)
Introduction to Java 7 (OSCON 2012)
 
Migrating to Java 11
Migrating to Java 11Migrating to Java 11
Migrating to Java 11
 
Concurrent processing and distributed computing
Concurrent processing and distributed computingConcurrent processing and distributed computing
Concurrent processing and distributed computing
 
Stackato v4
Stackato v4Stackato v4
Stackato v4
 
Scala adoption by enterprises
Scala adoption by enterprisesScala adoption by enterprises
Scala adoption by enterprises
 
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
 
Scalamen and OT
Scalamen and OTScalamen and OT
Scalamen and OT
 

Dernier

Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 

Dernier (20)

Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Scala actors erlang

  • 1. Scala Actors from an Erlang perspective
  • 2. Who am I • Reidar Sollid (Reidar is an ancient Viking name, and means warrior and protector of the home) • I am now a Consutlant at Bouvet • My background is from R&D and Telecom transport networks from Nera Networks( now Ceragon) and Ericsson.
  • 3. Motivation • Most Scala devs comes from Java • Hacking Scala with a Java mindset limits your use of Scala • Erlang is a pure actor base language • Getting the mindset from Erlang into Scala broadens the horizon • Java + Erlang = Scala
  • 4. The concept of forever • This is a loaner from Joe Armstrong, he is a lot funnier than I am but I guess you get the point  • I hope he don’t mind
  • 5.
  • 6. 10 x the size of the
  • 8. Nine nines 99.999999999 • Standard for Telecom equipment is five nines 99.999 (5.2 minutes downtime/year) • The Ericsson AXD301 has 2 million lines of Erlang code and nine nines
  • 11. Erlang • The world is concurrent • Things in the world don't share data • Things communicate with messages • Things fail – Joe Armstrong
  • 12. What is Erlang • Created and maintained by Ericsson (now open source) • Functional, single assignment, strict evaluation, dynamic typing • Actor model, concurrent oriented, fault tolerant, soft-real- time • Light weight processes that communicate using message passing (an Erlang process is more light weight than a Java thread) • Erlang started life as a modified prolog • Erlang shell, escript and compiled *.beam bytecode
  • 13. Variables and pattern matching • Variables starts with capital letter or underscore • Variables are immutable, Erlang does not have mutable variables • They are variables because they can be assigned or not assigned • Erlang variables are the same as val variables in Scala
  • 16. Atoms and tuples • An atom is a global constant starting with lower case • Scala has an equivalent called Symbol • A tuple is an ordered set of elements • Erlang doesn’t have classes so we use tuples (see also records)
  • 17. The spawn keyword • spawn(Fun) -> pid() • Spawns out a new process and returns the Process Identifier <0.13.1> • Normally we assign the PID to a variable • Pid = hello_world:start()
  • 18. The *Real* Erlang "Hello, World!" http://egarson.blogspot.com/2008/03/real-erlang-hello-world.html
  • 19. Pattern Matching , 29.09.2012
  • 20. Tail recursion @tailrec
  • 21. Tail recursion tail recursion as seen here is not making the memory grow because when the virtual machine sees a function calling itself in a tail position (the last expression to be evaluated in a function), it eliminates the current stack frame.
  • 22. Scala react or receive • React is the “normal” actor, lightweight process • Receive spins out a new Java thread • In the paper * – 1.80GHz Intel Pentium M processor with 1024 MB memory, running Sun’s Java HotSpot™VM 1.5.0 under Linux 2.6.15 – Max heap size set to 512 MB – 5000 threads – 600 000 processes (1 200 000 actors) • React uses partial functions to send the process to the heap, react has return type Nothing • Receive runs on the stack and is heavyweight JVM threads (like Java) *Actors That Unify Threads and Events P. Haller, M. Odersky
  • 24. Area server in Scala
  • 27. Supervisors in Erlang/OTP and AKKA Supervisor Process Process Process Page , 29.09.2012 Actor model baksia
  • 28. Supervising supervisors Root Supervisor Supervisor Supervisor Process Process Process Process Process Process Page , 29.09.2012 Actor model baksia

Notes de l'éditeur

  1. Imaging somewhere in the universe an Iron Ball
  2. 10 times the size of the earth, and every 10th million year a fly
  3. Lands on the Iron Ball and wonders around a bit.The time it for the fly to wear down the Iron Ball is tiny winy bit of time in the concept of forever.
  4. Erlang do have shared memory, light weight processes that communicate through messages
  5. val variable = 3;Variable = 3.
  6. 1 200 000 actors since the queues are actors as well
  7. Pid = spawn(fun()-&gt;area_server:loop() end).Pid = {circle, 2.3}.Pid =
  8. Show receiveWithin