Programming Language and ToolsCrossMgr is written in Python 2.x (http://www.python.org) using the wxPython toolkit (http://www.wxpython.org).Additional modules include:
Editor and IDEI use Stani's Python Editor (http://pythonide.blogspot.com/). It has a lot of good features but does not get in the way. It is also available for Windows and Linux, both of which I use regularly. ArchitectureCrossMgr is a straight-up desktop application. All data is kept memory resident. However, the program automatically saves the data after each change and at frequent intervals while running. Persistence is done with the standard cPickle functionality where Python objects are marshaled and written to disk in a file (no database). This runs extremely fast and has not shown to be a performance problem. New fields are added to objects in new versions. If an old data version is read and a new field does not exists (getattr(self, 'field', None) returns None), it is substituted with a reasonable default. This is the essence of "lazy compatibility". The program remains backwards compatible to its data for all versions. Queries and data manipulation are done on the in-memory objects through standard Python. |