From: Geoffrey H. <geo...@gm...> - 2015-04-27 18:15:12
|
> 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 |