The constant and speedy progress made by humankind in the industrial revolution,
and more recently in the information technology era can be directly attributed to
sharing of knowledge between various disciplines, reuse of the knowledge as science
and technology advanced, and inclusion of this knowledge in the curriculum.
The phrases “do not reinvent the wheel” and “to stand upon the shoulders of giants”
come to our mind as representative of this thought process of using existing solutions
and building upon existing knowledge, but at the same time contributing to the
society as a whole.
It was with this intention of documenting existing (circa 2010) Open Source
Tools for Scientists and Engineers, that I set about to write this book. Computer
technology has progressed at such a fast pace that it is difficult (nary impossible) to
catalog all of the existing software systems which are available to us. To simplify
our task I have chosen a representative software to solve a class of problem. Where
space and time permitted I have provided alternatives as well.
A key benefit of using open-source applications is that the code can be compiled
on a system which is non-standard. Or, it can be compiled with CPU specific optimizations
which a general purpose binary released from an ISV cannot assume. As
CPU technology advances rapidly, and software has a longer lifespan, the ability to
recompile the source code becomes more and more important. The same can be said
with open-source implementations of data-standard in image processing, and documentation
retrieval. In this media focused era, more and more content is being stored
as digital data. Unlike, paper, whose archival properties have been refined over centuries,
digital media has not gone through the same process of archival management.
In situations where data archival is necessary, a key component is the persistence of
the key software components which read and write the digital data files. Since no
one can predict the computers of the next century, open-source software is essential
to long term archival of information.