A menudo leo sobre la importancia de la legibilidad y la facilidad de mantenimiento. O bien, leo opiniones muy fuertes sobre qué características de sintaxis son malas o buenas. O discusiones sobre los valores de ciertos paradigmas, como OOP.¿Qué tan grande es el rol que juega la subjetividad en la programación?
Aparte de eso, esta misma pregunta flota en mi mente cada vez que leo debates sobre SO o Meta sobre preguntas subjetivas. O lea preguntas sobre las mejores prácticas y algunas veces me encuentre a mí o a otros en desacuerdo.
¿Qué papel juega la subjetividad en el ámbito de la programación?
A veces creo que juega un papel importante. Los desarrolladores de software son ingenieros en cierto modo, pero también personas. Una gran parte de la programación se trata de código que es humana legible. Esto es muy diferente de las matemáticas o la física u otras disciplinas con reglas muy exactas y estructuradas. Aquí la estructura exacta y las reglas están en gran medida en el aire, cambian por capricho, y de ahí la cantidad de idiomas que existen. Y una persona puede encontrar un idioma muy legible, y otra persona puede encontrar su propio idioma el más reconfortante.
Lo mismo con las prácticas. Una persona puede no gustar ciertas prácticas aceptadas. Yo mismo encuentro las clases divididas en archivos diferentes, muy ilegibles, por ejemplo.
Pero, no puedo decir que las reglas no hayan ayudado en general. Ciertas prácticas tienen y hacen la vida más fácil. Y los nuevos lenguajes han dado lugar a la sintaxis y la estructura que hacen la vida más fácil. Ciertamente, ha habido una progresión hacia el código que es más fácil de leer y mantener incluso dado un grupo de personas en gran parte diverso. Entonces quizás estas cosas no sean tan subjetivas como pensaba.
Me recuerda, en cierto modo, el diseño de la interfaz de usuario. Ciertamente es subjetivo, pero luego hay toda una disciplina involucrada en la creación de una buena IU y tiende a funcionar.
¿Hay algo no subjetivo sobre las ideas detrás de la facilidad de mantenimiento, la legibilidad y otras mejores prácticas? ¿Hay algo tangible que captar cuando uno desarrolla un nuevo idioma o piensa en nuevas prácticas?
Sería irónico si esta pregunta se cerró como subjetiva (aunque espero que no lo sea). –
Subjetividad: es realmente un área gris –
Con respecto a la legibilidad, no creo que las matemáticas y la física difieran de la programación como usted dice. He visto una notación fea y una notación realmente hermosa que describe el mismo concepto. –