Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Reactive messaging patterns with the actor model : applications and integration in Scala and Akka
Vernon V., Addison-Wesley Professional, New York, NY, 2015. 480 pp. Type: Book (978-0-133846-83-6)
Date Reviewed: Nov 21 2016

In the 1980s, when my academic career started as a researcher into functional and actor programming languages, we were confident that by the turn of the millennium these would be the languages in standard use in industry. It was disappointing to find this was not so. For many years, this sort of language tended to be dismissed as only of interest to academics, while “real-world” programming kept to languages that directly reflected the underlying hardware, using mutable variables. It was object-oriented programming that succeeded, with C++ a practical way to link design to hardware-oriented code, and Java a cleaned-up successor. By the year 2000, it was being said that the language war was over, and Java had won.

However, there has recently been a remarkable change, and this book is indicative of it. There has been a growth of interest in functional programming for use in commercial applications. The functional programming language Scala is one of the new languages with a functional style now in widespread industrial use. It has an accompanying framework, Akka, that provides actor-style programming. This book is very much about the practical use of these, with only a passing mention of the historical academic background. It concentrates on practical use of Akka, giving many examples illustrated in a way that reflects programming for business use.

Ironically, it was Java that led to there being a greater reception of new styles of programming languages. In the past, a big barrier to introducing a new programming language was that it needed all the practical aspects to be added on top of the theoretical model. Now though, if a new programming language is developed and compiles to Java Virtual Machine (JVM) code, it can interact with Java code and use the Java API, and run on any machine that runs Java, making it much easier to adapt it for practical use. Many new languages have been developed using the JVM, with Scala perhaps the most widely used.

Another reason for the growth of interest in new styles of programming languages is the realization that they adapt much more easily to multicore and distributed programming than conventional imperative languages. The core concept of the actor model is processes running concurrently, communicating only by passing messages, without the shared mutable variables that cause so many of the complexities of concurrent programming with threads. In some ways, it is a return to the original ideal of object-oriented programming, which was in terms of simulation of objects acting concurrently, and interacting through message passing. A method call in a language like Java can be considered as an object sending a message to another, but it suspends until it gets the reply. In the actor model, a message is sent and the message sender carries on.

The main aspect of this book is the classification of various ways of using the basic idea of message passing in the actor model of programming. It could be seen as the equivalent to the classification of standard design patterns that was so influential in the development of what is now standard object-oriented programming. As with object-oriented design patterns, it provides a vocabulary that can be used to aid communication about code structure.

The book is very much code oriented. Although there are diagrams illustrating the various message-passing patterns, much of the book concentrates on the explanation of code examples. Some of the code examples are fairly lengthy, and to follow them properly they do need to be considered in detail. The book does provide a short explanation of Scala and Akka, but it would be best to use this book after already having picked up at least the basics of these languages.

The book seems to have been put together fairly quickly, with the result that in many places I felt a little more attention to presentation would have improved it. However, I can see the importance of bringing out something quickly that helps develop this new style of programming by concentrating on using it for practical examples.

More reviews about this item: Amazon, Goodreads

Reviewer:  M. Huntbach Review #: CR144936 (1702-0088)
Bookmark and Share
 
Concurrent Programming Structures (D.3.3 ... )
 
 
Parallelism And Concurrency (F.1.2 ... )
 
 
Concurrent Programming (D.1.3 )
 
Would you recommend this review?
yes
no
Other reviews under "Concurrent Programming Structures": Date
Wait-free synchronization
Herlihy M. ACM Transactions on Programming Languages and Systems 13(1): 124-149, 1991. Type: Article
Jan 1 1992
Parallel expression in the APL2 language
Willhoft R. IBM Systems Journal 30(4): 498-512, 1991. Type: Article
Dec 1 1993
Actors: a conceptual foundation for concurrent object-oriented programming
Agha G., Hewitt C., MIT Press, Cambridge, MA, 1987. Type: Book (9780262192644)
Jul 1 1989
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy