Search code examples
javapythonprogramming-languagesbindingjava-native-interface

Programming language decision for C++ legacy project workflow


I have quite a lot of C++ legacy code modules from my colleagues, unfortunately poorly written. Each is doing a different job, but they are all GNU C++ code running under Linux.

I want to write a controller program, to make a singular C++ module for a workflow, for a very urgent demo. Also I need to write a front-end web-app allowing clients submitting jobs to the controller.

My main criteria are:

  • development speed (very urgent demo)
  • good binding with C++ (I have legacy code I do not want to rewrite in another language)
  • smooth introduction of new programming language to team (has some python, java and perl knowledge)

What programming language fits my needs best, and why?

Details:

I lean towards python for its perfect binding with C++, as writing JNI is too much work, and kind of obsolete nowadays. However, no one in my team is Python programmer; I do know some Python (no experience in server side programming at all). I have been developing Java EE apps last year, but I do not think JNI is a good solution. Only one team member knows some Perl, others are pure C++ programmers.


Solution

  • Noting the "very urgent demo" part, assuming that that would take about a month, depending on the complexity, I'd stick to the familiar. True, maintaining python would be easier in the end, and learning python should be a breeze, if you deem it viable.

    I'd say, have the team learn python and do the basic stuff, as you learn the deeper parts, you could build classes for them to extend/implement. That way, you get things done as they learn.