Por qu茅 los principiantes deber铆an aprender Python

    En algunas de mis otras publicaciones probablemente hayas notado que soy un gran fan de Node.js. Si bien esto es cierto, y ha sido mi idioma preferido por un tiempo, no siempre lo recomiendo a todos.

    Comenzar en programaci贸n e inform谩tica puede resultar un poco abrumador. 驴Qu茅 idioma debes elegir? 驴Qu茅 IDE deber铆a utilizar? Y lo que es m谩s importante, 驴por qu茅?

    En mi opini贸n, lo m谩s importante que debe hacer al programar es elegir la herramienta adecuada para el trabajo. Lo segundo m谩s importante es elegir la herramienta con la que se sienta m谩s c贸modo. Si le dijera que deber铆a usar C ++ ya que es uno de los lenguajes m谩s r谩pidos que existen, puede que no sea un buen consejo si nunca ha tenido que lidiar con la administraci贸n de memoria o escribir sus propias estructuras de datos. Probablemente lo superes y tengas una mala experiencia.

    Python, por otro lado, resuelve muchos de estos problemas por ti. Funciona mucho m谩s lento que C ++, pero tambi茅n es mucho m谩s f谩cil de escribir. Y como principiante, probablemente no te importe lo r谩pido que sea, solo quieres hacer algo genial y aprender los conceptos b谩sicos.

    Entonces, la primera decisi贸n que debes tomar es qu茅 idioma quieres aprender. De los cientos de idiomas que existen, 驴por qu茅 los principiantes deber铆an aprender Python? Bueno, hay algunas razones…

    Sintaxis simple

    Parte de filosof铆a central del idioma (resumido por PEP 20, “El Zen de Python”), incluye lo siguiente:

    • Hermoso es mejor que feo
    • Lo simple es mejor que lo complejo
    • La legibilidad cuenta

    Entonces, como puede ver, Python fue dise帽ado desde el principio teniendo en cuenta la simplicidad. Este fue un soplo de aire fresco en el momento de su creaci贸n, ya que algunos de los lenguajes m谩s dominantes en ese momento eran C y C ++, que no son muy f谩ciles de usar.

    Comparemos la sintaxis de Python con la de C ++ usando un ejemplo simple de ‘Hola, mundo’:

    C ++:

    #include stdout
     
    int main() {
    	std::cout << "Hello, world!n";
    }
    

    Python:

    print('Hello, world!')
    

    Hay una gran diferencia all铆, y todo lo que hicimos fue imprimir una cadena en la consola. Por si acaso, hagamos otra comparaci贸n de sintaxis, pero esta vez con PHP:

    Python:

    x=1
    while x <=5:
        print 'x is less than 5:' + str(x)
        x += 1
    

    PHP:

    <?php
    $x=1;
    while($x<=5) {
        echo "x is less than 5: $x";
        x++;
    }
    ?>
    

    Python realmente intenta deshacerse de la ‘pelusa’ y solo requiere lo que realmente es necesario, lo cual es una gran raz贸n por la que fue dise帽ado para usarse sin llaves y punto y coma al final de la l铆nea. Eche un vistazo a la diferencia que hace (煤ltima comparaci贸n de sintaxis, lo prometo):

    Python

    def foo(x):
        if x == 0:
            bar()
            baz()
        else:
            qux(x)
            foo(x - 1)
    

    C:

    void foo(int x)
    {
        if (x == 0) {
            bar();
            baz();
        } else {
            qux(x);
            foo(x - 1);
        }
    }
    

    Realmente no estoy tratando de criticar otros idiomas aqu铆. Todos estos otros lenguajes mencionados son realmente geniales y tienen toneladas de usos, pero simplemente no son muy buenos para principiantes.

    Con palabras clave como is, noty with, un script de Python bien escrito casi se puede leer como en ingl茅s simple. Esto es especialmente cierto para if condiciones de la declaraci贸n, que pueden ser dif铆ciles de leer si crecen lo suficiente:

    a = None
    b = None
    
    if a is not None and b is not None:
        print 'Foo!'
    else:
        print 'Bar!'
    

    La declaraci贸n condicional anterior es mucho m谩s limpia que la t铆pica if ((a != null) && (b != null)).

    F谩cil de configurar y ejecutar

    Muchos principiantes que intentan aprender un idioma fallan incluso antes de escribir una sola l铆nea de c贸digo. Con algunos lenguajes, como Java, debe instalar y configurar directorios de proyectos complicados y luego compilar su c贸digo.

    Con Python, todo lo que tiene que hacer para comenzar es descargar y ejecutar el instalador, y correr python <your-script>.py. No hay que crear ni compilar una estructura de directorios complicada.

    Aunque se est谩 volviendo cada vez m谩s raro en los lenguajes modernos, compilar su c贸digo puede ser mucho m谩s dif铆cil de lo que cree (aunque es un mal necesario). Solo eche un vistazo a este peque帽o archivo MAKE para C:

    CC = gcc
    CFLAGS  = -g -Wall
    
    TARGET = myprog
    
    all: $(TARGET)
    
    $(TARGET): $(TARGET).c
    	$(CC) $(CFLAGS) -o $(TARGET) $(TARGET).c
    
    clean:
    	$(RM) $(TARGET)
    

    Y considero que esto es un simple archivo MAKE. Elegir铆a Python sobre esto cualquier d铆a.

    Python le permite aprender los conceptos de programaci贸n primero antes de entrar en los detalles sucios de c贸mo el c贸digo de alto nivel se traduce en c贸digo a nivel de m谩quina, que debe aprender absolutamente, pero no cuando comienza.

    Biblioteca est谩ndar enorme

    Una de las fortalezas m谩s promocionadas de Python es su biblioteca est谩ndar, y por una buena raz贸n. Viene con m谩s de 300 m贸dulos (en la versi贸n 3.5), que van desde un servidor HTTP m铆nimo (BaseHTTPServer) a bases de datos (sqlite3), a bibliotecas de compresi贸n (gzip).

    La gran mayor铆a de las cosas que querr谩 hacer con Python generalmente ya est谩n hechas en estas bibliotecas est谩ndar. Para que pueda comenzar a crear cosas interesantes con poco esfuerzo, como aplicaciones con Machine Learning.

    De vez en cuando tendr茅 que recordarme a m铆 mismo revisar los m贸dulos y ver qu茅 hay disponible para evitar volver a escribir el c贸digo.

    As铆 que antes de irse y tratar de escribir un an谩lisis de URL biblioteca, verifique si ya existe primero!

    Una de las mejores partes de no tener que escribir todo este c贸digo usted mismo es saber que ha sido probado a fondo y sin errores. Gran parte de este c贸digo ha existido durante un tiempo y se ha utilizado en las principales empresas (de las que hablaremos m谩s adelante), por lo que sabe que ha pasado por el timbre.

    La comunidad

    Una comunidad grande y activa significa dos cosas:

    • Muchas bibliotecas de terceros
    • Mucha gente para ayudarte

    Estos puntos son posiblemente algunas de las razones m谩s importantes por las que deber铆a usar Python, independientemente de su nivel de habilidad. Esto significa que tendr谩 mucha m谩s documentaci贸n, tutoriales y c贸digo para revisar y aprender mejor el idioma.

    Python se ha clasificado constantemente como uno de los principales lenguajes de programaci贸n seg煤n varias fuentes, como por Redmonk (# 4) y Tiobe (# 5).

    Incluso m谩s importante que la popularidad del idioma es la demanda de los empleadores. Puede ver en el gr谩fico a continuaci贸n (por En efecto) que Python es el segundo lenguaje m谩s solicitado por los empleadores, lo que significa que tiene m谩s posibilidades de utilizar sus habilidades de programaci贸n como carrera.

    F谩cil de depurar

    Como principiante, una de las habilidades m谩s dif铆ciles de dominar es la depuraci贸n. Aqu铆 es donde realmente se llega a conocer un idioma y su funcionamiento interno. Ocasionalmente, tendr谩 errores f谩ciles que son solo errores de sintaxis, y otras veces tendr谩 errores realmente dif铆ciles de encontrar que solo aparecen 1 de cada 100 veces que ejecuta su programa.

    Aqu铆 es donde realmente conocer谩 a su depurador y los errores comunes en un idioma.

    Por suerte para ti, Python tiene muy buen manejo y reporte de errores, mientras que muchos otros lenguajes no lo tienen.

    Por ejemplo, en C ++, si algo sale mal (como eliminar la cerca de un puntero no v谩lido, acceder a un elemento de la matriz fuera de los l铆mites, etc.), tendr谩 suerte si el programa falla. De esa manera, sabr谩 que hay un problema en alg煤n lugar de su programa, pero probablemente no sepa d贸nde (y los depuradores no siempre son sencillos para un principiante). Si no tiene suerte, el programa no se bloquear谩 (o simplemente se bloquear谩 en momentos aleatorios) y, en cambio, le dar谩 errores oscuros que no son muy obvios.

    Lo que Python apesta

    De acuerdo, no pens茅 que ser铆a correcto escribir este art铆culo brillante sobre Python y no hablar de sus desventajas. Como cualquier otro idioma, est谩 lejos de ser perfecto, hay muchas cosas para las que no debes usarlo.

    Como he mencionado varias veces, Python es lento. Realmente lento en comparaci贸n con lenguajes compilados como C / C ++ o Go. Esto se debe a que tiene bastantes caracter铆sticas que lo ralentizan, como escribir din谩micamente y recolectar basura.

    Lo que esto significa para usted es que no debe usar Python puro para procesar muchos datos, sino que tendr谩 que agregar enlaces C ++ (de los que hablaremos otro d铆a).

    Y gracias a la recolecci贸n de basura de Python, no puede usarla para sistemas en tiempo real. Esto se debe a que la recolecci贸n de basura hace que el c贸digo se ejecute en un per铆odo de tiempo no determinista, por lo que no sabr谩 si su funci贸n tardar谩 1 ms o 100 ms en ejecutarse. Hay demasiadas inc贸gnitas. En cambio, para estos programas en tiempo real, normalmente tendr谩 que utilizar un lenguaje con gesti贸n de memoria manual como C o C ++.

    En esa misma l铆nea, dado que Python depende de tantos recursos del sistema y tiene un int茅rprete, normalmente puede (digo ‘normalmente’ porque hay otras opciones) solo ejecutan c贸digo Python en la parte superior de un sistema con un sistema operativo (es decir, sin microcontroladores u otros sistemas integrados).

    Conclusi贸n

    Estas son solo algunas de las razones por las que Python es ideal para principiantes. Hay tantos recursos en estos d铆as para comenzar que ser谩 una peque帽a inversi贸n de tiempo comenzar a programar con Python.

    驴Qu茅 idioma aprendiste primero y por qu茅? 隆H谩znoslo saber en los comentarios!

     

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *