It's been 2 weeks since my last project update so I guess I'll document what I've been up to. Previously I was debating whether to stick to Python or move to C++, Java, or some other language. I have decided to write the core Common Ground application in C++ for the performance boost of a compiled language but implement the modules in Python for a number of reasons.
- Python does not require a toolchain and compiler to be setup which makes it easier to write and modify modules as only a text editor is needed.
- If a shared library was used, source code would have to be distributed separately since the shared library is already compiled.
- Python is platform independent and does not require cross compiling like a shared library.
- Python is generally easier to read and write to non-programmers.
With these design choices in mind, I have been developing the core Common Ground application. Evidently, I remember more C than C++ and pretty much had to relearn the object oriented aspects of the language which was a huge time drawback. Because of that and the limited time I have to work on this project, I don't have as much implemented as I would like to yet. I have the core application framework, the mezzanine object, and a simple module for console data (still in C++, not Python yet) implemented. There is no user interface and any translation must be manually coded in and compiled. This leaves a nice to-do list of things to implement.
- Python module interpreter
- User interface for translation configurations.
- Config file for Common Ground configuration.
- Modules that actually do translation rather than console I/O
- Logging and debugging frameworks
Since there is so little usability yet, I am not going to upload the code yet, but will instead give the horrible promise of sometime soon. Keep calm and code on!