tutorial snake lenguaje instalar descargar python

snake - python tutorial



¿Qué significa "complejo es mejor que complicado"? (4)

Complejo: hace mucho. Por lo general, inevitable.

Complicado: Difícil de entender.

Me gusta esta cita ( source ):

Una persona compleja es como un iPod. Es decir, son coherentes, directos y "fáciles de usar" a la vez que son bastante sofisticados. A diferencia de la persona complicada, interactuar con una persona compleja no requiere un conocimiento especial de sus formas complicadas, porque sus formas no son complicadas. Cuando se cometen errores, tienden a ser muy indulgentes porque entienden que las personas son imperfectas. En resumen, son seres humanos maduros, sensibles.

y éste ( source ):

Un Airbus A380 es complicado. Una medusa es compleja. La red de metro de París es complicada. Como la gente lo usa es complejo. Tu esqueleto es complicado. Usted es complejo Un edificio es complicado. Una ciudad es compleja.

Algunos artículos más sobre esto:

En "El zen de Python", de Tim Peters, la frase "Complejo es mejor que complicado" me confundió. ¿Alguien puede dar una explicación más detallada o un ejemplo?


Los sistemas complicados están altamente acoplados y por lo tanto son frágiles.

Los sistemas complejos están hechos de partes simples que operan juntas para crear un comportamiento complejo emergente. Si bien los comportamientos emergentes pueden ser un desafío, las partes individuales se pueden aislar, estudiar y depurar. Las partes individuales pueden ser removidas y reutilizadas.

Comento más sobre este tema y proporciono ejemplos en mi blog.


No he leído este libro.

complejo es, en mi opinión, una solución que puede no ser fácil de entender pero está escrita en código simple y lógico.

complicada es una solución que puede ser simple (o compleja) pero está escrita en un código que no es fácil de entender porque no hay patrones ni lógica en ella, ni metáforas ni nombres adecuados.


aunque complejos y complicados suenan por igual, no significan lo mismo en este contexto.

El Zen, por lo tanto, dice: está bien construir aplicaciones muy complejas, siempre que la necesidad sea razonable.

Para dar un ejemplo:

counter = 0 while counter < 5: print counter counter += 1

El código es muy fácil de entender. No es complejo. Sin embargo, es complicado. No es necesario realizar manualmente la mayoría de los pasos anteriores.

for i in xrange(5): print i

Este código es más complejo que el ejemplo anterior. Pero: conociendo la documentación de "rango", puedes entenderla con una sola mirada. Muchos pasos están ocultos detrás de una interfaz fácil de usar.

A medida que los procesos crecen, la brecha entre lo complicado y lo complejo se ensancha.

Una regla general es seguir los otros principios del Zen de Python:

Si es difícil de explicar, no es una buena idea.

Si es fácil de explicar, podría ser una buena idea.