[nanomsg] Re: Introduction and questions

  • From: Gonzalo Diethelm <gonzalo.diethelm@xxxxxxxxx>
  • To: nanomsg@xxxxxxxxxxxxx
  • Date: Sat, 22 Jun 2013 12:24:56 -0400

Hi Ondra,

As I mentioned, it was JeroMQ that put this idea in my head. I was
convinced the proper way to add support for ZeroMQ in other languages was
through bindings. However, the Java way to do this (through JNI) is very
cumbersome and forces you to have a native library as a bridge between
ZeroMQ and your Java program. Another alternative would be JNA, but its
performance was not very good.

Anyway, when JeroMQ appeared, one of the most popular features it provided
was getting rid of all native libraries (including ZeroMQ!). This is very
convenient for embedded platforms, such as Android. This approach has
remained in the back of my head ever since.

From a different vector, so to speak, I have been reading about and playing
with Go for some time. It is the first language in a long time that has got
me excited enough to invest some serious time in it. One of Go's main
features, that you probably are very aware of, is concurrency support
through goroutines and channels. That got me thinking: it seems Go would be
a great fit for implementing the message-based inner workings of ZeroMQ.

Finally, since I have not used ZeroMQ in some time, I am interested in a
project such as nanomsg, that tries to distill the ideas in ZeroMQ to the
deepest possible simplicity and orthogonality.

There you have it. Throw everything together and the idea of a nanomsg
implementation directly on Go seems like a good idea. Of course, I may be
wrong.

Disclaimer: I have not even looked at your Go binding for nanomsg, and
don't know what kind of support is provided by Go to interact with C code.
Perhaps this all works out so well that my idea of nanomsg written with Go
has no appeal at all. If this is the case, it only shows I still have some
more learning to do...

Best regards.

On Sat, Jun 22, 2013 at 6:15 AM, Ondrej Kupka <ondra.cap@xxxxxxxxx> wrote:

> Hello everybody,
>
> On Jun 22, 2013, at 5:49 AM, Gonzalo Diethelm wrote:
>
> Hello Martin et all,
>
> I have been recently reading about nanomsg with a lot of interest; it is
> nice to find my name linked somehow to the history of ZeroMQ and nanomsg,
> as little as my contribution (or my organ-playing abilities!) may have
> actually been. Thank you Martin for the good memories!
>
> Somehow nanomsg managed to fly below my radar... I have a couple of
> questions regarding the project:
>
> 1. Is it intended to support Win32 and Linux / UNIX as "first class
> citizens"? I am referring in particular to "ipc://" support under Win32.
>
> 2. Related to #1: is nanomsg based on AIO or is it based on poll / epoll /
> whatever?
>
> 3. Given the engineering roots of the project, would you say it should be
> easier to delve into the code of nanomsg, than to do the same for 0mq? I
> expect the answer would be "yes", but wanted to confirm. Is there any
> architectural documentation / diagrams that could help a newbie get on
> board?
>
> 4. Is anybody working on a Java binding for nanomsg? If not, I think I can
> cook something up in a short period of time, if there is interest.
>
> 5. Has there been any discussion about reimplementing nanomsg on a
> different language, rather than implementing a binding for that language? I
> take this idea from JeroMQ, which implemented the whole of ZeroMQ in Java,
> bypassing the need to create a JNI binding, depend on a native library,
> etc. I admit I used to think this was the wrong approach, but I am not so
> sure anymore... Anyway, I would be interested in exploring this alternative
> for Go, if nobody is doing this.
>
>
> I am interested in both Go and nanomsg. Unfortunately I don't really have
> that much time to have this kind of fun these days, like rewriting nanomsg
> in Go, but I will watch it with excitement if someone does that :-) Just
> curious - how did this idea came up your mind, Gonzalo? I am not saying
> it's crazy, just curious about the reasons…
>
> Cheers,
> Ondra Kupka
>
> Thanks and regards,
>
> --
> Gonzalo Diethelm
> gonzalo.diethelm@xxxxxxxxx
>
>
>


-- 
Gonzalo Diethelm
gonzalo.diethelm@xxxxxxxxx

Other related posts: