Esta es una pregunta que pide una respuesta un tanto subjetiva y también puede variar dependiendo de su interpretación de la palabra ‘hermosa’. Veamos si podemos definir algunas categorías diferentes (sin un orden en particular) que puedan conducir a algunas métricas decentes mediante las cuales podamos clasificar la belleza del código para llegar a algunas de las mejores opciones:
- Funcionalidad
- Algunos podrían encontrar que hay una belleza en el código que es inherente debido a su capacidad bruta para proporcionar utilidad. El software que resuelve muchos problemas reales podría considerarse hermoso.
- Ingenio
- El código “inteligente” es definitivamente interesante de observar y, a menudo, puede enseñar un poco de conocimiento algorítmico o sintáctico que puede ser de naturaleza bastante no trivial. Pepitas como esta pueden ser útiles para incorporar a su propio conocimiento de codificación.
- Estructura / simplicidad
- El código simple y, por lo tanto, bien estructurado, a menudo puede ser hermoso. El uso constante de metodologías bien definidas de programación orientada a objetos es algo hermoso si eres un ingeniero que se hace cargo del código de otra persona. Esta noción a veces puede ser ayudada por el lenguaje de programación utilizado. Por ejemplo, algunos (pero ciertamente no todos) los programadores pueden considerar el lenguaje Python como más simple, y por lo tanto más bello, que C ++, ya que a menudo se lee un poco más como el inglés.
- Prominencia / Legado
- Del mismo modo que la Torre Eiffel se ha extendido como una hermosa estructura, incluso en medio de otros edificios que, objetivamente, podrían ser considerados por algunos como más impresionantes (por ejemplo, el Burj Khalifa en Dubai), también pueden verse importantes piezas de software e incluso reliquias. ser visto como hermoso simplemente por lo generalizados que están en nuestra cultura. Me imagino que si trabajaras en el equipo Core iOS de Apple o en una de las principales computadoras de vuelo para el transbordador espacial (o para el Falcon 9 en SpaceX, en el mundo espacial de hoy), te sorprendería lo valioso que es eso el código es
Personalmente, coloco el sistema operativo moderno en lo alto de la lista de uno de los códigos más bellos jamás escritos. Dependiendo de la versión, una cierta distribución de Linux puede tener más de 15 millones de líneas de código (algunos sistemas operativos tienen incluso más). Esto se puede atribuir al mero hecho de que un sistema operativo está diseñado para manejar la ejecución en miles de dispositivos diferentes, admite muchos periféricos diferentes (como monitores de diferentes tamaños y resoluciones), datos de entrada y salida en varios formatos, admite bluetooth, wifi, Esto es solo tocar la capa más alta de lo que la mayoría de los usuarios no ven como una pieza compleja de software que literalmente se conoce como el pegamento entre las aplicaciones y el hardware. Un sistema operativo hace malabares con el cambio de contexto entre diferentes procesos, gestiona la memoria física y virtual, almacena en caché los datos y, en algunos casos, incluso gestiona la distribución de energía. La conclusión es … Un sistema operativo n es increíblemente funcional, ya que debe admitir la idea de que debería ser capaz de manejar todo lo que nosotros (los usuarios) podemos ofrecerle . Linux en particular es bastante prominente en el mundo de hoy (SpaceX incluso tiene su propia versión local a bordo del cohete Falcon 9). También encuentro que hay muchas partes del kernel de Linux que son bastante ingeniosas (intente leerlo sin encontrar al menos una pieza fascinante de código). Todas estas cosas ciertamente podrían considerarse hermosas .
Eche un vistazo al código fuente de Linux aquí: torvalds / linux
- ¿Qué es una casa de software?
- ¿Qué se siente pasar de una gran empresa (como Google, Facebook, Microsoft, etc.) como ingeniero de software a Finanzas (Goldman Sachs, DE Shaw, Morgan Stanley, etc.)?
- ¿Cómo procede una sesión típica de programación de pares?
- ¿Cuán limitado seré como programador si soy malo en algoritmos y tengo malas habilidades matemáticas?
- Pruebas de software: ¿cómo se mide la efectividad de una prueba? ¿Y cómo se compara eso con su costo?