Muchos programadores, al encontrarse con Python por primera vez, se sienten inmediatamente desanimados por la importancia del espacio en blanco. He escuchado una variedad de razones por las cuales esto es inconveniente, pero nunca he escuchado una queja de un programador de Python.
Por supuesto, no he conocido a muchos programadores de Python, ya que he pasado mi carrera en el mundo de Java.
Entonces, mi pregunta es para aquellos de ustedes que han participado en un gran proyecto de Python (más de 3 meses, siendo Python el idioma principal utilizado): ¿Le pareció que el problema del espacio en blanco era inconveniente y continuamente molesto? ¿O no fue un problema una vez que te metiste en el flujo?
No estoy haciendo la pregunta porque estoy a favor o en contra de Python, o a favor o en contra de su uso de espacios en blanco. Me gusta Python, pero nunca lo he usado para nada grande.
No proporcione especulaciones si no tiene experiencia en Python.
fuente
Respuestas:
Solo hay un caso en el que encuentro que el espacio en blanco es molesto, y es cuando se modifica el código existente para que un bloque de código tenga más o menos sangría que antes (por ejemplo, agregar o eliminar un
if:
antes del código). Al escribir en un lenguaje como C, simplemente agrega elif
y un par de llaves, y (en Emacs, o me imagino algún buen editor) presione Tab para permitir que el editor corrija automáticamente la sangría. En Python, debes hacerlo tú mismo. Por supuesto, hay atajos de editor para hacerlo usted mismo, por lo que no es tan malo, pero la pérdida de redundancia impone una ligera carga adicional al programador.En general, es una victoria, aunque solo sea para evitar que la mitad de mi pantalla se llene de líneas como las siguientes:
fuente
C-c >
oC-c <
. Sin embargo, todavía tienes que hacerlo tú mismo. Para decirlo de otra manera, dado que los espacios en blanco y la lógica de código no son redundantes, no puede simplemente seleccionar un bloque gigante y llamarM-x indent-region
(o la versión de su editor) para sangrarlo "correctamente".Me encanta el importante espacio en blanco de Python. Para mí es el ejemplo perfecto de DRY a nivel sintáctico. La forma legible para indicar dónde comienza y termina un bloque de código es con sangría. Si desea que su código sea legible, debe sangrarlo independientemente del idioma. Es una tontería hacer que el programador especifique esta información dos veces, una para el compilador / intérprete y otra para humanos. Además, la sangría en lenguajes tipo C es similar a un comentario: tiene la intención de mejorar la comprensión, pero el compilador / intérprete no aplica su significado y puede desincronizarse con el significado real (donde están las llaves) muy fácilmente, ofuscando en lugar de aclarar.
fuente
Un espacio en blanco significativo es realmente conveniente para mí. Me hace escribir menos. Formatea el código de forma clara y bastante inequívoca. Debido a esto, hace que el código sea más legible.
(También me gusta el espacio en blanco significativo en Haskell, por las mismas razones).
fuente
Cuando utilicé python por primera vez, el espacio en blanco era nuevo y, por lo tanto, una restricción molesta.
Ahora ni siquiera lo noto. He estado usando Python durante 11 meses.
fuente
En primer lugar, mis lenguajes básicos son Python, SQL y Java. Me encanta el espacio en blanco de Python: es menos sintaxis y mecanografía, y obliga a las personas a escribir código legible y bien formateado. OTOH, odio la verbosidad de Java, tanto que realmente uso Python para generar toda la plantilla que tengo que escribir en Java, lo que impresiona a todos mis compañeros de trabajo de Java que están asombrados de mi productividad.
Sin embargo, la gran advertencia es cuando copie / pegue código de la web: a menudo causa espacios mixtos y pestañas que requieren un paso adicional para limpiar, y generalmente solo capturo después de una excepción de tiempo de ejecución.
fuente
highlight link RedundantSpaces Error | au BufEnter,BufRead * match RedundantSpaces "\t" | au BufEnter,BufRead * match RedundantSpaces "[[:space:]]\+$"
en mi vimrcSi un programador está molesto por la importancia de los espacios en blanco, probablemente no se convertirá en un programador de Python.
fuente
Apuesto a que encontrarías una superposición considerable entre las personas que tienen un problema con espacios en blanco significativos y aquellos que no tienen experiencia con un buen editor de texto de programador, como Emacs, que maneja la mayoría de las sangrías sin su participación.
En cualquier caso, una vez que haya internalizado Python, ya no es un problema; de hecho, su concisión y el pequeño espacio que ocupa en la pantalla se convierten en una gran ventaja para la legibilidad. Como he estado usando principalmente Python, encuentro que los lenguajes donde hay más redundancia (por ejemplo, Java y C #) son difíciles de disciplinar para escribir. Poner llaves alrededor del código cuya sangría ya hace que su estructura deje en claro mis nervios.
fuente
Para la codificación real, no es nada inconveniente, pero sí beneficioso (ver la respuesta de dsimcha).
Puede ser molesto cuando se trata de tecnologías de comunicaciones que no respetan los espacios en blanco líderes (como muchos foros web no orientados a la programación y también cuando se incrusta el código Python dentro de un lenguaje diferente, como los lenguajes de plantillas HTML), aunque veo que Más que un defecto en las herramientas que eliminan los espacios en blanco principales que un defecto en Python, es cierto que los lenguajes redundantes que expresan la estructura del código dos veces están mejor equipados para manejar entornos tan destructivos (ya que puede pegar el código en un editor y auto- reindent en función de los marcadores estructurales explícitos, o simplemente no les importa si el código solo se ejecuta en lugar de ser leído por humanos).
fuente
No encuentro molesto el espacio en blanco. Encuentro la falta o sangría inconsistente muy molesta en otros idiomas. Entiendo que este problema es uno de los problemas que el estilo pretende resolver.
Python no es uno de mis idiomas principales.
En ocasiones encuentro molesto el manejo de pestañas y espacios en sangría. Esto puede causar problemas al cambiar los editores de una edición a otra, o al editar el código que alguien más escribió. Por lo general, es trivial de resolver.
fuente
Vengo de un fondo C # / Javascript / XBase sin ningún orden en particular, y en mis pinceladas con Python no es una consideración en absoluto para mí. Es como las llaves en otros idiomas: así es como funciona, poner las cosas como dicen las reglas y secar los ojos es mi actitud.
fuente