comp.lang.ada
 help / color / mirror / Atom feed
From: Marc C <mc.provisional@gmail.com>
Subject: Re: Ada-Python demo
Date: Mon, 15 Jul 2013 10:44:23 -0700 (PDT)
Date: 2013-07-15T10:44:23-07:00	[thread overview]
Message-ID: <37347a9a-51f5-4a00-bc28-5e2daa8043e3@googlegroups.com> (raw)
In-Reply-To: <a976d7cd-8571-4bd1-8375-9008aaee12bf@googlegroups.com>

On Saturday, July 13, 2013 4:06:31 PM UTC-5, Maciej Sobczak wrote:

> Heck, I cannot agree with this. Both JSON and ZeroMQ is just low-level mess.
>
> You might want to read this:
>  
> http://www.inspirel.com/articles/YAMI4_vs_ZeroMQ.html
> 
> I also find it disturbing that you consider JSON to be appropriate on the Ada side. What about this:
> 
> http://www.inspirel.com/yami4/book/10.html
> http://www.inspirel.com/yami4/book/10-2.html
> http://www.inspirel.com/yami4/book/10-4-1.html
>
> YAMI4 allows you to write your next (!) distributed system without sacrificing the advantages of Ada. Integration with the Ada tasking model and type safety are features that you should be asking for.

YAMI4 is a perfectly fine distributed messaging system, I've got no argument with its strengths and capabilities, and it has clearly been put to excellent use.

The messaging interfaces I'm referring to here are *very* simple. Nearly all of the handful of commands consist of a Target_ID (String), Command (String), and Associated_Data_Item (String). The response/broadcast messages consist of Source_ID (String), Error_Status_Message (String), and Data (String). This is *all* that's needed for these applications. Should more complex interaction be required, the messaging infrastructure decision would be reevaluated.

ZeroMQ has an Ada binding (http://www.zeromq.org/bindings:ada), around which I wrapped a thicker binding, TOMI_4_Ada (http://sourceforge.net/projects/tomi4ada). So it's perfectly comfortable being integrated into a multi-tasking Ada application.

Maintaining an IDL (or a YDL), performing code generation, and integrating the generated code skeletons into the app is way more than what's needed here given the minimal requirements and the tools that are already at hand.

At some point the app may be distributed, and the desire is to leave open the possibility of customers writing their own site-specific viewers and controllers.  It's much easier to tell them then can leverage their own in-house JSON expertise over the well-known ZeroMQ protocol, than tell them they have to acquire YAMI4 and either go GPL or purchase a license.

While we're fully comfortable with full GPL for applications, we don't like it for utilities/libraries/infrastructure type things. LGPL, GMGPL or some variant thereof is much preferred. While YAMI4 provides a Boost license for some fee, the accompanying dedicated technical support, while surely valuable to those who need it--is not needed for these apps.

With a simple interface, capable bindings readily available, and no license management to worry about, JSON over ZMQ was an easy decision for these particular applications.

YMMV.

Marc A. Criley

      parent reply	other threads:[~2013-07-15 17:44 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-11 21:12 Ada-Python demo Maciej Sobczak
2013-07-12  5:57 ` Gour
2013-07-12  7:53   ` Maciej Sobczak
2013-07-12  8:33     ` Thomas Løcke
2013-07-12 10:40     ` Gour
2013-07-12 12:56     ` Marc C
2013-07-12 15:51       ` Gour
2013-07-12 17:11         ` Marc C
2013-07-12 19:16           ` Gour
2013-07-13 21:06       ` Maciej Sobczak
2013-07-15  6:43         ` Peter Brooks
2013-07-15  7:44           ` Georg Bauhaus
2013-07-15  8:10           ` Maciej Sobczak
2013-07-15  9:16             ` Peter Brooks
2013-07-15 17:44         ` Marc C [this message]
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox