Skip to content

v1.0.0 Roadmap #30

@jdantonio

Description

@jdantonio

The other day @chrisseaton suggested to me that we should begin to plan what 1.0.0 will look like. I think this is an excellent idea. When I started this gem I was just creating a bunch of tools that I thought might be useful. I did not plan a feature set. I am open to all ideas and suggestions. We will use this thread to collectively create a new roadmap.

Below are a few things I would like to accomplish on the way to 1.0.0. These ideas are just a starting point.

Simple, Robust Actors

The actor model is becoming a very popular approach to concurrency. As an Erlang programmer I am partial to Erlang's processes, but they are tightly coupled to features of the Erlang runtime that we can't do in Ruby. I'd like an Actor implementation that supports a couple of key features:

  • Supports both local and remote messaging
  • Pluggable transport layer for remote actor
  • Supports supervision
  • Simple, fluent, and easy to use (no deep coupling and unnecessary internal complexity like many actor frameworks)

More Low Low Level Abstractions

There are many advanced concurrency abstractions in other languages that provide powerful, unique features. These abstractions may not have the broad appeal of Future but they make for an excellent "toolbox" for concurrency. They are also great building blocks for the high level abstractions. I'd like to see more of these in the gem. Some examples include:

More JRuby Optimizations

I hope this gem always remains interpreter-agnostic and I plan to always test against MRI/CRuby, JRuby, and Rubinius, but the JVM is definitely very friendly concurrency/parallelism. We've already implemented a few JVM-specific optimizations (AtomicFixnum and ThreadLocalVar) but I'd like to see us do this as often as possible.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions