- Mastering Akka
- Christian Baxter
- 282字
- 2021-07-08 11:06:05
Understanding the actor model's origin
If you had never bumped into the actor model concept before using it within Akka, it would be easy to think that the Akka team created this programming paradigm themselves, but that's not at all true. In fact, the origins of the actor model idea itself can be traced back to a 1973 publication by Carl Hewitt, Peter Bishop, and Richard Steiger titled A Universal Modular Actor Formalism for Artificial Intelligence.
After that publication, things were a bit quiet on the actor model front until Erlang came onto the scene in 1986. The Erlang language was developed by a team within Ericsson, a Swedish telecom company, as the software backbone of their telecommunication network. The language was designed to be highly scalable, with distributed programming and concurrency as the enablers of that scalability. Erlang adopted the actor model as the foundation for both concurrent programming and distributed programming (via message passing) within the language.
The team at Ericsson furthered the ideas of the actor model, adding the concept of supervision to handle failures and perform restarting of components. This provided them with the fault tolerance that they needed to run their telecommunication networks.
In 2006, an initial actor model implementation by Phillip Haller was included as part of Scala 2.1.7. Later, in 2009, Jones Bonèr created the Akka framework as an Erlang-inspired Scala implementation of the actor model. As this implementation was deemed more mature and more feature rich than the one included in the main Scala distribution, it eventually supplanted that native implementation, starting in Scala 2.10. Now, when you think of actors and Scala, Akka is the defacto framework that comes to mind.
- MySQL數(shù)據(jù)庫應(yīng)用與管理 第2版
- Dependency Injection in .NET Core 2.0
- HTML5 and CSS3 Transition,Transformation,and Animation
- Rust Essentials(Second Edition)
- Python數(shù)據(jù)結(jié)構(gòu)與算法(視頻教學(xué)版)
- ASP.NET Core 2 Fundamentals
- C/C++程序員面試指南
- Python Data Structures and Algorithms
- Visual Basic程序設(shè)計(jì)上機(jī)實(shí)驗(yàn)教程
- 深度學(xué)習(xí):Java語言實(shí)現(xiàn)
- 軟件測試實(shí)用教程
- Learning Apache Cassandra
- Mastering Git
- SQL Server 2016 從入門到實(shí)戰(zhàn)(視頻教學(xué)版)
- 微課學(xué)人工智能Python編程