Python es un lenguaje de programación multiplataforma de propósito general principalmente de paradigma imperativo, orientado a procesos y orientado a objetos.
Python es un lenguaje de programación interpretado, multiplataforma y de propósito general, cuya expansión y popularidad es relativamente reciente.
Python se considera un lenguaje de scripting, pero también un lenguaje serio que es capaz de implementar desarrollos grandes y robustos. Al ser independiente de plataforma es posible usarlo en todos los sistemas operativos para los que se disponga de un intérprete.
Se considera un lenguaje de programación multiparadigma, aunque es principalmente imperativo. Dentro de los lenguajes imperativos es posible usarlo con funciones (orientado a procesos) y usarlo con clases y objetos (orientado a objetos). Pero también se dice que permite el paradigma funcional porque es capaz de trabajar con funciones como ciudadanos de primer nivel.
Como lenguaje de propósito general está preparado para realizar cualquier tipo de programa, desde aplicaciones Windows, Linux o Mac a servidores de red o incluso, aplicaciones web. Como lenguaje interpretado quiere decir que no se necesita compilar el código fuente para poder ejecutarlo, lo que ofrece ventajas como la rapidez de desarrollo e inconvenientes como una menor velocidad que los lenguajes compilados.
Es un lenguaje donde se promueve de manera activa la legibilidad del código, ya que hace falta indentar el código de una manera determinada en el documento para que el intérprete lo procese correctamente.
Python es muy interesante en medios donde se requiere un procesamiento pesado de la información, por ello es popular en Big Data y en Inteligencia Artificial. También es popular en el mundo de la web, donde existen frameworks como Django que permiten un desarrollo avanzado y mantenible.
Más información:
Principales áreas de uso de Python
Python es un lenguaje de propósito general y multiplataforma, con una completa gama de funcionalidades y bibliotecas para la realización de todo tipo de trabajos. Por ello, los usos del lenguaje son amplios. Sin embargo, la potencia del lenguaje en términos de rendimiento y capacidad de trabajar con gran cantidad de datos, lo hacen muy habitual en el ámbito científico, big data e machine learning e inteligencia artificial en general.
También Python se usa bastante a nivel de web, junto con frameworks como Django o Flask, que permiten realizar sitios basados en contenido con acceso a base de datos y por supuesto servicios web API REST. Debido a las capacidades de Python, se suele elegir para proyectos de cierta embergadura, que requieran el tratamiento de grandes cantidades de información o usuarios. No se suele usar Python para la web sin poner por encima algún framework, aunque también sería posible, pero no tan directo como lenguajes que directamente devuelven HTML como PHP.
Python también es capaz de hacer aplicaciones de interfaz gráfica por medio de ventajas, aunque no es tan usado en este área como en la creación de programas de consola. También existen diversos entornos de ejecución de Python que permiten crear programas que se escriben y se ejecutan en el mismo ambiente, como los Jupyter Notebooks, lo que permite usar Python sin necesitar trabajar con IDEs o terminal, mejorando las prestaciones en la creación de programas o scripts para inteligencia artificial o big data.
También es posible usar Python para desarrollo de juegos, aunque generalmente los desarrolladores usan frameworks que funcionan en otros lenguajes, es habitual que se habilite Python para la realización de algunas rutinas o la posibilidad de crear mods
Características de Python
Estas son las principales características del lenguaje Python:
Propósito general
Se pueden crear todo tipo de programas, desde pequeños scripts para temas como la automatización o el análisis de datos hasta grandes aplicaciones de consola o ventanas e interfaz gráfica. No es un lenguaje creado específicamente para la web, aunque entre sus posibilidades también se encuentra el aplicaciones de páginas.
Multiplataforma
Hay versiones disponibles de Python en muchos sistemas informáticos distintos. Originalmente se desarrolló para Unix, aunque cualquier sistema es compatible con cualquier sistema operativo popular como Windows o MacOS. Siempre y cuando exista un intérprete programado para el sistema operativo se puede ejecutar Python.
Interpretado
Quiere decir que no se necesita compilar el código antes de su ejecución. En realidad sí que se realiza una compilación, pero esta se realiza de manera transparente para el programador en el momento de ejecutar el archivo.
En ciertos casos, cuando se ejecuta por primera vez un código, se producen unos bytecodes que se guardan en el sistema y que sirven para acelerar la compilación implícita que realiza el intérprete cada vez que se ejecuta el mismo código.
Interactivo
Python dispone de un intérprete por línea de comandos en el que se pueden introducir sentencias. Cada sentencia se ejecuta y produce un resultado visible, que puede ayudarnos a entender mejor el lenguaje y probar los resultados de la ejecución de porciones de código rápidamente.
Orientado a Objetos
Además de funciones en el lenguaje tabién se usan clases y objetos. La programación orientada a objetos está soportada en Python y ofrece en muchos casos una manera sencilla de crear programas con componentes altamente reutilizables.
Funciones y librerías
Dispone de muchas funciones incorporadas en el propio lenguaje, para el tratamiento de strings, números, archivos, etc. Además, existen muchas librerías que podemos importar en los programas para tratar temas específicos como la programación de ventanas o sistemas en red o cosas tan interesantes como crear archivos comprimidos en .zip.
Pero además existen muchas bibliotecas de código creadas por terceros para realizar todo tipo de tareas imaginables. Son muy populares en Python las que soportan el análisis de datos y la inteligencia artificial. De hecho es posiblemente el principal lenguaje para estas áreas.
Gran comunidad
Existe una cantidad de desarrolladores enorme de Python que son muy participativos y se apoyan unos a otros. Es muy posible encontrar ayudas y documentos en la web, así como ejemplos y cualquier cosa que necesitemos para aprender Python o resolver los problemas con los que nos podamos encontrar.
Sintaxis clara
Por último, destacar que Python tiene una sintaxis muy visual, gracias a una notación identada (con márgenes) de obligado cumplimiento a la hora de crear los programas.
En muchos lenguajes, para separar porciones de código, se utilizan elementos como las llaves o las palabras clave begin y end. Para separar las porciones de código en Python se debe tabular hacia dentro, colocando un margen al código que iría dentro de una función o un bucle. Esto ayuda a que todos los programadores adopten unas mismas notaciones y que los programas de cualquier persona tengan un aspecto muy similar.
Un poco de historia de Python
Python fue lanzado en 1991 aunque su desarrollo comenzó a finales de los ochenta en una comunidad educativa de los Países Bajos.
El creador del lenguaje es un europeo llamado Guido Van Rossum. Durante años diseñó Python, ayudado y motivado por su experiencia en la creación de otro lenguaje llamado ABC. El objetivo de Guido era cubrir la necesidad de un lenguaje orientado a objetos de sencillo uso que sirviese para tratar diversas tareas dentro de la programación que habitualmente se hacía en Unix usando C.
El desarrollo de Python duró varios años, durante los que Guido trabajó en diversas compañías de Estados Unidos. En el 2000 ya disponía de un producto bastante completo y un equipo de desarrollo con el que se había asociado incluso en proyectos empresariales. Actualmente trabaja en Zope, una plataforma de gestión de contenidos y servidor de aplicaciones para el web, por supuesto, programada por completo en Python.
Entre tanto Python fue lanzando distintas versiones siendo la versión 1.0, primera versión oficial, publicada finalmente en 1994. Interesante es notar que en esta versión fueron publicadas algunas construcciones de la programación funcional como filter(), reduce() o map(), incorporadas por un ingeniero que venía de Lisp. Las siguientes versiones principales son 2.0 que se lanzó en 2000 y Python 3.0 en 2008.
Motivos de la popularidad de Python
En los últimos años el lenguaje se ha hecho muy popular, gracias a varias razones como:
- La cantidad de librerías que contiene, tipos de datos y funciones incorporadas en el propio lenguaje, que ayudan a realizar muchas tareas habituales sin necesidad de tener que programarlas desde cero.
- La sencillez y velocidad con la que se crean los programas. Un programa en Python puede tener de 3 a 5 líneas de código menos que su equivalente en Java o C.
- La cantidad de plataformas en las que podemos desarrollar, como Unix, Windows, OS/2, Mac, Amiga y otros.
- Sus características adecuadas para el manejo de grandes cantidades de datos, lo que lo hacen adecuado para Big Data e Inteligencia Artificial. De hecho las librerías más populares en estos ámbitos funcionan en Python.
- Además, Python es muy usado en el ámbito científico, entre otras cosas porque es gratuito. Por supuesto, también es muy popular y gratuito para propósitos empresariales.
Los principales frameworks de Python para el desarrollo de aplicaciones web
El framework de Python por excelencia es Django, que sirve para todo tipo de sitios y aplicaciones web. Pero hay diversas alternativas excelentes. Una lista de los frameworks web más populares para la web en Python son los siguientes:
Django: Un framework de características avanzadas y muy completo. Sigue el patrón Modelo-Vista-Controlador (MVC) y promueve el desarrollo rápido y limpio. Es conocido por su ORM incorporado y por su enfoque en la seguridad y la reutilización de código.
Flask: Es más considerado un microframework ya que proporciona las herramientas básicas para poner en marcha una aplicación web y deja muchas decisiones al desarrollador. Gracias a ello es ligero y flexible. Resulta ideal para aplicaciones más simples o cuando se desea más control sobre los componentes utilizados.
FastAPI: Un framework web moderno y rápido para construir APIs con Python 3.7+ basadas en estándares de tipo REST API. Es conocido por su rendimiento y capacidades de generación automática de documentación.
Web2py: Un framework completo para hacer sitios web, con bastante recorrido ya que compit con Django desde hace muchos años con un enfoque parecido, pero donde se promociona la facilidad de uso.
Tornado: Es un servidor web y framework asíncrono desarrollado en Python. Es interesante por su rapidez y porque no bloquea los recursos, como ocurre en otros lenguajes como Javascript y Node. Desarrollado principalmente para manejar muchas conexiones simultáneas y programación en tiempo real.
Pyramid: Es un framework para desarrollar aplicaciones web pequeño. Su principal cometido es ofercer una manera sencilla de generar respuestas HTTP desde Python para que pueda usarse el lenguaje fácilmente para el desarrollo de páginas web.
TurboGears: Un framework que se ha desarrollado encima de otros frameworks populares como Django o Rails tratando de resolver los problemas que los desarrolladores encontraban al usarlos. Ellos se catalogan como un "megaframework" por la cantidad de herramientas que dispone para el desarrollo de programas de todo tipo en Python.
CherryPy: Permite a los desarrolladores construir aplicaciones web de la misma manera que escribirían programas en un lenguaje orientado a objetos.
Falcon: Diseñado exclusivamente para el desarrollo de servicios web, esto es para crear APIs RESTful. Falcon es un framework ligero y minimalista.
Bottle: Es un microframework que se distribuye como un único módulo. Es muy rápido y se centra básicamente en ofrecer una interfaz sencilla para responder solicitudes web. No tiene dependencias con otras librerías, que no sean las propias incorporadas en Python. Especialmente adecuado para pequeñas aplicaciones y prototipos.
Quién usa Python
Python es una interesante opción para realizar todo tipo de programas que se ejecuten en cualquier máquina. El equipo de desarrollo está trabajando de manera cada vez más organizada y cuentan con el apoyo de una comunidad que está creciendo rápidamente. Gracias a ello el lenguaje se usa en multitud de áreas dentro de la informática, la web, la ciencia o la gestión empresarial, los juegos.
Sería difícil enumerar una cantidad representativa de proyectos donde se ha sacado partido al lenguaje. Algunas empresas importantes que utilizan Python son Google, Walt Disney, la NASA, Red Hat, Yahoo, etc.
Se pueden destacar algunas aplicaciones conocidas que usan Python.
Dropbox: Una de las soluciones de almacenamiento en la nube más populares tiene Python entre sus principales herramientas para el desarrollo de sus aplicaciones para ordenadores.
Instagram: La red social Instagram usa el framework Django, para manejar su backend.
Spotify: El servicio de streaming de música utiliza Python en diversos ámbitos dentro de su trabajo, principalmente para el análisis de datos.
Reddit: Es curioso que fue originalmente desarrollado en Lisp. Sin embargo Reddit fue reescrito en Python porque permitía un mejor mantenimiento y ampliación de sus características.
Google: Desde sus inicios, Google ha utilizado Python para múltiples propósitos, incluyendo en su motor de búsqueda y muchos otros servicios de la compañía. El propio YouTube también usa Python para la gestión de sus vídeos y su funcionalidad backend.
Quora: Una conocida plataforma de preguntas y respuestas utiliza Python para su desarrollo baclend.
NASA: La NASA ha usado Python desde hace muchos años para una enorme variedad de tareas, desde la automatización hasta el análisis de datos en diferentes misiones y proyectos.
BitTorrent: Esta aplicación de escritorio está escrita en Python por Bram Cohen.
Civilization IV: Este popular juego de estrategia utiliza Python para la mayoría de sus tareas, desde la ejecución de la lógica del juego hasta la definición de la IA de los jugadores no humanos. También se ha usado Python para la creación de mods.
OpenStack: Una popular plataforma para servicios en la nube de código abierto viene usando Python para muchos asuntos.
Estas aplicaciones y plataformas son solo una muestra de aplicaciones populares que muchas personas conocen. Pero por supuesto la base del lenguaje es mucho más amplia y su cantidad de software sería inacabable.
Crea artículos, recursos o comparte información sobre Python
Preguntas y respuestas de Python
Se han recibido 5 faqs en Python