¿Por qué tanta popularidad con Python? [cerrado]

52

Aparte de estar molesto con los espacios en blanco como sintaxis, no soy un enemigo, simplemente no me fascina 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 lo encontré más útil hace años, pero ¿cuál es el gran hedor de Python ? Veo listados de trabajo y muchos candidatos con esto como un premio y amp; trofeo en sus curriculums vitae.

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

    
pregunta Xepoch 30.09.2015 - 02:56

16 respuestas

60

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

    
respondido por el Greg Hewgill 20.09.2010 - 05:52
75

Creo 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 medida, tienes que luchar El idioma para que haga lo que quieras. Python reduce esta lucha masivamente. Eric S Raymond lo dijo mucho mejor que yo 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 de lenguaje introduce muchas arrugas. Pero con Python, incluso las características principales del lenguaje (los decoradores vienen a la mente) se agregan todo el tiempo, sin sentirse como hacks feos.

    
respondido por el Chinmay Kanchi 20.09.2010 - 06:15
24

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 en los idiomas en sí, sino porque cada uno tiene un patrocinador magacorporado que puede producir mucha publicidad, mucha publicidad y muchas bibliotecas y soporte para su idioma preferido.

    
respondido por el Mason Wheeler 20.09.2010 - 05:39
10

Mi experiencia es que las personas que encuentran verdadera alegría en la programación a menudo buscan un lenguaje que se ajuste mejor a lo que aprendieron en la escuela o la universidad. Básicamente, esto significa que se moverán de los valores predeterminados de PHP / Visual Basic / C ++ / Java / C # a algo más exótico (empresarial / profesional) como Python, Ruby, Haskell e incluso perl (debido a su enorme valor de hackeo y oscuridad).

No me malinterpretes, hay programadores de C # / VB.net muy experimentados que se enorgullecen de su trabajo y código (los chicos de StackOverflow son un muy buen ejemplo), pero no te conviertes en un programador de 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 encontrarlo. Si lo encuentro actualizaré este comentario.

    
respondido por el Ivo van der Wijk 20.09.2010 - 08:47
9

En comparación con Ruby, que es realmente genial y produce increíbles salidas de golf de código, Python tiene esta filosofía fundamental de que "debe haber una, y preferiblemente una sola, forma obvia de hacer [cosas]", es decir, la forma idiomática de Python. . He encontrado que esto es una gran ventaja en comparación con Ruby.

    
respondido por el Dan Rosenstark 23.10.2010 - 01:26
8

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

Aprender a ser un buen programador de Python me hizo un mucho mejor programador de C #. Hizo que la comprensión de LINQ fuera mucho más fácil, por ejemplo. Es posible que nunca haya adoptado un tipo como Dictionary<string, Func<T>> , o me haya sentido 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 de Python. La lista continúa.

    
respondido por el Robert Rossney 21.09.2010 - 01:40
6

En primer lugar, las peculiaridades triviales del lenguaje como la sangría forzada en Python tienen poca importancia si el lenguaje en sí es poderosamente expresivo y útil. También me rechazaron al principio debido a esto, 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 las variables en Perl , es una peculiaridad de lenguaje inofensivo y cualquiera que se sienta cómodo con el idioma no se siente molesto por él.

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

Y esa es la respuesta a tu pregunta. Comparas Python con Perl, bash y tcl. Lo que pasa es que no es una comparación justa. Los lenguajes 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 es lo suficientemente grande (Perl bien escrito no lo hace, pero es difícil encontrar un código bien escrito en un proyecto grande). IMHO Python se diferencia de otros lenguajes de 'scripting' en que se adapta muy bien a proyectos grandes así como a pequeños scripts únicos. Creo que Ruby también tiene la misma calidad.

    
respondido por el MAK 20.09.2010 - 11:59
5

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

    
respondido por el Peter Eisentraut 23.09.2010 - 12:16
5

Desde 2004, he usado Python para desarrollar:

  • GUIs
  • Scripting ray tracer escenas con enlaces de Python a C ++
  • Sistemas de construcción automatizados multiplataforma
  • Scripts de prueba
  • Herramientas de propósito general para resolver sus problemas cotidianos
  • sitios web y aplicaciones web

En 2004, Python fue el idioma elegido porque los scripts de Python son portátiles en Windows, Linux y Mac con muy pocas modificaciones.

    
respondido por el Thierry Lam 22.10.2010 - 23:38
4

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

  • Sintaxis limpia, muy simplista y fácil de entender
  • Multi-paradigma, usalo como un lenguaje imperativo? Por supuesto. OOP? No hay problema. También tiene algunas características de lenguaje funcional ligero, por ejemplo, lambda, listas de comprensión, etc.
  • Para las 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, por ejemplo, mecanografía de pato, reflexión, meta-programación, decoradores, generadores, etc.
  • Compatibilidad con bibliotecas enriquecidas
respondido por el grokus 21.09.2010 - 01:45
4

Es elegante y realmente fácil de aprender, y una vez que esté familiarizado con los tipos básicos (especialmente las listas), su productividad no tiene límite. Es perfecto para los algoritmos de creación de prototipos, o para escribirlos en un lenguaje similar a pseudocódigo que eventualmente se puede colocar directamente en una máquina, y es realmente bueno como lenguaje de scripting para realizar trabajos repetitivos o realizar operaciones molestas en los archivos. Lo uso como un lenguaje de cola para hacer que los subprocesos se comuniquen entre sí: no es tan poderoso como bash para algunas tareas fáciles, pero 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.

    
respondido por el Lorenzo Stella 23.10.2010 - 01:16
4

La filosofía de que el dictador benevolente debe imponer su idea de buen estilo [1], su idea de una buena programación, su idea de cómo programar me frustra regularmente. No pienso como van Rossum. Sin embargo, su lenguaje se resiste a los intentos de expresar pensamientos que no son de 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] Consulta su blog sobre la eliminación de reduce .

    
respondido por el Paul Nathan 23.10.2010 - 02:00
3

Muchos amantes de Python que acabo de cambiar de entornos C y quedaron impresionados con cosas como "Hello "+ "World" is "Hello World" . Así que diría que este es el primer lenguaje de scripting que no recopila 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.

    
respondido por el mbq 20.09.2010 - 15:45
2

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

Python es un lenguaje que he encontrado especialmente 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 que:

  • El apoyo comunitario bastante sólido significa que hay algunas bibliotecas sólidas en su lugar, y Python funciona como un reemplazo decente para MATLAB y algunos de los otros idiomas populares en ese campo.
  • Juega bien con C cuando necesitas necesitas velocidad, pero a menudo la velocidad no es realmente tan necesaria, por lo que la naturaleza interpretada de Python no es tan importante.
  • He encontrado que es un lenguaje bastante accesible sin una gran cantidad de lo que, para los de fuera, sienten como reglas de sintaxis extrañamente arbitrarias. Es bastante rápido traducir entre pseudocódigo y Python.
  • "Lo tomas o lo dejas OOP". Una gran cantidad de proyectos de programación científica no se benefician tanto de la OOP extensa. Algunos lo hacen. Es bueno tener un lenguaje que pueda saltar entre los dos fácilmente.
  • Soporte fuerte multiplataforma. Especialmente porque con lo que trabajo rara vez involucra GUI, puedo confiar bastante en poder enviar un programa Python a otra persona sin preocuparme por el sistema operativo que están ejecutando.

No es el fin de todo, ni de todos los lenguajes de programación, pero es un lenguaje decente "Sí, probablemente tenga una herramienta para resolver cualquier problema que surja", por lo que es probable que esté disfrutando de popularidad en este momento. / p>     

respondido por el Fomite 26.09.2011 - 02:35
1

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

Para los desarrolladores web que están pasando de solo un HTML, CSS + JS skills (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 ...

    
respondido por el Jon Hadley 20.09.2010 - 09:57
0

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

Sin embargo, Python también es un lenguaje de programación potente y fácil de aprender. Cuenta con estructuras de datos de alto nivel eficientes 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 la creación de scripts y el rápido desarrollo de aplicaciones en muchas áreas en la mayoría de las plataformas.

El intérprete de Python y la extensa biblioteca estándar están disponibles gratuitamente en formato fuente o binario para todas las plataformas principales del sitio web de Python, enlace , y puede ser distribuido libremente. El mismo sitio también contiene distribuciones y punteros a muchos módulos, programas y herramientas de Python de terceros, y documentación adicional.

El intérprete de Python se amplía fácilmente con nuevas funciones y tipos de datos implementados en C o C ++ (u otros idiomas que se pueden llamar desde C). Python también es adecuado como un lenguaje de extensión para aplicaciones personalizables.

    
respondido por el blackhat 26.09.2011 - 02:13

Lea otras preguntas en las etiquetas