The Artima Developer Community
Sponsored Link

Artima Developer Spotlight Forum
Pondering Actor Design

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Frank Sommers

Posts: 2642
Nickname: fsommers
Registered: Jan, 2002

Pondering Actor Design Posted: Jun 22, 2009 8:08 PM
Reply to this message Reply
Advertisement

Among the main attractions of the Scala language is that it supports the Actor-based model of concurrency. Actors are not part of the Scala language per se, but a full-featured Actors library is included in the standard Scala API. Because the Scala language allows one to implement an API that, for all practical purposes, looks like an embedded DSL, the standard Scala Actors library is very easy and natural to use from any Scala code.

In the past year, several additional Actors libraries have sprung up as well in the Scala community. The best-known example is the Lift framework's own Actors implementation. As a Web framework, Lift had some special requirements that were difficult to satisfy with the standard Scala Actors library. Thus, the Lift project supplied its own, special-purpose "Lift Actors." Erik Engbrecht and Jonas Boner have also been independently developing Actors implementations.

In a recent blog post, Pondering Actor Design Trades, Erik Engbrecht notes that:

Writing a basic actor implementation is actually pretty trivial, especially given java.util.concurrent classes that provide a decent chunk of the functionality in Scala actors, all for free on JDK5+. So this begs the question few questions:

Why is the standard Scala actor implementation so complex when others have done it in a such simpler fashion?

Is it better to have one, big actor library that supports a wide variety of use cases, or a bunch of smaller ones targeted at specific niches and programming styles?

If there are to be a bunch, should they just be conceptually similar (e.g. all based on the actor model), or should there be interoperability among them?

In the rest of his blog post, Engbrecht compares some features of the standard Scala Actors with those of Lift Actors, and highlights where specialized Actor implementations may trade off expressivity for ease of use in special use-cases.

What do you think: Should the Scala Actors library evolve to be more customizable, or expressive, or do you foresee the proliferation of special-purpose Actor libraries?

Topic: The NIO.2 File System API in JDK 7 Previous Topic   Next Topic Topic: Amy Fowler on Using JavaFX with Swing

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use