Re: [OpenBabel-Devel] Proposal for a modern C++ codebase
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
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
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
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
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
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