BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Presentations Objects, Anomalies, and Actors: The Next Revolution

Objects, Anomalies, and Actors: The Next Revolution

Bookmarks
01:00:49

Summary

Steve Vinoski believes that actor-oriented languages such as Erlang are better prepared for the challenges of the future: cloud, multicore, high availability and fault tolerance.

Bio

Steve Vinoski is the author of "Toward Integration" by IEEE Internet Computing, and has written for magazines such as C/C++ Users Journal and C++ Report and is the co-author of Advanced CORBA Programming with C++ (APC) with Michi Henning. He is currently an architect at Basho Technologies. He previously worked as chief architect for IONA Technologies, HP, Apollo Computer and Texas Instruments.

About the conference

Software is changing the world; QCon aims to empower software development by facilitating the spread of knowledge and innovation in the enterprise software development community; to achieve this, QCon is organized as a practitioner-driven conference designed for people influencing innovation in their teams: team leads, architects, project managers, engineering directors.

Recorded at:

May 18, 2012

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Erlang ???

    by Serge Bureau,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Erlang is pretty primitive compared to Scala.
    And the actor model is much more evolved with Akka (par os Scala 2.10)

    Also Erlang is far from the first promoting actors and messaging. Go look at Occam and the transputer chips decades before Erlang
    Go also look at the Amiga OS with messaging at the heart of the OS.

    The way to build software in Erlang lacks abstraction and is a step back.

  • Re: Erlang ???

    by Robert Folkerts,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    The simplicity of Erlang can be an advantage with respect to reliability. Joe Armstrong has given a recent talk about this, see the presentation Building-Highly-Available-Systems-in-Erlang on this site. I agree with the observation that Scala/Akka has a rich programming environment, so if you are wanting to integrate an actor-based architecture with existing tools on the JVM, Scala is the way to go. But for systems where reliability is critical and the functionality is well defined and message oriented (e.g. tools like RabbitMQ), Erlang is clearly a good choice.

    Given his background, I don't think that Steve Vinoski would ignore the value of abstraction in the OO sense.

  • slides?

    by peter vr,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    where are the slides for 50 min+ ?

  • Is there a real distributed run-time Actor environment yet?

    by John S Wolter,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Is there a real distributed run-time Actor environment yet? Not yet in my bully-opinion. You need a distributed OS. Could Minix3's micro-kernel be a distributed starting point?

  • Re: Is there a real distributed run-time Actor environment yet?

    by Serge Bureau,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Akka is and is using a JVM, much more versatile and pervasive than Minix.

    Available for Java and Scala, but being on a JVM means it can be used by any JVM base language.

  • Re: Erlang ???

    by Serge Bureau,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Simplicity ?

    Having a very low level toolkit does not mean simplicity.
    Also the level of abstraction in Scala is much higher than standard OO languages.

    Some features of Erlang are nice, but most of the code brings us back to the 1970's

    Where are the tools to analyse code in Erlang ?
    It is not even structured to the old Pascal level !

  • Re: Is there a real distributed run-time Actor environment yet?

    by John S Wolter,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    The Actor model is about concurrency. The JVM runs in a process, mostly a single process. SCALA simulates an Actor model on the JVM. Start here on Wikipedia..

    en.wikipedia.org/wiki/Actor_model

  • Re: Erlang ???

    by John S Wolter,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Serge is right, Actors are a low-level concurrency model as described in this Wikipedia article that includes historical information...
    en.wikipedia.org/wiki/Actor_model

    An Actor is a _very_low-level_ entity used to compose a concurrency scheme that is discussed here in this Wikipedia article...
    en.wikipedia.org/wiki/Actor_model_theory
    ...it appears it might simplify distributed concurrency and or computation.

    As discussed it began in 1973, some attributed ideas go back as far back as the late 1950s. The work that finalized the model of all the initial work was complete here at the University of Michigan College of Engineering(Ann Arbor,MI)and at MIT(Cambridge,MA). A joint PhD committee of knowledgeable computer scientists was formed to review the thesis work of Gul Agha, see...
    en.wikipedia.org/wiki/Gul_Agha_(computer_scientist)
    ..and thus he did get his PhD for the Actors model through MIT.

    See: Gul Agha (1986); "Actors: A Model of Concurrent Computation in Distributed Systems", Doctoral Dissertation. MIT Press.

    SCALA introduces some high level ideas that utilize Actor like primitives. It is a useful exercise. The real benefit will come with more study of the Actor model. SCALA runs within a JVM process simulating what could be the future.

    You will find the story does not end here. Actors and concurrency remain a very active area of study and practice.

    How would you build an truly huge distributed Actor implementation and for what computational purpose? How about a 1,000,000 ARM SoC machines with MINX3 and userspace Actor stacks? How would you design a language to program such a machine? Maybe a completely different type of CPU is needed?

    Cheers,JSW

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT