it-swarm-es.com

¿Por qué tanta popularidad con Python?

Aparte de estar molesto con los espacios en blanco como sintaxis, no soy un enemigo, simplemente no me fascina la Python.

Aprecio la poesía de Perl y he programado hermosos servicios web en bash & korn y Shebang gnuplot. Escribo documentos en troff y no me importa REXX. No encontré tcl más útil hace años, pero ¿cuál es el gran olor de Python? Veo listados de trabajo y muchos candidatos con esto como premio y trofeo en sus hojas de vida.


Supongo que en realidad, estoy tratando de venderme personalmente en esto, simplemente no puedo encontrar una razón.

55
Jé Queue

Python es un lenguaje bien diseñado con una sintaxis razonablemente limpia, una biblioteca estándar integral, excelente documentación incluida y de terceros, despliegue generalizado y la inmediatez de un lenguaje de estilo "scripting" (es decir, ningún paso de compilación explícito).

61
Greg Hewgill

He encontrado que Python) es el lenguaje de programación más natural en el que he escrito código. He codificado en muchos lenguajes antes y después de Python, y en mayor o menor hasta cierto punto, tienes que luchar contra el lenguaje para que haga lo que quieras. Python reduce esta lucha masivamente. Eric S Raymond lo dijo mucho mejor de lo que puedo en ¿Por qué Python?

Como punto relacionado, Python mantiene su limpieza incluso mientras evoluciona rápidamente. En la mayoría de los idiomas con los que he trabajado, la introducción de nuevas características del lenguaje introduce muchas arrugas. Pero con Python, incluso el lenguaje principal Las características (los decoradores vienen a mi mente) se agregan todo el tiempo, sin sentir como hacks feos.

76
Chinmay Kanchi

Espero que esto no suene demasiado cínico, pero IMO Python es tan popular por la misma razón por la que Java, C # y Objective-C lo son. No porque haya algo espectacular sobre los lenguajes en sí, sino porque cada uno tiene un patrocinador de magacorporate que puede producir mucha publicidad, mucha publicidad y muchas bibliotecas y soporte para su idioma preferido.

26
Mason Wheeler

Mi experiencia es que las personas que encuentran verdadera alegría en la programación a menudo buscan un lenguaje que les quede mejor que lo que aprendieron en la escuela o la universidad. Básicamente, esto significa que pasarán del valor predeterminado PHP/Visual Basic/C++/Java/C #) a algo más exótico (negocios/carrera) como Python , Ruby, Haskell e incluso Perl (debido a su enorme valor de hack y oscuridad).

No me malinterpreten, hay muy programadores experimentados de C #/VB.net que se enorgullecen y disfrutan de su trabajo y código (los muchachos de StackOverflow son un muy buen ejemplo), pero ustedes no ' t conviértete en un programador python solo porque eso es lo que te enseñaron en la escuela; tiene que ser tu propia decisión.

Creo que Jeff Atwoord tenía una publicación de blog sobre esto, pero no puedo encontrarla. Si lo encuentro, actualizaré este comentario.

11
Ivo van der Wijk

En comparación con Ruby, que es realmente genial y produce increíbles Code Golf-offs, Python tiene esta filosofía central de que "Debería haber una, y preferiblemente solo una forma obvia de hacer [las cosas], "es decir, la manera idiomática Python. He encontrado que esto es una gran ventaja en comparación con Ruby.

9
Dan Rosenstark

Empecé a amar Python por la misma razón que describe Eric S. Raymond: el acto de escribir programas en Python es conceptualmente muy similar a pensar el acto de diseñando código en mi cabeza.

Aprender a ser un buen programador Python me convirtió en un mucho mejor programador de C #. Me ayudó a entender LINQ mucho más fácil, por ejemplo. Puede que nunca haya aceptado un tipo como Dictionary<string, Func<T>>, o se sintió cómodo usando yield return, si no hubiera usado clases y generadores en Python. AOP es mucho más fácil de entender ahora que he usado decoradores Python. La lista continúa.

8
Robert Rossney

En primer lugar, las peculiaridades del lenguaje insignificantes como la sangría forzada en Python importa poco si el lenguaje en sí es poderosamente expresivo y útil. También me rechazaron al principio debido a eso, pero pronto aprendí a mirar más allá y ahora ni siquiera lo siento como un obstáculo, porque el lenguaje es mucho más fácil para mí trabajar. Es como sigilos en variables en Perl, es una peculiaridad de lenguaje inofensivo y cualquiera que se sienta cómodo en el idioma no se siente molesto por él. .

Para entender las razones por las que tanta gente piensa Python es genial, solo intenta aprender el idioma. Las razones son en su mayoría las mismas que Perl. Me parece que me gusta la sintaxis en Python (por ejemplo, listas de comprensión, OOP sintaxis, etc.), pero eso es realmente subjetivo y su opinión puede diferir. Prefiero Python para proyectos más grandes, mientras sigo usando Perl para scripts más pequeños.

Y eso es la respuesta a tu pregunta. Usted compara Python con Perl, bash y tcl. La cuestión es que no es una comparación justa. Idiomas como bash fueron diseñados para escribir pequeños scripts para automatizar tareas comunes. Algunas personas piensan que Perl también se vuelve difícil de manejar si el código se hace lo suficientemente grande (Perl bien escrito no lo hace, pero el código bien escrito es difícil de encontrar en un proyecto grande). IMHO Python difiere de otros lenguajes de 'scripting' en eso se adapta muy bien a grandes proyectos, así como a pequeños guiones únicos. Creo que Ruby también tiene esa misma calidad.

6
MAK

La filosofía de que el dictador benevolente debe hacer cumplir su idea de buen estilo [1], su idea de buena programación, su idea de cómo programar me frustra regularmente. No pienso como van Rossum. Sin embargo, su lenguaje resiste los intentos de expresar pensamientos ajenos a Van Rossum. Su pensamiento funciona realmente bien para muchos (¿la mayoría?) Programadores. Pero parece que no encajo en su modelo de cómo programar.

Por eso creo que Perl es un idioma superior.

[1] Vea su blog sobre eliminar reduce.

6
Paul Nathan

Desde 2004, he usado Python para desarrollar:

  • GUI
  • Scripting escenas de trazado de rayos con Python a enlaces de C++
  • Sistemas de construcción automatizados multiplataforma
  • Scripts de prueba
  • Herramientas de uso general para resolver sus problemas cotidianos.
  • Sitios web y aplicaciones web

En 2004, Python era el lenguaje elegido porque Python son portátiles en Windows, Linux y Mac con muy pocas modificaciones.

5
Thierry Lam

Creo que hasta cierto punto Python es el único lenguaje de programación que necesitarás, a menos que quieras escribir un kernel del sistema operativo. Es adecuado para el uso interactivo, hacks aleatorios, administración del sistema, científico aplicaciones, herramientas de sistema operativo, aplicaciones web, aplicaciones GUI, incrustaciones, etc., etc., es portátil, gratuito y muy utilizado. Ningún otro lenguaje de programación realmente cubre todos esos campos en la práctica. Es una muy buena inversión estratégica para una persona y una compañía.

5
Peter Eisentraut

Es elegante y realmente fácil de aprender, y una vez que esté familiarizado con sus tipos básicos (especialmente las listas) su productividad no tendrá límite. Es perfecto para los algoritmos de creación de prototipos, o para escribirlos en un lenguaje similar a un pseudocódigo que eventualmente se puede colocar directamente en una máquina, y es realmente bueno como lenguaje de script para realizar trabajos repetitivos o realizar operaciones molestas en los archivos. Lo uso como un lenguaje adhesivo para hacer que los subprocesos se comuniquen entre sí: no es tan poderoso como bash para algunas tareas fáciles, pero es MUCHO más fácil si necesita hacer algo más que una sola línea de código.

Y luego no distingue entre funciones y subrutinas, ya sabes a qué me refiero.

4
Lorenzo Stella

Para mí Python ha sido un querido amigo. Es un lenguaje de scripting y creación de prototipos decente. Las cosas clave que puedo pensar son:

  • Sintaxis limpia, muy simple y fácil de entender.
  • Multi-paradigma, ¿usarlo como lenguaje imperativo? Por supuesto. OOP? No hay problema. También tiene algunas características de lenguaje funcional ligero, p. lambda, listas de comprensiones, etc.
  • Para necesidades informáticas básicas, tiene soporte nativo para las estructuras de datos esenciales, matriz, tupla, diccionario (matriz asociativa), conjunto, etc.
  • Otras características pueden hacer que un programador sea muy productivo, p. mecanografía, reflexión, metaprogramación, decoradores, generadores, etc.
  • Rico soporte de biblioteca
4
grokus

Muchos Python amantes que veo acaban de cambiar de entorno C y quedaron impresionados con cosas como "Hello "+ "World" es "Hello World". Entonces, diría que este es el primer lenguaje de secuencias de comandos que no reúne etiquetas esotéricas/específicas y, por lo tanto, se extiende entre las personas martirizadas como el fuego en un bosque seco. Y así, la moda creada ahora vive sola.

3
mbq

Volviendo a abordar la pregunta ahora que estoy un poco menos cansado:

Python es un lenguaje que he encontrado particularmente adecuado para tareas de programación científica, que es uno de los lugares donde su popularidad está creciendo con bastante fuerza. Algunas razones por las cuales:

  • El apoyo comunitario bastante sólido significa que hay algunas bibliotecas sólidas en funcionamiento, y Python funciona como un reemplazo decente para MATLAB y algunos de los otros idiomas populares en ese campo.
  • Funciona bien con C cuando necesita necesita velocidad, pero a menudo la velocidad no es realmente tan necesaria, por lo que la naturaleza interpretada de Python no es tan grande de un trato.
  • He descubierto que es un lenguaje bastante accesible sin una gran cantidad de lo que, para los extraños, se sienten como reglas de sintaxis extrañamente arbitrarias. Es bonito Swift para traducir entre pseudocódigo y Python.
  • "Tómelo o déjelo OOP". Una gran cantidad de proyectos de programación científica no se benefician tanto de una extensa POO. Algunos lo hacen. Es bueno tener un lenguaje que pueda saltar fácilmente entre los dos.
  • Fuerte soporte multiplataforma. Especialmente porque con lo que trabajo rara vez involucra GUI, puedo confiar en poder enviar un programa Python a otra persona sin preocuparme de qué sistema operativo están ejecutando.

No es el final de todos los lenguajes de programación, pero es un lenguaje decente "Sí, probablemente tenga una herramienta para resolver cualquier problema que surja", lo que probablemente sea la razón por la que goza de popularidad en este momento.

2
Fomite

Python es un lenguaje muy 'webby' tanto en los marcos disponibles (Django, Zope, etc.) como en las bibliotecas fácilmente importables, que nuevamente cubren muchas funciones web.

Para los desarrolladores web que pasan de ser solo un conjunto de habilidades HTML, CSS + JS (anecdóticamente una gran fuente de nuevos programadores en los últimos años), creo que esto lo convierte en una propuesta muy atractiva (ídem Ruby).

Además, Google no es Microsoft ...

1
Jon Hadley

Creo que una de las razones principales es que el 90% de Google está hecho de Python.

Sin embargo, Python también es un lenguaje de programación potente y fácil de aprender. Tiene estructuras de datos eficientes de alto nivel y un enfoque simple pero efectivo para la programación orientada a objetos. La elegante sintaxis y escritura dinámica de Python, junto con su naturaleza interpretada, lo convierten en un lenguaje ideal para secuencias de comandos y desarrollo rápido de aplicaciones en muchas áreas en la mayoría de las plataformas.

El intérprete Python y la extensa biblioteca estándar están disponibles gratuitamente en formato fuente o binario para todas las plataformas principales desde el sitio web Python, http: //www.python.org/ , y se puede distribuir libremente. El mismo sitio también contiene distribuciones y punteros a muchos terceros gratuitos Python módulos, programas y herramientas, y más documentación.

El intérprete Python se extiende fácilmente con nuevas funciones y tipos de datos implementados en C o C++ (u otros lenguajes invocables desde C). Python también es adecuado como un Lenguaje de extensión para aplicaciones personalizables.

0
blackhat