Saltar a contenido

Python para científicos que no quieren programar

Si eres alguien que está principalmente interesado en el laboratorio, lo más probable es que la idea de programar sea algo interesante en teoría, pero no algo necesario para tu día a día. Estoy completamente de acuerdo: herramientas como Origin o incluso Excel son más que suficientes para hacer análisis de datos elementales y hacer gráficas para presentaciones y publicaciones. No hace falta invertir meses en aprender un lenguaje de programación con todas sus sutilezas.

Cuando hablo de usar Python no me refiero a programar: en inglés hay una distinción muy clara entre programming o coding y scripting. Mientras que la programación típicamente involucra crear aplicaciones más o menos complejas (programas, vamos), el concepto de scripting se puede resumir en saber escribir listas de instrucciones que se le pasan a un programa y que puede reutilizarse. En ese sentido, Python es una herramienta superútil, con innumerables librerías para tareas tan variadas como correr simulaciones, procesar datos, crear gráficas, o aplicar modelos de inteligencia artificial. Como dice xkcd:

xkcd Python comic
xkcd: Python

Usar estas herramientas no require explorar los rincones más recónditos de un lenguaje de programación, la idea es poder reutilizar software en muchos casos puntero en scripts de una complejidad mínima. Por ejemplo:

from ase import Atoms
from gpaw import GPAW
d = 0.74
a = 6.0

atoms = Atoms('H2',
              positions=[(0, 0, 0),
                         (0, 0, d)],
              cell=(a, a, a))
atoms.center()
calc = GPAW(mode='fd', nbands=2, txt='h2.txt')
atoms.calc = calc
print(atoms.get_potential_energy())
calcula la energía potencial de una molécula de hidrógeno usando DFT usando la librería gpaw.

Otra ventaja es que todas estas herramientas son software libre con cero coste. La percepción de que hay que tener mucha financiación para poder hacer investigación de primera línea es en buena parte cierta, sobre todo desde el punto de vista experimental. Sin embargo, hoy en día en muchas disciplinas es posible realizar contribuciones significativas en teoría, computación/modelos, e inteligencia artificial usando sólamente software libre y tu portátil. En muchas áreas estamos limitados más por la habilidad de identificar los problemas relevantes o nuestra capacidad para diseminar los resultados que por los medios.

AunqueR domina en las ciencia sociales y ecología, y Julia se está abriendo camino en el análisis de datos, Python es el lenguaje de programación más extendido en la física, la química, y la ciencia de materiales. Es cierto que las simulaciones más complejas siguen usando lenguajes como Fortran o C, pero la mayoría de ellas tienen una interfaz que permite utilizarlas desde Python. Eso convierte a Python en el lenguaje ideal para el usuario casual, el científico que no quiere ser un coder, pero que quiere usar herramientas de software libre que están a su alcance.

¿Cómo aprender Python si tu objectivo no es programar? Mi aproximación sería centrarse en las herramientas que quieres usar en lugar de empezar con tutoriales genéricos y aprender las sutilezas conforme las vayas necesitando. Los large language models suelen ser buenos para solucionar problemas de programación, y muchos directamente generan el código necesario. Si los AI summaries de Google están disponibles donde vives, muchas veces puedes generar un ejemplo completamente gratis desde el navegador. Los AI chatbots tienen fama de ser poco fiables, pero la generación de pequeños programas en Python es una de las cosas que saben hacer bien.