Hurdle #1

My first hurdle has been encountered, and I now have a decision to make which could alter the entire direction of my Project (if I let it).

Whilst researching Congealing algorithms, I have come across an Objective-C demo (found on the Congealing page) and also an adapted C++ implementation by the same team (hosted on Bitbucket).

Neither of these languages I am familiar with, so I must consider do I either:

1. Implement a Java version of the algorithm

  • Pro: if done well and tested I could possibly then go on to share with the world

  • Con: would this take me away from focusing on the final implementation? How long would this take me to implement?

2. Learn a new programming language (although I have briefly looked at C++ before)

  • Pro: Learning a new language! Wouldn't have to write out a whole new implementation of the Congealing algorithm...

  • Con: How long would it take me to grasp this new language? Would my final product be as good as it would be in Java?

This is something I will have to ponder on this week . I'll make sure to post about my decision once it has been made and talked over with my peers and supervisor.

Post Edit:

Whilst speaking through my issue with Charles Newey (https://assemblyco.de/), he suggested I looked at calling the Objective C / C++ code from the Java code. This was not something I had come across before, but you can ''wrap'' the code and create the necessary .java files. SWIG seems a popular choice on StackOverflow so I will discuss the viability of all the options with Neil and decide the direction to take.

At the moment using SWIG seems a good fit, however I will continue to research into alternatives (such as this JNA interface)'