Programming Languages
Simplicity over complexity.
Lately, I’ve been gravitating toward “little languages”—programming languages (PL) that are simpler and more focused. But why? Most importantly - what do I mean by “little languages”? I’ll try to define this later in this blog. For now, here are some notable examples of such PL:
- Python, Go, Crystal, Nim
When choosing a programming language, two primary factors matter most:
- Personal preference.
- Job requirements.
Everything else—including others’ opinions (often just their preferences)—is secondary. Here’s my perspective on language choice as a computational biologist, seen through these two lenses:
Personal Preference
A programming language should be easy to learn, especially when it’s simply a tool to accomplish specific tasks (unless you’re diving in purely to build skill). I’ll be honest: I’m not a programming expert. My approach is built on a foundational understanding of programming concepts and the ability to explore what different languages offer through their APIs.
Case 1:
For scripting and quick data visualizations, Python
remains unparalleled, particularly compared to
R or Julia. Libraries like
matplotlib
enable clean, publication-ready
plots in just a few lines—perfect for scientific workflows.
With minimal setup, Python allows you to create complex
visualizations like this:
import numpy as np
import matplotlib.pyplot as plt
= np.linspace(-10, 10, 400)
x ="Sine")
plt.plot(x, np.sin(x), label
plt.legend() plt.show()
Python’s simplicity, extensive libraries, and versatility
make it indispensable. Tools like Ruff
and
UV
are also pushing Python’s performance
forward. Recent changelogs show a strong emphasis on
optimization.
Python is battle-tested. It produces beautiful charts and plots, with support for LaTeX labels and titles, and can output high-quality PDFs!
Example: Plotting with Python
[To be continued…]