CPython es la implementación estándar y más utilizada del lenguaje de programación Python. Escrita en C, actúa como un intérprete que toma el código fuente de Python, lo compila en bytecode intermedio y luego lo ejecuta en una máquina virtual (VM). Esta implementación incluye un recolector de basura, un sistema de gestión de memoria y el Global Interpreter Lock (GIL), que permite que solo un hilo nativo ejecute bytecode de Python a la vez, incluso en sistemas multi-núcleo.
CPython es la base de la gran mayoría de las aplicaciones y frameworks de Python. Proyectos como Django, Flask, NumPy, Pandas y TensorFlow (en su capa de Python) se ejecutan sobre CPython. Es la implementación que se descarga por defecto cuando se instala Python desde python.org o a través de gestores de paquetes como `apt` o `brew`. La mayoría de las herramientas de desarrollo, IDEs y librerías de terceros están diseñadas y optimizadas para funcionar con CPython.
Para un arquitecto, comprender CPython es crucial debido a sus implicaciones en el rendimiento y la concurrencia. El GIL es un factor clave: limita la ejecución paralela de código Python puro en CPUs multi-núcleo, lo que significa que las aplicaciones intensivas en CPU pueden no escalar linealmente con más núcleos. Esto impulsa decisiones de diseño hacia el uso de procesos múltiples (multiprocessing), módulos escritos en C/Rust (que pueden liberar el GIL) o la delegación de tareas intensivas a servicios externos. La elección de CPython frente a otras implementaciones como Jython, IronPython o PyPy implica trade-offs en compatibilidad de librerías, rendimiento (PyPy es a menudo más rápido) y la capacidad de interactuar con otros ecosistemas (JVM, .NET). Un arquitecto debe considerar el perfil de carga de la aplicación y las necesidades de escalabilidad al decidir si CPython es la opción adecuada o si se requieren estrategias de optimización o alternativas.