Hi Matt,
Thanks for your message. I can't really comment on what happened in the past as I was not involved. Sorry for the frustrations, but I have been there myself. It's never easy working in teams, let alone in such volatile environments like open source. To maintain quality in OpSim development and keep people involved I find this to be one of my main tasks to concentrate on after I firm up the foundation of the code. In my opinion a more structured approach, demonstrated in my work towards modularizing OpSim, and posting articles on progress (and later on decent proposals and reviews regarding changes of the code), will lead to a better alignment of the team (once / if there will be volunteers to join :) ).
Regarding your question on classes vs records, please check my WIP branch on sourceforge:
https://sourceforge.net/p/opsim/code/HEAD/tree/branches/opsim_darius/classes/There's a readme in that folder with some test results. The overall conclusions are pasted in below in this e-mail You can check the test out from SVN and try for yourself if you like. I was not planning on writing an article on this, unless there will be requests.
Regards, Darius
The results from these tests indicate that records take up about 30-45% less
RAM. Creating records is 1,5 to 6 times faster and assigning values is 2.3 to 4
times faster. The creation time is less critical as this is typically done once
(when loading a file) for large amounts and the overall time is relatively short
for both methods. However assigning values is done regularly by the solver and
in great amounts and can amount to a noticeable or even annoying lag of the UI.
Also the amount of memory used is important as large models can lead to memory
paging which lead to a significant drop in performance.