¿Por qué Python?

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.

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

    Responder

  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)

    Responder

  3. Todo se andará…

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

    Responder

  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.

    Responder

  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.

    Responder

  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 😛

    Saludos

    Responder

  7. ¿Usando Apache?

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

    Responder

  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.

    Responder

  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.

    Responder

  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.

    Responder

  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

    Responder

    • Eslogan

      Nose de cuando es la noticia y si llego tarde..pero si quieres un ejemplo en Qt y c++..yo monte un pequeno juego de coches en miniatura..lo puedes encontrar en google code (puesto que esta liberado bajo licencia gpl).
      No obstante con python y alguna libreria de graficos vas a volar y no va a ser tan prehistorico!:)

      Responder

    • Eslogan

      Por cierto el juego se llama:racing-car!

      Responder

  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.

    Responder

  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

    Responder

  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.

    Responder

  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 😉

    Responder

  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.

    Responder

  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 ! 🙂

    Responder

  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 […]

    Responder

  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 […]

    Responder

  20. jojo

    Estamos en el 2009, vamos encaminados a lenguajes inteligentes con minima programacion.
    Corten con los punteros, c y c++, y todos esos lenguajes sin sentido. No conozco nadie que se hizo millonario manejando punteros en C.

    Responder

    • D

      Te aclaro que los juegos de video, estan escritos en su mayoria en c++

      Responder

  21. camii

    holaa!! soy estudiante de ingenieria y necesito ayuda con un programita qe tengo qe hacer p infor!

    Responder

  22. camii

    si alguien me puede ayudar .. es sobre una funcion de listas !

    Responder

  23. Jose Luis

    Jojo, esa historieta de los ‘lenguajes inteligentes con mínima programación’ la vengo escuchando hace 20 años, y C y C++ se siguen utilizando.
    Si supieras algo de programación orientada a onjetos, sabrías que las instancias de objetos no son otra cosa que punteros y ese es el sentido de constructores y destructores.

    Respecto de la discusión sobre lenguajes para enseñanza de programación, mi experiencia personal inclina la balanza hacia Pascal. Al ser tan estricto, genera una conducta de programación que luego evita problemas en cualquier lenguaje que se utilice.
    Sin embargo, como lenguaje de aprendizaje inicial que luego permite una facil migración hacia cualquier otro, me quedo con C.

    Responder

  24. Nelson M.

    Muy de acuerdo con Jose Luis, yo me quedo con C++ por ser un lenguaje bastante estricto en su sintaxis, esto es una ventaja ya que al aprender otro lenguaje ya se tienen desarrollados buenos habitos de programación y se hará menos pesado. Saludos!

    Responder

  25. Sotomayor

    El caso de Python, Java y otros lenguajes de muy alto nivel para aprender a programar es análoga al concepto de saber que si al auto se le pone gasolina puede ser usado para ir de un lugar a otro sin realmente tener que molestarme en saber nada de que tiene o como hace para funcionar.
    Generalmente, a aquellos que les gusta programar en estos lenguajes estan muy interesados en obtener resultados, hacer y llegar a donde quieren sin molestarse en conocer como realmente funciona la cosa, es algo asi como la ley del menor esfuerzo en definitiva ! Ojo, no estoy diciendo que este mal o bien,,!

    Responder

  26. […] 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.” (MundoGeek.net) […]

    Responder

  27. Gio

    Recién estoy empezando en Python, y ya le estoy agarrando cariño, he visto en python un lenguaje muy cómodo y amigable…

    Responder

  28. gyer

    Hola a todos. Soy ilustrador y diseñador gráfico. Desde bien pequeñito he tenido la espinita clavada (Tiempos del amstrad cpc) de hacer mis pinitos programando y ser capaz de realizar un juego. Lo había intentado con otros, pero entre el poco tiempo del que dispongo y la complejidad de estos lenguajes(C,Actionscript), acabé frustrado y desistí. Con Phyton esto no me ocurre. Acabo de empezar, pero para alguien con no grandes pretensiones me parece un buen lenguaje por el cual comenzar.

    Responder

Deja un comentario