Ventajas y desventajas de Python
Siempre es bueno conocer por qué utilizar un lenguaje de programación, hoy estaré comentando un par de cosas respecto a python.
Ventajas
Fácil aprendizaje
He visto que muchas personas, blogs, escuelas y universidades manifiestan lo fácil que es aprender python, personalmente tambien considero a python un lenguaje de fácil aprendizaje. Revisando en stackoverflow, veo que en la encuesta de tecnologías más populares python se encuentra en el cuarto lugar, https://insights.stackoverflow.com/survey/2019#technology.
Open Source
Una de las grandes ventajas del lenguaje es que es de código abierto (open source), esto implica que es transparente de cara a usuarios y que es posible saber “cómo funciona por dentro”, puedes echar un vistazo por acá: https://github.com/python
Versátil
Existe una gran cantidad de frameworks/micro-frameworks los cuales permiten desarrollar en diferentes ámbitos, acá algunos de los misa conocidos:
- Desarrollo web: Django, flask, entre otros
- Machine learning: Tensorflow, NumPy, entre otros
- Desarrollo móvil: Kivy
- Desarrollo multiplataforma: PyQt
Tipado del lenguaje
Python es un lenguaje fuertemente tipado y de tipado dinámico. ¿Qué significa esto?
- Tipado débil: Significa que el lenguaje permite cambiar el tipo de dato por otro tipo de dato de forma “automática”. Podría verse como que “el lenguaje permite combinar tipos de datos”, por ejemplo:
- Tipado fuerte: Significa que el lenguaje no permite operaciones entre tipos de datos diferentes. Si intentamos realizar la operación anterior en Python, generará un error, tal y como se puede ver aquí:
> 'bla' + 3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: must be str, not int
- Tipado dinámico: Generalmente se refiere a que una variable puede ser de diferente tipo, por ejemplo, ser inicializada como entero, pero luego cambiar a string. Ejemplo: Python. Sólo hasta cuando se ejecuta el código se puede conocer el tipo de dato que una variable tiene. Aquí un ejemplo en python:
>>> name = 'Manre'
>>> print(name)
Manre
>>> print(name.__class__)
<class 'str'>
>>> name = 1
>>> print(name)
1
>>> print(name.__class__)
<class 'int'>
- Tipado estático: Generalmente implica que el tipo de dato almacenado en la variable, no puede ser cambiado. Ejemplo: Java.
String s = “bla”;
System.out.println(s);
s = 1;
System.out.println(s);
Main.java:5: error: incompatible types: int cannot be converted to String
s = 1;
^
1 error
compiler exit status 1
Desventajas
Lenguaje Interpretado
Python es un lenguaje interpretado, ¿qué significa esto?
Un lenguaje interpretado (Python, Javascript) es convertido a lenguaje máquina a medida que es ejecutado.
Un lenguaje compilado(C, C++), necesita de un paso intermedio para poder ser ejecutado, es decir, es necesario compilarlo, luego de la compilación, es posible ejecutarlo.
En temas de rendimiento, esta es una razón por la cual se considera una desventaja.
Manejo de memoria
En comparación con otros lenguajes, Python consume gran cantidad de memoria RAM, esto es debido a cómo funciona su GB (Garbage Collector), sugiero el siguiente artículo el cual describe cómo funciona con mayor claridad, https://rushter.com/blog/python-garbage-collector/