Esta entrada de blog examina la necesidad, así como las ventajas y desventajas de un estilo de codificación estándar para mejorar la legibilidad y la eficiencia de la colaboración en una era donde la programación se ha popularizado.
Con los recientes avances en tecnología informática, el interés por este campo ha crecido, lo que ha llevado a un aumento en el número de personas que desean aprender a programar. Ya sea estudiando por su cuenta con libros o tomando cursos en academias de programación especializadas durante algunos meses, ahora es posible que cualquiera cree sus propios programas, incluso sin una amplia experiencia. Esto se debe al desarrollo de diversas herramientas que facilitan el acceso a la programación. Por ejemplo, Google ofrece el SDK (Kit de Desarrollo de Software) de Android de forma gratuita, lo que permite desarrollar programas que se ejecutan en el sistema operativo Android. Estas herramientas brindan comodidad y ayudan incluso a quienes carecen de conocimientos especializados a programar fácilmente.
Sin embargo, el hecho de que la programación se haya vuelto accesible para todos no es del todo positivo. La popularización de la programación ha traído consigo varios problemas, en particular la dificultad de leer código escrito con diferentes estilos de codificación. El estilo de codificación es análogo al estilo de escritura. Si bien un texto puede parecer comprensible siempre que la gramática sea correcta, los autores utilizan un estilo apropiado al propósito del texto para facilitar su comprensión. Por ejemplo, así como un ensayo requiere un estilo conciso y claro en lugar de expresiones floridas, en la codificación también, incluso si un programa funciona con la sintaxis correcta, agregar un estilo de codificación apropiado resulta en un código más legible. Por el contrario, un estilo de codificación inapropiado dificulta la comprensión del código.
A medida que los programas crecen, su desarrollo suele implicar la colaboración de varias personas. Por lo tanto, los programadores deben considerar la legibilidad para garantizar que otros puedan leer y comprender fácilmente su código. Sin embargo, quienes no son expertos y tienen poca experiencia en programación tienen dificultades para escribir código legible. Esto se debe a que quienes aprenden a programar mediante cursos cortos se centran únicamente en crear programas que funcionen, sin aprender a escribir código legible. Un código poco legible no solo dificulta la colaboración, sino que también puede causar problemas durante futuras modificaciones.
Para solucionar este problema, necesitamos establecer un método para que los principiantes escriban código altamente legible. Con este fin, propongo la adopción de un estilo de codificación estándar. Un estilo de codificación estándar se refiere a las normas que exigen a los programadores abandonar sus estilos individuales y adherirse a un estilo estándar predeterminado. Si bien la mayoría de los lenguajes de programación no imponen restricciones de estilo de codificación más allá de la sintaxis, la estandarización del estilo de codificación puede facilitar la comprensión del código y reducir los problemas de legibilidad.
Por supuesto, puede haber contraargumentos a la propuesta de establecer un estilo de codificación estándar. Dado que cada persona tiene su estilo preferido, un estilo estándar podría resultar una limitación incómoda para algunos programadores. Codificar según un estilo fijo en lugar de uno propio puede ser difícil y aumentar el tiempo de trabajo. De hecho, yo mismo he experimentado esta dificultad. En junio pasado, mientras trabajaba como asistente de corrección para la Olimpiada Coreana de Informática, tuve que escribir código para proporcionar como respuesta modelo a los estudiantes. Intenté imitar el estilo de las respuestas modelo del año anterior para facilitar su comprensión, pero seguir un estilo desconocido hizo que una tarea que debería haber llevado una hora se extendiera a más de dos.
Si bien los estilos de codificación estándar pueden reducir la eficiencia del trabajo de esta manera, creo que tienen efectos positivos en muchos sentidos.
En primer lugar, los estilos de codificación estándar son eficientes para el mantenimiento a largo plazo de los programas. Las empresas actualizan continuamente sus programas tras su lanzamiento, corrigiendo errores o añadiendo funcionalidades. Dado que los programadores suelen cambiar durante este proceso, un código legible es fundamental para que los nuevos programadores comprendan fácilmente el código existente. Adoptar un estilo de codificación estándar reduce la necesidad de que cada programador se centre individualmente en la legibilidad, y el estilo definido facilita la lectura del código.
De hecho, algunas empresas imponen su propio estilo de codificación para mejorar la eficiencia del mantenimiento y exigen que todos los programadores lo sigan. Durante una visita a Google Corea hace cinco años, Google hizo hincapié en que todos los programadores debían seguir el estilo de codificación definido por la empresa. En cambio, un amigo que trabaja en una empresa de videojuegos me comentó que allí no tienen un estilo de codificación establecido.
En segundo lugar, en la tendencia actual donde los proyectos de código abierto son altamente valorados, un estilo de codificación estándar beneficiaría enormemente a los programadores. El código abierto está disponible públicamente, lo que permite que no solo los programadores profesionales, sino también los no expertos, accedan a él fácilmente, facilitando así que diversos usuarios mejoren la funcionalidad de los programas y solucionen problemas. Debido a esta naturaleza colaborativa del código abierto, el código escrito en diferentes estilos puede mezclarse, dificultando su comprensión. Utilizo con frecuencia código abierto relacionado con gráficos por computadora y, personalmente, he tenido dificultades para leerlo debido a la variedad de estilos de codificación. Contar con un estilo de codificación estandarizado podría haber evitado este inconveniente.
En tercer lugar, los estilos de codificación estandarizados también pueden mejorar la eficiencia en la enseñanza de la programación. Esto, además, reduce la carga de trabajo de los docentes. Recordando mi experiencia como instructor en una academia de programación, dediqué mucho tiempo a revisar el código de los estudiantes y corregir errores. Los estudiantes solían centrarse en escribir código funcional en lugar de código legible. El código ilegible dificultaba la detección de errores, lo que requería mucho tiempo y esfuerzo, y causaba un estrés considerable. Si los estudiantes hubieran escrito código siguiendo un estilo estándar, estas dificultades se habrían reducido. El Departamento de Ciencias de la Computación de la Universidad Nacional de Seúl también ofrece varios cursos que incluyen evaluaciones de legibilidad, lo que anima a los estudiantes a escribir código altamente legible. Por lo tanto, un estilo de codificación estandarizado beneficia tanto a docentes como a estudiantes.
Desde la perspectiva del estudiante, los estilos de codificación estandarizados pueden reducir la confusión y aumentar la motivación. Los libros de programación y los cursos en línea suelen usar estilos inconsistentes, e incluso a veces enseñan estilos incorrectos. Como aprendices, es difícil juzgar la corrección de estos estilos, y simplemente seguirlos puede llevar a convertirse en un programador que escribe código ilegible. Contar con un estilo estándar evitaría este problema.
Si bien hemos analizado los efectos positivos que podría tener un estilo de codificación estandarizado, también debemos considerar su viabilidad. Por otro lado, debido al modelo matemático de los lenguajes de programación, puede resultar complejo para las computadoras procesar el estilo de codificación más allá de la sintaxis. Además, existen dificultades para adaptar todo el código existente, escrito en diversos estilos, a un estándar, y se debate qué estilo debería adoptarse como tal.
Encontrar una solución positiva a estos problemas de viabilidad es difícil, pero a medida que avanza la investigación, las posibilidades aumentan gradualmente. Por ejemplo, Python está trabajando para regular el estilo de codificación mediante la adición de una condición de sintaxis llamada regla de indentación.
En resumen, la estandarización de los estilos de codificación tiene importantes repercusiones positivas en el mantenimiento, la promoción del software libre y la educación. Tanto los estudiantes de informática como los de otras disciplinas, así como cualquier persona interesada en la programación, deben esforzarse por escribir código altamente legible. Si bien esto resulta difícil en la situación actual sin un estilo estándar, considero que un estilo de codificación estandarizado es absolutamente necesario por estas razones.