¿Por qué Python?

« ¿Qué es Python? | Python, lenguaje del año 2007 »

Python es un lenguaje que todo el mundo debería conocer. Su sintaxis simple, clara y sencilla; el tipado dinámico, el gestor de memoria, la gran cantidad de librerías disponibles y la potencia del lenguaje, entre otros, hacen que desarrollar una aplicación en Python sea sencillo, muy rápido y lo que es más importante, divertido.

La sintaxis de Python es tan sencilla y cercana al lenguaje natural que los programas elaborados en Python parecen pseudocódigo. Por este motivo se trata además de uno de los mejores lenguajes para comenzar a programar.

Python no es adecuado sin embargo para la programación de bajo nivel o para aplicaciones en las que el rendimiento sea crítico.

Algunos casos de éxito en el uso de Python son Google, Yahoo, la NASA, Industrias Ligh & Magic, y todas las distribuciones Linux, en las que Python cada vez representa un tanto por ciento mayor de los programas disponibles.

Relacionadas

Comentarios
  1. Hola, solo quiero contribuir a esa lista de exitos con otro mas (y espectacular), el !!!Civilitation IV¡¡¡
    Se que a lo mejor no ha sido un juegazo d super exito, pero solo plantearos lo grande que es, y esta hecho con python y tiene un rendimiento inmejorable

    un saludo

  2. Zoo, el siguiente paso es que te curres un super-duper-tutorial de python, lo sabes, verdad? ;)

    (Y si además es de pyGTK, ya sería la bomba)

  3. Todo se andará…

    Lo tenía en mente, pero no se si voy a ser demasiado vago. :$

  4. Python es la poya, de acuerdo. Pero no sería ni mucho menos el lenguaje que recomendaría para alguien que quiera aprender a programar. Esa persona no aprendería bien. Lo mismo pasaría con Java por ejemplo.

    Si empiezas con python te acostumbrarás a tener miles de listas y tablas hashes como si fuese lo más natural del mundo, sin preocuparte nada de costes ni leches, algo que hay que tener en cuenta, sobretodo al empezar a programar. Y al inicio cuando más restrictivo y cabrón sea el lenguaje, mejor.

  5. No estoy de acuerdo.

    Primero porque no es necesario que uses cientos de listas ni diccionarios. No es ni mucho menos algo inherente al lenguaje. (¿?) Esto no es LISP o algo similar.

    Segundo porque a alguien que empieza a programar no le interesa saber nada de punteros, recolectores de basura, ni nada que tenga que ver con bajo nivel.

    De hecho yo diría que es contraproducente, porque no les deja concentrarse en lo que deben concentrarse, y en su lugar van a tener que andar pegándose con un compilador poco agradable, con segmentation faults, y otros errores de difícil solución.

    Ergo no solo van a aprender menos y con más dificultad, sino que es probable que se desilusionen.

    Les interesa tener algo cuanto más cercano al pseudo código mejor, para aprender cómo funcionan los bucles, qué son las variables, los métodos, los objetos, las clases, la herencia, …

    Si luego les quieres enseñar cosas de más bajo nivel, como C o incluso ensamblador para que tengan constancia de cómo funcionan las cosas realmente a nivel hardware, perfecto, pero coño, no puedes empezar a ese nivel. Antes de correr hay que aprender a andar.

  6. Python se ve como una lenguaje genial, el único detalle es que aun no lo he podido instalar de una manera formal, y creo que es el caso de muchos.

    Se agradecerá mucho un manual de instalación usando Apache o Lighttp sobre Ubuntu

    Digo nomas :P

    Saludos

  7. ¿Usando Apache?

    ¿Te refieres a usarlo para desarrollo web con Django o TurboGears?

  8. ¿Por qué Python? ¡Porque yo lo valgo!

    Yo descubrí python hace 2 años y me encantó, es un lenguaje muy cómodo y potente…. Para desarrollo web me encanta TurboGears y Zope tiene su encanto :) la pena es que por lo general los hostings (a precios razonables y condiciones normales) no ofrecen muchas facilidades a la hora de trabajar con python.

    Blaxter: Una vez en una lista también dije que python no me parecía un lenguaje para comenzar a programar (yo creo que pascal es el más idóneo al ser bastante estricto) y se me echó toda la lista encima jejeje. Deacuerdo con Zotropo en que la gente quiere resultados y no teoria y teoria de punteros y tal para luego no usarlos nunca, pero yo no lo dejaría de lado y la gente que empieza con lenguajes del tipo de Java o C# (por lo que veo ahora) nunca va a pararse a mirar como funciona esto por dentro, y es una pena.

  9. jose

    Sobre aprender… lo de aprender la metodología y los elementos más comunes -bucles, recursividad, funciones- se hace en pseudocódigo para aprender a programar en general, pero cuando estás aprendiendo un lenguaje real es mucho saber qué es realmente lo que estás usando. Ayuda mucho para comprender la lógica del programa y los posibles fallos que pueda dar. Tú puedes usar iteradores fácilmente sin saber qué es un puntero ni haber tocado C en tu vida porque están hecho para eso, pensando en la abstracción. Pero sabiendo qué son tienes como más dominio, no sé, más tranquilidad.

  10. No hombre, si yo no digo que no haya que enseñar cómo se almacenan las variables en memoria, la pila, los punteros, etc…

    Sino que son dos temas completamente diferentes, aunque relacionados, y la jerarquía de memoria de los PCs no debería enseñarse en una clase de programación básica, sino en una de arquitectura de computadores, en la que a su vez se podría enseñar C apoyándose en la base ya sentada en la clase de programación, y concentrándose, esta vez si, en los aspectos más relacionados con el hardware, que es lo que interesa.

  11. Juanelo

    Hola, llevo tiempo leyendo buenas cosas sobre Python y estaba pensando en aprenderlo.

    En breve voy a hacer una aplicación muy tonta que debe ser una interfaz visual a una base de datos (muy sencilla: listar tablas, editar algún campo, etc). Pensaba hacerlo con Qt y C++ pero quisiera saber si con Python ahorraría algo (y ya de paso lo usaría como excusa para aprender el lenguaje!).
    En definitiva, que usaríais para algo asi.

    Saludos

  12. jose

    OK zootropo, ¡estamos de acuerdo!

    Sin embargo, creo que todo eso puede hacerse a la vez. Por ejemplo, yo en 1º, en Introducción a la programación, daba pseudocódigo en la teoría y C en las prácticas. En teoría, algoritmos; en las prácticas, programas :-)

    La verdad es que nunca antes había pensado en Python como un lenguaje para enseñar… pero se puede probar. Lo comentaré el lunes.

  13. jose, pues de hecho hay un libro muy interesante y muy sencillito y ameno para aprender a programar desde 0 utilizando Python llamado "How to Think Like a Computer Scientist: Learning with Python" que se centra bastante en las buenas prácticas.

    Además el libro es GFDL y está traducido al castellano: Aprenda a Pensar Como un Programador con Python :)

    Por cierto, la Universidad Jaume I utiliza Python primero y C después para enseñar a programar a sus estudiantes, así que sus ejercicios y 400 hojas de apuntes, que se pueden descargar desde su página web, también están muy orientados a enseñar lo básico: Metodología y Tecnología de la Programación

  14. @Zootropo, obviamente tampoco me refería a usar C o C++ y tratar con punteros, dios. Alguien que quiera aprender a programar le das eso y se suicida. Usar C para aprender sería, posiblemente, el peor escenario.

    Yo me refería a lenguajes fuertemente tipados y estáticos. Pascal y Ada son los mejores, mejor Ada que es un Pascal en el MundoReal. Es un lenguaje que te obliga a ser muy estricto y formal, después dar el paso a un lenguaje dinámico será trivial.

  15. Como decías que cuanto más cabrón el lenguaje, mejor… De todas formas, lo siento Blaxter, pero también pienso que es mejor lenguaje que Pascal para empezar a programar.

    No se si sabías que Python está basado en ABC, un lenguaje que, como Pascal, se desarrolló para la enseñanza. Y que buscaba precisamente mejorar diversos aspectos de Pascal en el ámbito de la enseñanza.

    Yo diría, y ojo, es solo mi opinión, que Python es más ameno y parece más manejable y menos amenazador a simple vista que Pascal. Y es más agradecido porque en nada de tiempo pueden echar a andar aplicaciones muy vistosas que les motive.

    Y les obliga a estructurar bien el código, que es un plus muy interesante.

    Y favorece el código legible y la escritura de documentación.

    Y puedes comenzar enseñándoles programación procedural, seguir con orientación a objetos e incluso darles una pequeña introducción al paradigma funcional (que se podría completar el siguiente año, o no, enseñándoles LISP o Haskell).

    De hecho los autores del libro que le comentaba a jose, "How to Think Like a Computer Scientist: Learning with Python", son profesores que escribieron el libro para servir de documentación para sus alumnos. Y da la casualidad de que anteriormente utilizaban Pascal ;)

  16. Ada está basado en Pascal, es un lenguaje procedural, permite orientación a objetos y pone énfasis en la documentación, mayormente porque obliga la separación de las cabeceras/interfaces respecto al código. Alguien que aprenda Ada luego al cambiarse a c, por ejemplo, vería natural documentar todo su código en los .h

    Como dices python tiene como ventaja que es más simple, pero sigo opinando que, para aprender, un lenguaje fuertemente tipado y estático es mejor. Posiblemente más difícil, si. Pero presupongo que alguien que quiere aprender a programar, no es excesivamente tonto, por lo que esta, supuesta, desventaja queda difuminada.

    Personalmente, prefiero, cuando aprendo algo (hablo en general, no de programación en particular), hacerlo en "condiciones" más complejas de lo normal. Una vez superado este aprendizaje (que en definitiva será una mera introducción) seguir por tu cuenta o probar casos similares te resultará mucho más fácil de lo que es. Quizá es ser un poco masoca, no lo se, será la costumbre.

    Alguien que no comparta mi anterior filosofía, pues entonces si que le recomendaría python como primer lenguaje.

  17. @zootropo : pues eso, instalarlo para usarlo en desarrollo web, aun no me queda claro como hacerlo :( pense que seria tan sencillo como hacer con PHP pero sin exito

    Saludos ! :)

  18. [...] quienes aprenden a programar es que aprendan a usar un lenguaje de verdad verdad (C++, Ruby, Perl, Python son buenos ejemplos).. Luego lo demás será coser y cantar puesto que un buen [...]

  19. [...] quienes aprenden a programar es que aprendan a usar un lenguaje de verdad verdad (C, Ruby, Perl, Python son buenos ejemplos, si no preguntele a alex y al canibal).. Luego lo demás será coser y cantar [...]

Deja un comentario