Re: [OpenBabel-Devel] Proposal for a modern C++ codebase

2015-04-27 Thread Maciek Wójcikowski
Hello,
Just to add my 2c.

As an end-user/python/php dev:

   - removing obsolete/redundant code is always welcome
   - introducing Boost is quite heavy dependency, so you'd have to
   highlight the advantages to the community it will bring
   - i think that object serialization (for OBMol as a starter) would be a
   killer feature
   - The project should be developed under openbabel's name, otherwise
   people will be confused
   - I don't mid having additional bindings, especially that I'm probably
   only one to be using PHP bindings. I guess the question originated with
   Boost, and moving towards Boost.python? I think that SWIG extensions are
   desirable.



Pozdrawiam,  |  Best regards,
Maciek Wójcikowski
mac...@wojcikowski.pl

2015-04-27 12:20 GMT+02:00 Ryushiro Sugehara n.sakis...@gmail.com:

 Hi all,

 I've created an experimental fork to show a new codebase of openbabel:
 https://github.com/openbabel/openbabel/issues/154

 My codes are just a demo. It aims to show what will happen if you make a
 massive change on the interface.
 For further details please see the attached link above.

 Tell me what you think:
 - Removing legacy codes and writing new implementation creates many
 backward-incompatible changes.
   Which do you think is more appropriate: OpenBabel v3 or an another
 brand new project?

 - What do you think about introducing C++14 and the Boost library?

 - What do you think about dropping support on unpopular language bindings?
   I'm pretty sure that majority of users are using C++ or Python binding.


 Since the release has stopped for a long time, I think it's time to change.
 Nana Sakisaka


 --
 One dashboard for servers and applications across Physical-Virtual-Cloud
 Widest out-of-the-box monitoring support with 50+ applications
 Performance metrics, stats and reports that give you Actionable Insights
 Deep dive visibility with transaction tracing using APM Insight.
 http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
 ___
 OpenBabel-Devel mailing list
 OpenBabel-Devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/openbabel-devel


--
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y___
OpenBabel-Devel mailing list
OpenBabel-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-devel


Re: [OpenBabel-Devel] Proposal for a modern C++ codebase

2015-04-27 Thread David Koes
Eh. Most changes seem to be syntactic sugar (e.g., NULL-nullptr). What 
are the changes that bring actual value to the users/developers and why 
can't they be implemented without breaking compatibility?

You can have a great library written in C. Or Python. Or Haskel.  I 
don't see the fact that openbabel isn't C++14 in any way a negative. 
The question is there something in C++14 (or boost) that brings in 
enough value to justify the decreased compatibility?

For example, I think OBConversion should be rewritten to use boost 
filtering streams.  This has the advantage of eliminating significant 
memory leaks for some use cases and possibly improving performance. The 
disadvantage is you introduce a dependency.  But if you don't use boost, 
you basically have to reimplement its functionality.

Dropping language bindings is a horrible idea.  They are part of what 
makes openbabel so useful to a wide range of people.  At one point or 
another I have used the python, perl, or php bindings.

-Dave


Message: 6
Date: Mon, 27 Apr 2015 19:20:24 +0900
From: Ryushiro Sugehara n.sakis...@gmail.com
Subject: [OpenBabel-Devel] Proposal for a modern C++ codebase
To: openbabel-devel@lists.sourceforge.net
Message-ID:
CADL_a3H2pgGbRy=mmucce__ahby9zm_ftrhhkxayrjxquux...@mail.gmail.com
Content-Type: text/plain; charset=utf-8

Hi all,

I've created an experimental fork to show a new codebase of openbabel:
https://github.com/openbabel/openbabel/issues/154

My codes are just a demo. It aims to show what will happen if you make a
massive change on the interface.
For further details please see the attached link above.

Tell me what you think:
- Removing legacy codes and writing new implementation creates many
backward-incompatible changes.
   Which do you think is more appropriate: OpenBabel v3 or an another
brand new project?

- What do you think about introducing C++14 and the Boost library?

- What do you think about dropping support on unpopular language bindings?
   I'm pretty sure that majority of users are using C++ or Python binding.


Since the release has stopped for a long time, I think it's time to change.
Nana Sakisaka

--

--
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
___
OpenBabel-Devel mailing list
OpenBabel-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-devel


Re: [OpenBabel-Devel] Proposal for a modern C++ codebase

2015-04-27 Thread Michael Banck
On Tue, Apr 28, 2015 at 12:05:59AM +0900, Nana Sakisaka wrote:
 So I think it comes to a decision whether (1) you take a modern C++ impl
 and drop support for SWIG, or,
 (2) OpenBabel will oficially not support modern C++ features since it's
 gonna break the community.

Not that it counts for much, but I while I think there is probably
benefits in using more modern language features, it can also make
adoption more difficult.

Would your fork build and run on Scientific Linux 6, e.g.?


Michael

--
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
___
OpenBabel-Devel mailing list
OpenBabel-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-devel


Re: [OpenBabel-Devel] Proposal for a modern C++ codebase

2015-04-27 Thread Marcus D. Hanwell
On Mon, Apr 27, 2015 at 11:12 AM, Igor Filippov [Contr]
igor.filip...@nih.gov wrote:


 On 4/27/2015 11:05 AM, Nana Sakisaka wrote:
 Also, If you're using modern C++, it always comes with Boost library.

 Oh, my! Did I miss the memo?
 When was this announced?
 Careful with strong statements like this more often than not
 they are completely wrong.

I think I missed this memo too...

--
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
___
OpenBabel-Devel mailing list
OpenBabel-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-devel


Re: [OpenBabel-Devel] Proposal for a modern C++ codebase

2015-04-27 Thread Mathias Laurin
Dear Sakisaka,


This is also only my opinion, I am not an OB dev but only a user
who contributed fixes to whatever broke on me. But here it is.

Some of the changes you propose, like removing `using namespace
std` are cosmetic but it may be that you could get them into the
main repo without much trouble. You have some more changes like
changing `return(false)` into `return false` that do not hurt.
Same with const-ness as long as it does not break anything.

You could just try to prepare patches and submit them the
regular way and see what happens. You have done the work already
anyway.


For moving to C++14 or boost, this is different.


Many plugins are rather C-ish as far as I can see, but they work
well-enough or are fixable. I am personally also more a C++
person but I could nevertheless hack into two plugins I needed
to fix. For another one, I reported the issue and a maintainer
fixed it for me. I wrote one a bit more C++-ish and it was
accepted like that.

I would personally believe that this is good enough to most
users without a complete rewrite or change to a different
programming language.

As a user, I also believe that a shorter release cycle would
bring immensely more than a rewrite. There was a call for
release managers a short while ago.


But as I said above, this is just a user's opinion.


Best
Mathias


 On 27 Apr 2015, at 12:20, Ryushiro Sugehara n.sakis...@gmail.com wrote:
 
 Hi all,
 
 I've created an experimental fork to show a new codebase of openbabel:
 https://github.com/openbabel/openbabel/issues/154 
 https://github.com/openbabel/openbabel/issues/154
 
 My codes are just a demo. It aims to show what will happen if you make a 
 massive change on the interface.
 For further details please see the attached link above.
 
 Tell me what you think:
 - Removing legacy codes and writing new implementation creates many 
 backward-incompatible changes.
   Which do you think is more appropriate: OpenBabel v3 or an another brand 
 new project?
 
 - What do you think about introducing C++14 and the Boost library?
 
 - What do you think about dropping support on unpopular language bindings?
   I'm pretty sure that majority of users are using C++ or Python binding.
 
 
 Since the release has stopped for a long time, I think it's time to change.
 Nana Sakisaka
 --
 One dashboard for servers and applications across Physical-Virtual-Cloud 
 Widest out-of-the-box monitoring support with 50+ applications
 Performance metrics, stats and reports that give you Actionable Insights
 Deep dive visibility with transaction tracing using APM Insight.
 http://ad.doubleclick.net/ddm/clk/290420510;117567292;y___
 OpenBabel-Devel mailing list
 OpenBabel-Devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/openbabel-devel

--
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y___
OpenBabel-Devel mailing list
OpenBabel-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-devel


Re: [OpenBabel-Devel] Proposal for a modern C++ codebase

2015-04-27 Thread Geoffrey Hutchison
 So I think it comes to a decision whether (1) you take a modern C++ impl and 
 drop support for SWIG, or,
 (2) OpenBabel will oficially not support modern C++ features since it's gonna 
 break the community.

You can certainly write modern (C++14) and use SWIG.

You can support modern C++ and not break older compilers. (And that's hugely 
important.)

The license of course allows you to fork the code. I think several people are 
trying to suggest that there are alternative approaches and if you're willing 
to do the work, we have some good suggestions.

 The question is there something in C++14 (or boost) that brings in
 enough value to justify the decreased compatibility?


For example, David here is saying why spend the time on rewriting in C++14 or 
Boost when there are other things that could be very useful.

The move to Open Babel v2.0 involved creating OBConversion and was backwards 
incompatible. One key complaint that would be on an OBv3 agenda is numbering 
atoms from 0 instead of 1, which leads to numerous little annoyances in the 
code itself.

Heck, there's a huge pile of warnings and I'd be happy to give you access to 
the Coverity scan list. I can give you lots of very useful suggestions.

Oh, you also asked about dropping less-used language bindings. For one, people 
seem to keep asking for *new* bindings. SWIG requires very little work for at 
least an initial binding, although work like Pybel and Rubabel and the like are 
clearly big benefits. But consider that Open Babel has about 300,000 downloads 
from SourceForge (i.e., not counting Linux and BSD distributions). So if we 
dump something used by ~5% of users, that's ~15,000 people.

If you'd like to push towards a more modern codebase and submit patches, they 
will be gratefully welcome.

Cheers,
-Geoff--
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y___
OpenBabel-Devel mailing list
OpenBabel-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-devel