Porting polyenum to C++

Issue #13 resolved
Alexandre Blondin Massé created an issue

This needs to be discussed. I have started a branch about this.

Comments (5)

  1. Simon Désaulniers

    After discussing together, here are the points we have brought to light that seem to motivate the team to change.

    The team developed polyenum using Python and Cython languages. The project achieved a certain point where changing from Cython to C++ appeared to be simpler than maintaining the Cython code.

    Cython

    Advantages

    • Code is already written and is working...

    Drawbacks

    • The whole idea of wrapping C/C++ code in python becomes a headache to maintain as the project grows.
    • OpenMP may not include all functionnalites in Cython. This is relying on Cython's pyrex parser to produce valid C/C++/OpenMP code that would then be processed by OpenMP's C/C++ parser.
    • Some parts are hard to optimize for performance purpose, either since Cython does not allow it or since the developpers do not know it well enough.
    • Cython is a young language that evolves fast. Therefore, our code would rapidly become out-of-date.

    C++

    Advantages

    • Maintaining code written in a single language is simpler and avoids multiple problems like context conflicts, debugging issues.
    • Parallelization technologies are surely more supported and numerous. For e.g. OpenMP is really well supported on C++.
    • Easier to have optimal performance.
    • C++ is a stable language.

    Drawbacks

    • The code has to be rewritten...
  2. Simon Désaulniers

    Porting to C++ should be an ideal moment for addressing issue #11. Obivously some points in #11 won't apply, but may serve as warning during the writing of the code.

  3. Log in to comment