used trend top the tendencies programming paid most languages language best programming-languages

programming-languages - trend - top programming languages



¿Por qué razones algunos programadores odian con vehemencia los idiomas donde el espacio en blanco importa(por ejemplo, Python)? (12)

C ++ es mi primer idioma y, como tal, estoy acostumbrado a que los espacios en blanco se ignoren. Sin embargo, he estado jugando con Python, y no me resulta muy difícil acostumbrarme a las reglas del espacio en blanco. Sin embargo, parece que muchos programadores en Internet no pueden superar las reglas de los espacios en blanco. Por lo que he visto, los programas C ++ de las personas tienden a tener un formato muy consistente con respecto al espacio en blanco (o es bastante difícil de leer), entonces, ¿por qué algunas personas tienen un problema tan grande con lenguajes basados ​​en el espacio en blanco como Python?


Algunos han desarrollado hábitos (por ejemplo: bucles profundamente anidados, funciones innecesariamente grandes) que perciben serían difíciles de soportar en un lenguaje sensible al espacio en blanco. Algunos han desarrollado una aversión estética para colgar guiones.


Bien, esta es una perspectiva muy estrecha, pero no la he visto mencionada en ningún otro lado: mantener un registro del espacio en blanco es una molestia si intentas generar automáticamente un script.

Cuando me encontré con Python por primera vez, no recuerdo los detalles, pero había desarrollado una herramienta de Windows con una GUI que permitía a los usuarios novatos configurar varias configuraciones y luego presioné OK. El resultado de la herramienta fue un script, que el usuario podría copiar en una máquina Unix y luego ejecutarlo allí para hacer algo u otro que fuera demasiado complicado o tedioso como para que lo hicieran manualmente. Dado que nadie mantuvo los scripts generados, no había ninguna razón para que se vieran bien. Por lo tanto, mantener un registro de la sangría parecía una carga innecesaria desde esa perspectiva.

Para la mayoría de los propósitos, sin embargo, encuentro que Python es mucho más fácil que cualquier otro idioma.


Existen diferentes tipos de espacios en blanco (espacios, tabulaciones, caracteres Unicode extraños, retornos de carro, saltos de línea, etc.), no son necesariamente distintos visualmente, y los idiomas y editores pueden tratarlos de forma caprichosa. Este no es un argumento en contra de una semántica de espacios en blanco bien diseñada , pero muchas personas están en contra de todas las formas simplemente debido a la posibilidad de un diseño deficiente.


La única razón válida por la que me he topado es que la refactorización utilizando cortar y pegar (no copiar) sin herramientas de refactorización (o cortar y pegar sintaxis) puede terminar cambiando la semántica si se comete un error fácil.


La gente lo odia porque viola el sentido común. Ni una sola de las respuestas que he leído aquí decidieron que estaba bien simplemente renunciar a los períodos y otras puntuaciones. De hecho la gramática ha sido muy buena. Si la tontería sobre la sangría que realmente lleva el significado fuera cierta, todos nos olvidaríamos del uso de la puntuación por completo.

Nadie aprendió que las líneas nuevas terminan una oración en un idioma horizontal como el inglés, en lugar de eso, aprendimos a inferir cuándo una oración terminó, independientemente de si la puntuación estaba presente o no.

Lo mismo es cierto para los lenguajes de programación, especialmente para aquellos de nosotros que empezamos con un lenguaje de programación que usó la terminación de bloque explícita. Aprendes a inferir donde un bloque comienza y se detiene con el tiempo, no significa que el espacio lo haya hecho para ti, sino la semántica del lenguaje.

La mayoría de las personas que saben leer y escribir no tendrían problemas para entender las publicaciones sin puntuaciones. Tener que depender de lo que es una representación de la ausencia de un personaje no es una buena idea. ¿Alguno de ustedes cuenta desde cero cuando hace su lista de tareas pendientes?


Las únicas quejas que (también de antecedentes de C ++) he escuchado sobre Python son de personas que no les gusta usar la opción "Reemplazar pestañas con espacio" en su IDE.


Piensa en algo que los espacios en blanco nunca deberían tener un significado táctico.


Porque el cambio da miedo. Y quizás, entre ciertos desarrolladores, hay algunos recuerdos débiles de lenguajes con reglas caprichosas sobre espacios en blanco que eran difíciles de recordar y arbitrarios, más para la conveniencia del compilador que para la expresividad.

Lo más probable es que la razón real sea no darle una buena sacudida al espacio en blanco antes de descartarlo. Pídale a alguien que corrija un error en un programa Python razonablemente complejo pero bien escrito, luego pídale que corrija un error en un sistema de 20 años en C, VB o Cobol y pregúnteles cuál prefiere.

En cuanto a mí, tengo tantos problemas con los espacios en blanco en Python o Boo como con los paréntesis en Lisp. Es decir, ninguno.


Porque están acostumbrados a lenguajes como C y JavaScript donde pueden alinear elementos como les plazca.

Cuando se trata de Python, tienes que sangrar el código según su contexto:

def Print(): ManyArgumentFunction(LongParam1,LongParam2,LongParam3,LongParam4...

En C, podrías hacer:

void Print() { ManyArgumentFunction(LongParam1, LongParam2, LongParam3,... }


Quizás su experiencia en C ++ (y, por lo tanto, quiénes son sus compañeros) está nublando su percepción de esto (es decir, el muestreo selectivo), pero en mi experiencia, la reacción al meme de "el espacio en blanco es intencional" de Python es desde lo ambivalente hasta lo que les encanta. La razón por la que a mucha gente le encanta es que obliga a la gente a formatear su código.

No puedo decir que alguna vez haya conocido a alguien que lo "odie" porque odiarlo es como odiar la idea de un código bien formateado.

Edición: déjame poner esto en alguna perspectiva.

En el mundo Java, existen dos métodos principales para empaquetar y desplegar aplicaciones web: Ant y Maven.

Ant es básicamente una función Make basada en XML que tiene tareas para las cosas comunes que haces. Es una pizarra en blanco, que es poderosa, pero también significa que usted mismo debe escribir muchas cosas comunes y cada instalación es libre de hacer las cosas de manera ligeramente diferente. Todo esto está bien intencionado pero puede hacer que sea difícil descifrar los scripts de Ant de alguien.

Maven es mucho más plenamente características. Tiene arquetipos, que son básicamente tipos de proyectos. Dependiendo de los arquetipos que utilice, no tendrá que escribir ninguna tarea para iniciar, detener, limpiar, compilar, etc., pero tendrá una estructura de directorios obligatoria, que es bastante profunda.

La ventaja de esto es que si has visto una aplicación web de Maven, las has visto todas. Ya conoces los comandos. Conoces la estructura. Eso es extremadamente útil.

Pero hay personas que odian absolutamente a Maven y creo que todo se reduce a esto: no les gusta perder el control, incluso cuando en última instancia les interesa que lo hagan. Además, encontrará una cierta marca de persona que piensa que su caso de uso es una excepción justificable. Ves mucho este rasgo de personalidad. Por ejemplo, creo que una publicación anterior de Joel mencionó una historia en la que alguien quería usar "ingresar" para pasar de los campos del formulario de nombre de usuario a contraseña, aunque la convención era que la acción predeterminada se ejecutaba (por lo general, "OK"), por lo que tenían que escribe una clase de diálogo personalizada para Windows para esto.

Básicamente, a algunas personas simplemente no les gusta que les digan qué hacer y otras son completamente obstinadas en su creencia de que tienen razón incluso cuando toda la evidencia apunta lo contrario.

Esto probablemente explica por qué algunos supuestamente odian el espacio en blanco de Python: no les gusta que les digan cómo formatear su código. Les gusta la libertad de C / C ++.


Tendrán que acostumbrarse. Inicialmente tuve un problema cuando intentaba leer algunos ejemplos, pero después de usar el lenguaje por un tiempo, empecé a gustarme.

Creo que es un hábito que la gente tiene que superar.


Viola el principio de menos asombro , porque lo tenemos arraigado en nosotros mismos (ya sea para bien o para mal) que el espacio en blanco no importa en un lenguaje de programación. El espacio en blanco es uno de esos temas que se ha dejado al estilo personal.

Todavía tengo malos recuerdos de ser un estudiante que aprendió de la manera más difícil que 8 espacios no es equivalente a una pestaña en un Makefile ... Ah, el sueño que perdí ...