There was a little twitter chat over the weekend regarding an attempt at 
writing a ground-up zeromq library using the new systems language Rust. If you 
haven’t heard of Rust, it is a new language under development by the good folks 
at Mozilla. It’s original designer has said that he has learned quite a few 
things from implementing dozens of languages over the years that he felt he 
could solve some new problems and create a cleaner language. Rust is his 
attempt at such a feat.

It supposedly solves the problem by borrowing the best from many popular 
languages.

        * OOP of C++ without the large, unwieldy syntax

        * performance of C while providing good namespacing, OOP, safe memory 
(i.e. no dangling pointers)

        * the functional expressiveness of Haskell but not at the expense of 
imperative forms

        * the massive concurrency of Erlang but with a better syntax and a more 
flexible memory model (borrowed pointers, immutable defaults, etc)

I recently did a small test project to learn the syntax. The language is still 
evolving, so it’s a bit of a moving target. It’s at release 0.9 with a 1.0 
slated for later this year, but they’ve already slipped on delivering a 1.0 for 
at least a year so I assume it will slip again.

Anyway, I’d like to volunteer to try and spike a simple example to get things 
started. However, I’d like to start a thread here to discuss “lessons learned” 
from the existing codebase. We already have a great write-up from Martin 
Sustrik (primary author of earlier versions of zeromq) here:  

http://250bpm.com/blog:4

http://250bpm.com/blog:8

I’m hoping that others who have read through the source have additional 
insights that they’d like to share. For instance, I have seen comments that 
zeromq might have more consistent performance it it was wrapped around a 
Disruptor (google for that pattern if it’s new to you). People also seem to 
really dislike the concept of the context (nanomsg has already eliminated this… 
it still exists but is hidden by the library).

Any other insights?

cr

_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to