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:

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

Decir que es una ventaja o desventaja depende mucho de la persona quien lo esta evaluando, personalmente considero que es una ventaja, pero algunas personas y autores lo consideran desventaja.

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/

 



Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.