[zeromq-dev] Porting libzmq to C++11

Michael Powell mwpowellhtx at gmail.com
Thu May 18 19:34:31 CEST 2017


So you're going to **force** users to move from older platforms such
as AIX or Windows XP? Good luck with that.

On Thu, May 18, 2017 at 1:05 PM, Harald Achitz <harald.achitz at gmail.com> wrote:
> not libzmq11 but libzmq117 targeting libzmq20 and beyond, and I mean this
> seriously,
> I am glad someone asks this question.
>
> It is not about fashion, being cool or using the latest and greatest.
> If  you know what modern C++ gives you, on secure and fast code, than
> everything is clear to you.
> If you have not learned - or see the reason - why, discussions here about
> the advantage are pointless.
> I know this discussion from work, and from other places. Its always the
> same.
> At the end, the modernized code is always better. Shorter, more clear, more
> secure, less error prone
>
> just m2c
> /Harald
>
>
>
>
>
>
> 2017-05-18 11:55 GMT+02:00 Doron Somech <somdoron at gmail.com>:
>>
>> I suggest porting and not rewrite, a lot of rewrite attempts failed
>> before.
>> Rewrite takes years to stabilize and usually users don't see the benefit
>> from switching when they are happy with the current version.
>>
>> Who is taking the lead and forking libzmq?
>>
>> On Thu, May 18, 2017 at 11:57 AM, Aram Santogidis
>> <aram.santogidis at cern.ch> wrote:
>>>
>>> Hi,
>>>
>>> a good reason to modernize the codebase, or even better to create a new
>>> project ala libzmq11, is to help its evolution with new networking
>>> technologies and software engineering practices.
>>>
>>> As an example, consider the difficulties many faced (including myself) in
>>> extending ZeroMQ to support RDMA-based networking interfaces. The current
>>> design and implementation is hostile to such extensions. Honestly, C++98 or
>>> not, I think it still can be done but with major cost in development effort
>>> and additional complexity to an already complex codebase.
>>>
>>> Moving to C++11 and beyond is not merely an argument of fashion, as some
>>> of you implied, but it is vital for its future.
>>> C++ and related technologies evolve and libzmq stays behind. New
>>> developers are reluctant to contribute once they have a look at the current
>>> design and implementation (old school C++ roughly speaking).
>>>
>>> Think for example when networking will be included in the standard, how
>>> much ugly code that juggles platform differences could be eliminated from
>>> the current implementation. Same applies for threading, which is in the
>>> standard since C++11.
>>>
>>> I don't underestimate the importance (and the size?) of the current
>>> userbase. I'm aware from first-hand experience about some fairly critical
>>> software that relies on libzmq.
>>>
>>> I guess the idea is to create i) a new project in the ZeroMQ organization
>>> that ii) implements ZMTP and iii) the non-depricated ZMQ socket types. The
>>> public API of libzmq should be a subset of the libzmq11 so that will
>>> facilitate the transition of users, in the long term, that do not run on
>>> legacy systems.
>>>
>>> I will happily contribute to such an effort provided that there will be
>>> at least one or two experienced members from the community that will join
>>> this effort.
>>>
>>> Cheers,
>>> Aram
>>>
>>>
>>>
>>>
>>>
>>> On 17.05.2017 16:54, BJovke . wrote:
>>>>
>>>> Well, you're right. There must be a good reason for such an undertaking.
>>>> I too feel that C++11 itself is not good enough reason.
>>>> Anyway there has to be enough people willing to contribute to it.
>>>>
>>>> I was just saying this because no idea should be discarded right away,
>>>> but for sure there needs to be a valid need and reason for it.
>>>>
>>>> Greetings.
>>>>
>>>> 2017-05-17 16:15 GMT+02:00 Doron Somech <somdoron at gmail.com
>>>> <mailto:somdoron at gmail.com>>:
>>>>
>>>>     What will be the benefit from moving to C++11? And more important
>>>>     what is the benefit from having two projects? one supporting C++11
>>>>     and one not?
>>>>
>>>>     I think that maintaining two repositories is hard and not sure for
>>>>     what cause?
>>>>
>>>>     Anyway, if some one want to do it, in the zeromq philosophy, please
>>>>     fork and add the project to the zeromq organization.
>>>>
>>>>     On Wed, May 17, 2017 at 4:29 PM, <lists at chuckremes.com
>>>>     <mailto:lists at chuckremes.com>> wrote:
>>>>
>>>>
>>>>         > On May 17, 2017, at 7:56 AM, BJovke . <bjovan at gmail.com
>>>> <mailto:bjovan at gmail.com>> wrote:
>>>>         >
>>>>         > Hello.
>>>>         >
>>>>         > Libzmq is not even fully C++ compliant:
>>>>         >   - There's no exception handling.
>>>>         >   - There are no RAII principles implemented.
>>>>         >   - Parent/child object hierarchy is loose or not implemented,
>>>> all of the burden of proper order of calls is on programmer.
>>>>         >
>>>>         > And so on...
>>>>         >
>>>>         > C++11 is really a remarkable feat of engineering and me
>>>> personally like to see fully C++11 implemented software.
>>>>         > Unfortunately, for libzmq this would require substantial
>>>> rewrite of the library.
>>>>         >
>>>>         > Maybe there's an option to create another parallel branch to
>>>> existing libzmq or even create another product, for example "libzmq11"?
>>>>         > On the wire this could be 100% compatible with non-C++11
>>>> libzmq but there would be 0% chance to compile older projects with it.
>>>>
>>>>         This is a good time to bring out some old blog posts. Martin
>>>>         Sustrik was the original developer of libzmq. He had some
>>>>         thoughts on why he should have written the library in C instead
>>>>         of C++. Here you go:
>>>>
>>>>         http://250bpm.com/blog:4
>>>>
>>>>         http://250bpm.com/blog:8
>>>>
>>>>
>>>>
>>>>         _______________________________________________
>>>>         zeromq-dev mailing list
>>>>         zeromq-dev at lists.zeromq.org <mailto:zeromq-dev at lists.zeromq.org>
>>>>         https://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>>>         <https://lists.zeromq.org/mailman/listinfo/zeromq-dev>
>>>>
>>>>
>>>>
>>>>     _______________________________________________
>>>>     zeromq-dev mailing list
>>>>     zeromq-dev at lists.zeromq.org <mailto:zeromq-dev at lists.zeromq.org>
>>>>     https://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>>>     <https://lists.zeromq.org/mailman/listinfo/zeromq-dev>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> Jovan Bunjevački.
>>>>
>>>>
>>>> _______________________________________________
>>>> zeromq-dev mailing list
>>>> zeromq-dev at lists.zeromq.org
>>>> https://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>>>
>>> _______________________________________________
>>> zeromq-dev mailing list
>>> zeromq-dev at lists.zeromq.org
>>> https://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>
>>
>>
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev at lists.zeromq.org
>> https://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> https://lists.zeromq.org/mailman/listinfo/zeromq-dev



More information about the zeromq-dev mailing list