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 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.
0x09
, probablemente no se opondría y probablemente usaría una sangría consistente en su ancho de sangría preferido. Esto es lo mismo que Python permite.Respuestas:
Python es un lenguaje bien diseñado con una sintaxis razonablemente limpia, una biblioteca estándar integral, excelente documentación incluida y de terceros, implementación generalizada y la inmediatez de un lenguaje de estilo "scripting" (es decir, ningún paso de compilación explícito).
fuente
len
?__double_underscore_names__
, se mezclaalllowercasefunctionames
conmixed_underscore
ymixedCamelCase
nombres. Requiere un:
al final dedef
o bucles. Se utiliza una gran cantidad de abreviatura extrañostr
,dict
,islice
. Parece que no hubo ninguna convención en absoluto. Es un caos puro. Peps, pips, zens ... es más como una religión de pitón que un lenguaje. Puede tener algunas características agradables, pero no explica por qué tanta gente está tan entusiasmada con eso. No hay nada especial en pyhon. Solo otro producto mal diseñado.def
? ¿Por qué defino una función con aydef
no confunc
? No hay otro lenguaje que no sea tan intuitivo como python.He encontrado que Python es el lenguaje de programación más natural en el que he escrito código. He codificado en muchos idiomas antes y después de Python, y en mayor o menor medida, tienes que luchar contra el lenguaje para haz que haga lo que quieras. Python reduce esta lucha masivamente. Eric S Raymond lo dijo mucho mejor que yo en Why 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 principales características del lenguaje (los decoradores vienen a la mente) se agregan todo el tiempo, sin sentir como hacks feos.
fuente
Espero que esto no suene demasiado cínico, pero IMO Python es tan popular por la misma razón que Java, C # y Objective-C. No porque haya algo espectacular sobre los idiomas en sí, sino porque cada uno tiene un patrocinador corporativo que puede generar mucha publicidad, mucha publicidad y muchas bibliotecas y soporte para su idioma preferido.
fuente
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 se moverán del PHP / Visual Basic / C ++ / Java / C # predeterminado 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 programadores muy experimentados de C # / VB.net que se enorgullecen y se alegran de su trabajo y código (los muchachos de StackOverflow son un muy buen ejemplo), pero no se convierten en programadores 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 encontrarla. Si lo encuentro, actualizaré este comentario.
fuente
En comparación con Ruby, que es realmente genial y produce increíbles Code Golf-offs, Python tiene esta filosofía central de que "Debe haber una, y preferiblemente solo una, 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.
fuente
Comencé a amar Python por la misma razón que Eric S. Raymond describe: el acto de escribir programas en Python es conceptualmente muy similar a pensar en el acto de diseñar código en mi cabeza.
Aprender a ser un buen programador Python me hizo un mucho mejor programador de C #. Facilitó la comprensión de LINQ, por ejemplo. Es posible que nunca hubiera adoptado un tipo como
Dictionary<string, Func<T>>
, oyield return
me hubiera sentido cómodo usando , 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 continua.fuente
En primer lugar, las pequeñas peculiaridades del lenguaje, como la sangría forzada en Python, importan poco si el lenguaje en sí es poderosamente expresivo y útil. Al principio también me rechazaron 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í. Es como sigilos en variables en Perl , es un capricho de lenguaje inofensivo y cualquiera que se sienta cómodo en el idioma no se sienta molesto por él.
Para entender las razones por las que tanta gente piensa que Python es genial, solo intenta aprender el idioma. Las razones son principalmente las mismas que Perl. Creo que me gusta la sintaxis en Python (por ejemplo, listas 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 sigo usando Perl para scripts más pequeños.
Y esa es la respuesta a tu pregunta. Compara Python con Perl, bash y tcl. Lo que pasa 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). En mi humilde opinión, Python difiere 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 esa misma calidad.
fuente
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 muy 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 eliminación
reduce
.fuente
Creo que, hasta cierto punto, Python es el único lenguaje de programación que necesitará, a menos que quiera escribir un núcleo del sistema operativo. Es adecuado para el uso interactivo, hacks aleatorios, administración de sistemas, aplicaciones científicas, herramientas del sistema operativo, aplicaciones web, aplicaciones GUI, incrustaciones, etc., etc., es portátil, gratuito y ampliamente 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 empresa.
fuente
Desde 2004, he usado Python para desarrollar:
En 2004, Python era el lenguaje elegido porque los scripts de Python son portátiles en Windows, Linux y Mac con muy pocas modificaciones.
fuente
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:
fuente
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.
fuente
Muchos amantes de Python que veo simplemente cambiaron de entorno C y quedaron impresionados con cosas como
"Hello "+ "World"
esta"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.fuente
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:
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 es la razón por la que goza de popularidad en este momento.
fuente
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 realizan el cambio desde 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 ...
fuente
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 la escritura dinámica de Python, junto con su naturaleza interpretada, lo convierten en un lenguaje ideal para la creación de scripts y el desarrollo rápido 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, http://www.python.org/ , y pueden distribuirse libremente. El mismo sitio también contiene distribuciones y punteros a muchos módulos, programas y herramientas de Python gratuitos 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 lenguajes invocables desde C). Python también es adecuado como lenguaje de extensión para aplicaciones personalizables.
fuente