This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Tool: Programming language trends in bioinformatics (2008–2025)

Hi all,

I analyzed programming language trends in bioinformatics using GitHub repository data from 2008 to 2025 to see how language adoption has evolved. The results show:

  • 2008–2016: C and Java were dominant
  • 2017: R became the most popular language
  • 2018–present: Python clearly leads

The rise of Python appears to be linked to the growth of machine learning, deep learning, and protein structure analysis, supported by robust ecosystems such as Biopython, scikit-learn, PyTorch, and TensorFlow.

Key takeaway: There is no permanent “best” language in bioinformatics. Language popularity shifts in response to new biological problems and emerging computational methods. Skills that transfer across tools and ecosystems tend to remain most useful.

The analysis is fully reproducible, with visualizations and Jupyter notebooks available https://github.com/jpsglouzon/bio-lang-race

I’m interested in feedback from the community; alternative ways to measure language adoption in bioinformatics; other trends or factors that might explain shifts in language usage

Thanks!

enter image description here

bioinformatics programming-languages

From the GitHub posting:

Repositories were identified using bioinformatics-related topics,

Can you clarify how this was done? You actually looked through the 100 results for each year (the most you can get from API per your posting) to decide which software was related to bioinformatics? Trying to infer results from just 100 repos from each year likely misses a lot of actual bioinformatics related software (unless I am missing something in the methodology).

I updated the readme.md with the following for clarification:

-- Bioinformatics repositories were identified, and GitHub star counts were used as a proxy for popularity. In practice, repositories were selected using the following criteria:

Stars: 10–5,000. An upper bound of 5,000 stars was applied because one of the most highly starred bioinformatics repositories, Biopython, typically falls within the 4k–5k range. Plotly was excluded and treated as an outlier due to its substantially higher star count (~24k).

Topic: bioinformatics. Only repositories explicitly tagged with bioinformatics in their GitHub topics were included.

Pushed: [year]-01-01 to [year]-12-31. The pushed field represents the date of the most recent commit. Years from 2008 to 2025 were selected to cover the full period of interest.

For each year, only the top 100 repositories ranked by star count were retained. Star distributions exhibit a long-tail pattern, where a small fraction of repositories accumulate most of the stars, while the majority have fewer than 50. Consequently, a limited number of repositories largely explains the observed popularity of programming languages. Including additional repositories is unlikely to significantly affect the cumulative star counts.

enter image description here

--

Considering all results could provide a more accurate picture of programming language popularity, while being unlikely to alter the overall trends.

While not a generalization, in my bioinformatics career of many years, I rarely starred GitHub repos (probably like majority of users). But you have to use a metric for selection and "stars" is likely the best one for GitHub (since GitHub does not track download numbers, or make them visible, if I recall right).

Can you also comment, if the top 100 entries were (almost?) always software packages/tools that were written for analysis/visualization of data (and were not things like workflow(s) and management programs, command line/R scripts, make files etc)?

Surprised not to see Rust here; am curious to know if it is taking the place of C for bioinf applications where performance and memory management are more important than the writability of interpreted languages like Python or R.

Rust has certainly taken off in the space of tools and libraries I actually use, and it has transformed how my lab develops software.

I have projects we have not yet ported, but I've basically put a moratorium on new C++ projects in the lab. Given the effort to develop performant, robust software in the two languages and the massive chasm in maintenance burden between the two, it's a no-brainer.

From what I can see, Rust is present, but not among the top 10.

Here are the stats over the whole list of programming languages for 2025:

enter image description here

3 answers

Hi,

Thanks for sharing the analysis and the reproducible GitHub workflow—this is a valuable contribution.

I agree with the overall trend you report, especially Python’s clear dominance since ~2018, driven by ML/DL and large-scale biological data analysis. I would add one clarification regarding the earlier period:

2008–2012: Alongside C and Java, Perl and R were heavily used in practical bioinformatics workflows (sequence parsing, scripting, and statistics), even if they were underrepresented in public GitHub repositories at the time.

2013–2016: Python adoption increased rapidly for pipeline development and automation, while R remained central for statistical analysis and visualization.

2017–present: Python emerged as the dominant general-purpose language, with R continuing to play a key role in omics analysis and C/C++ remaining important for performance-critical tools.

This suggests that language trends depend strongly on the measurement source (GitHub repositories vs. production pipelines, published tools, or training practices). These sources often capture different aspects of real-world usage.

Overall, I agree with the key takeaway: there is no permanent “best” language in bioinformatics—adaptability and transferable computational skills matter most.

Thank you for the clarifications. These results reflect the practical usage of programming languages in bioinformatics, including long-standing tools such as BioPerl and BioJava, which I used extensively before the widespread adoption of BioPython, for example.

One important caveat of this analysis is the timing of platform adoption. Although GitHub was launched in 2008, it was not broadly adopted by the bioinformatics community until around 2013. As a result, repositories tagged with the bioinformatics topic are essentially absent before that period.

As a side note, I conducted a similar analysis using Stack Overflow, leveraging question tags as topics. I observed a comparable pattern: there is almost no relevant data before 2013. Like GitHub, Stack Overflow launched around 2008, and it took several years before it became widely used by the community for knowledge sharing and question answering.

I did not include this analysis in the current work because Python was almost always the sole language tagged, which did not fully capture broader patterns of language adoption. Nonetheless, this remains an area of interest, and I can share the Jupyter notebook if helpful.

One thing to keep in mind is that “bioinformatics programming” is a catch-all term. It covers a wide range of tasks, and not all of them are well suited to the same languages. Some bioinformatics processes cannot realistically be implemented in Python because Python would be too slow for certain tasks. For example, operations as simple as decoding a FASTQ quality values or other low-level, highly iterative, function-call-heavy tasks would be many orders of magnitude slower than say C or Rust.

On the other hand, for data exploration and rapid prototyping, working in Python can be far more productive than lower-level languages.

In that sense, the survey likely reflects the nature of the analyses and, even more so, the expected deliverables, rather than “bioinformatics” as a discipline. The most performance-critical components tend to be implemented in languages like C, Java, or Rust, while exploratory analyses and downstream data analysis are commonly done in R and Python.

I completely agree. It is analogous to the distinction between global and local alignment: each task has its own appropriate tools and algorithms. This analysis captures global trends in programming language popularity driven by the most prominent bioinformatics subfields, rather than the local characteristics and needs of individual subdomains.

The rapid adoption of Python, for example, is likely driven by its lower barrier to entry (Python learning curve generally not as steep as R or even C/C++) and its widespread use in the ML/DL community compared to languages such as C/C++ and R (see Figure 2 in README.md). It is also worth noting that many C/C++ and even R libraries have been ported or wrapped in Python, increasing adoption while preserving the performance benefits of compiled languages. Among the most starred bioinformatics repositories on GitHub is BioPython, with more than 4.8k stars, further reinforcing Python’s role as a general-purpose language for core bioinformatics tasks such as sequence analysis.

From a more local perspective, it would be interesting to conduct a finer-grained analysis that maps bioinformatics subtopics to programming languages in order to better understand language evolution within specific domains; assuming sufficient and reliable subtopic annotations are available on GitHub.

Thanks for sharing. I have recently been trying to do something tangentially related to this as a side project. I had thought to use bioinformatics job postings key words/skills as a proxy for language adoption, so your use of GitHub repo stars is interesting.

I would imagine there is some selection bias resulting from the source of your measurements that likely penalizes languages like R while inflating the representation of Python. From my experience, Python documentation seems to be primarily hosted on GitHub repositories (or at least linked directly from it). For Python tools/pipelines, you usually have to visit the repo, which I would imagine leads to more stars.

For R, the bulk of informatics-related documentation for packages/workflows exists on Bioconductor/CRAN, so they do not incentivize repository starring. I assume most R users tend to just look at the vignette of whatever package they are working with, and hence are less likely to visit or star the associated repository.

Yes, this analysis is not free from bias. For example, GitHub stars measure popularity rather than quality; a repository or programming language with fewer stars is not necessarily inferior. In many cases, it reflects niche use cases or specialized subfields where a language may be critical despite lower overall visibility.

That said, R appears as the most popular language during the 2016–2017 period, after which it declines in popularity relative to Python (see Figure 1 in README.md). This shift is largely attributable to the increasing use of machine learning, deep learning, and data science to address bioinformatics problems. Python has long been the de facto language for ML/DL, supported by widely adopted libraries such as scikit-learn and PyTorch.

Overall, programming language adoption appears to be strongly influenced by methodological shifts. As artificial intelligence has become a central component of bioinformatics workflows, Python’s dominance has increased accordingly. It is reasonable to expect this trend to continue until another major methodological shift emerges.

well that shift is upon us in the form of coding LLMs. The question then is: would I ask an LLM to write some slow high-level code just so i can read it? Increasing the answer at least for me is no. I just ask it to write Rust.

Log in to answer this question.