3 min read

If there is one word that exclusively defines computing parlance, it’s the version. And that can be amusing if you are high on orthodox grammar. Because it takes 29 years for Windows to grow from version 1.01 to eventually the 10. So now that SciPy has released its version 1.0, developer community is abuzz with the question why the Python library took 16 years for such a nomenclature.

In SciPy’s case the 1.0 version number was long overdue. Given the high quality code and documentation, and the stability and backwards compatibility, a 1.0 label was guaranteed. But the best in the business are always humble (read perfectionist).

Despite being a mature and stable library that has been used in production settings for a long time, SciPy was reluctant in calling itself “1.0” because it believed it was not perfect, and that there were some dusty corners left. It is otherwise normal for open source projects to arrive with a 1.0 and proclaim “we are right up there.”

SciPy has a long history, during which it has matured as a software project. Largely been written by and for scientists, its development community has dramatically grown over the years. It has evolved from the same era when internet was just starting to bring together like-minded mathematicians and scientists. And many procrastinated their PhDs to write extension modules for this Python library – all this when email was how you helped a project improve, long before Github arrived with its “patch” collaborations and inputs.

“The existence of a nascent Scipy library, and the incredible – if tiny by today’s standards – community surrounding it is what drew me into the scientific Python world while still a physics graduate student in 2001,” says a nostalgic Fernando Perez who is a proud SciPy author, “Today, I am awed when I see these tools power everything from high school education to the research that led to the 2017 Nobel Prize in physics.”

In SciPy 1.0, there are some major build improvements. Windows wheels are available on PyPI for the first time, and continuous integration has been set up on Windows and OS X in addition to Linux. It has a number of deprecations and API changes. But another standout statement from the release is the announcement of a formal governance structure. Now, SciPy consists of a BDFL (Benevolent Dictator For Life) and a Steering Committee. Pauli Virtanen is currently the BDFL.

Reminiscing the timeline

– 2001: the first SciPy release

– 2005: transition to NumPy

– 2007: creation of scikits

– 2008: scipy.spatial module and first Cython code added

– 2010: moving to a 6-monthly release cycle

– 2011: SciPy development moves to GitHub

– 2011: Python 3 support

– 2012: adding a sparse graph module and unified optimization interface

– 2012: removal of scipy.maxentropy

– 2013: continuous integration with TravisCI

– 2015: adding Cython interface for BLAS/LAPACK and a benchmark suite

– 2017: adding a unified C API with scipy.LowLevelCallable; removal of scipy.weave

– 2017: SciPy 1.0 release

In any case, don’t be fooled by the 1.0 number. The developer community that has contributed to and nurtured SciPy for nearly two decades will keep driving forward the project that has been the bedrock of modern scientific computing ecosystem. For as the current BDFL says, not long after 1.0 comes 1.1.

Writes and reports on lnformation Technology. Full stack on artificial intelligence, data science, and music.


Please enter your comment!
Please enter your name here