Ask HN: How much was Python used from 1991 to 2006? What for?
I started using Python full time in 1998 for cheminformatics. One of the first projects I did was to make a high-level&#x2F;&quot;Pythonic&quot; interface to an existing C library. I described it in Dr. Dobb&#x27;s Journal, at <a href="https:&#x2F;&#x2F;www.drdobbs.com&#x2F;cpp&#x2F;making-c-extensions-more-pythonic&#x2F;184404439" rel="nofollow">https:&#x2F;&#x2F;www.drdobbs.com&#x2F;cpp&#x2F;making-c-extensions-more-pythoni...</a> .<p>Going back in time to 1994, we had a molecular dynamics visualization tool called VMD. It had a home-grown scripting language. I had ideas for a new programming language designed for molecular modeling (because &quot;tiny languages&quot; was the Unix philosophy I had picked up). After looking around, I realized 1) I didn&#x27;t know how to really make a new domain-specific programming language, and 2) there were existing programming languages that could be embedded in an application, and extended with domain-specific features.<p>I choose Tcl, because it was a very similar, but better, than our home-grown scripting language. And it was easy for people to learn. (Yes, easier than Python.) I considered Python, but was thrown off by the whitespace. And Perl wasn&#x27;t a good fit. (Perl 4 C extensions were hard to do).<p>Instead, another visualization package, UCSF&#x27;s Chimera, was the first to have Python integration. In ... the mid-1990s?<p>In 1997 I was doing more Perl work for bioinformatics. I had to read the advanced Perl book to figure out Perl5 objects. I wrote the equivalent program in Python, and it was just so much easier, even for a neophyte Python programmer. But bioinformatics at the time was Perl-oriented (see &quot;How Perl Saved the Human Genome Project&quot;  - the author, Lincoln Stein, also wrote CGI.pm and developed ... OraPerl was it? One of the Perl4 branches with RDBMS support), and a Python product in that market was a no-go.<p>In 1998 I had the chance in a greenfield project to start with Python. Like I said, we used a C library, the Daylight toolkit, which has an object-like data model exposed as opaque integer handles. Python&#x27;s support for C extensions was outstanding, Dave Beazley had already shipped SWIG, which simplified the process, and Roger Critchlow had developed &quot;DaySWIG&quot; to generate binding for Tcl, Python, and Perl.<p>But that meant programming at the C level, including garbage collection. Something like 20% of the Daylight toolkit calls were to &quot;dt_dealloc()&quot;, to have the Daylight toolkit free an &quot;object&quot;. Attributes were function based, eg, dt_charge(atom) instead of atom.charge.<p>My high-level interface replaced manual garbage collection with Python&#x27;s, which was a perfect fit for Python&#x27;s reference count system. And I used __getattr__ and __setattr__ to make object properties accessible via attributes.<p>This quickly became the base for chemistry development in the company because it was so much easier than using the C library API. (FWIW, the company was doing machine learning in the late 1990s. I mostly worked on the parts which integrated the ML tools to molecular structure. <a href="https:&#x2F;&#x2F;patents.google.com&#x2F;patent&#x2F;US6904423B1&#x2F;en" rel="nofollow">https:&#x2F;&#x2F;patents.google.com&#x2F;patent&#x2F;US6904423B1&#x2F;en</a> is a patent showing some of the times of ML done. The part &quot;A more representative feature of the molecules is the maximum common substructure (MCS) that is contained in all of the molecules in a hot spot&quot; uses MCS code I started.)<p>I still kept in touch with bioinformatics. In 2000 I co-founded (with Jeff Chang) the Biopython project. Python was starting to make in-roads in bioinformatics, mostly in labs that didn&#x27;t already have a strong Perl presence.<p>Perl never had a strong presence in biomolecular or pharmaceutical structure software, I think because expressing graph data structures (where nodes are &quot;atom&quot; objects, with atom properties, and edges are &quot;bond&quot; objects, with bond properties) was much header in Perl than Python.<p>Another company, Combichem, used Python extensively in-house as a replacement for shell scripting. That is, their user base wanted commands which accepted filenames as input and output, rather than passing Python data structures around. They also used Python (backed by wxPython) to build GUI tools. Several people left Combichem and started Rational Design, with a new code based influenced by their experience with Combichem. That code still exists as RDKit (&quot;RD&quot; = &quot;Rational Design&quot;).<p>I started getting consulting jobs because I knew Python and pharma&#x2F;biotech companies wanted people with Python experience. I worked on a projects for AstraZeneca in Sweden to integrate a large number of molecular property prediction tools into a CGI (!) application. That had to work with command-line executables, Perl programs, R libraries, NumPy analyzes, and more. See <a href="https:&#x2F;&#x2F;www.python.org&#x2F;success-stories&#x2F;python-for-collaborative-drug-discovery&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.python.org&#x2F;success-stories&#x2F;python-for-collaborat...</a> .<p>So for me, I would say much of pharmaceutical early drug discovery R&amp;D was using Python by 2006. Certainly by 2002 or so I didn&#x27;t get had to explain what Python was at conferences.<p>For another talk about Python in the physical sciences in the 1990s, see Dave Beazley&#x27;s talk (yes, the same Beazley) at <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=4RSht_aV7AU" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=4RSht_aV7AU</a> . (&quot;Keynote talk, presented live at PyData Global, October 28, 2021.  In this talk, I give an oral history from the early days of scientific Python and describe how Python ended up being used on a Supercomputer at Los Alamos.&quot;)