Make everything as simple as possible, but not simpler. --A. Einstein
Being addicted to dynamically typed languages such as Python, my main motivation is to write simple code for experimentation purpose: smallest possible demonstrators. (Due to brain limitations managing complex systems is not feasible.) Moreover, this page is not intended at improving your life, just to share some personal developments (more for the concepts than for the technology). And for the moment, the software provided here lacks real tutorial (sorry for that). If a piece of software interest you but you find it lacks information / functionalities, do not hesitate to contact me.
The software available here is provided "as is", without any warranty, and under the GNU General Public License except otherwise specified.
Research in software engineering allows to be a developer at the same time you are a research scientist and teacher / supervisor. I like it.
Python, and similar languages, allows both to quickly craft software prototypes and to develop large applications. Software is more easily kept concise using such languages. A second aspect is that once written, a python module may be re-written using C or C++ (or even Java when using Jython) if efficiency becomes a problem (or for any other reason).
Python is then a good support for iterative development, allowing to provide a solution and then to improve it. Python can also be used for the integration of newly developed as well as existing components (as a duct tape language).
Finally, Python code is often 5 times smaller than Java or C++ one (for the same purpose) and is considered to be few times faster to develop than Java (that is also considered to be few time faster to develop than C++), and I am quite a lazy guy (referring to the PerlFolklore ).
A software component is a piece of software small enough to be created and maintained, and big enough to be installed and supported. --J.Harris
I found "a few 100 lines of code" a good limit to set for software component implementations (speaking of Python, modules can be seen as components). When reaching this limit, either code re-factoring should be achieved, or the current piece of software has to be split several components.