Eres una persona con la mente sucia y con el titulo has pensado en cosas sexuales pero realmente son dos conceptos que se usan en programación:
– Rápido y sucio (Quick and dirty)
– Peor es mejor (también conocido como estilo Nueva Jersey)
Tim Paterson trabajó en una empresa llamada SCP (Seattle Computer Products) y allí desarrolló un sistema operativo que compraría en 1981 Microsoft por 50.000 dólares.
Microsoft compró ese sistema operativo y lo vendió por más dinero a IBM bautizándolo como PC-DOS, lo que terminaría siendo MS-DOS.
Paterson se esforzó mucho por detallar la originalidad de su sistema operativo porque se parecía mucho superficialmente a CP/M pero …. centrémonos en lo que veníamos a hablar: Quick and Dirty.
El sistema operativo que desarrolló Paterson se llamaba QDOS, que significaba: «Quick and Dirty Operating System».
Rápido y Sucio
Rápido y sucio se usa en el mundo hacker y para entender su significado es bueno saber que podría también llamarse «ñapa», «tente mientras cobro», «chapuza», «workaround», «apaño», …
El término se usa para hacer referencia a una solución sencilla a algún problema pero que es poco elegante, imperfecta e incluso inadecuada … pero que resuelve o enmascara el problema.
Las soluciones «Quick and Dirty» se usan para mantener algo funcionando pero sabiendo que la solución no es esa. Pero se hace el apaño rápido y a funcionar un día más.
Esta filosofía en la programación sería como lo que hacían en comic «Pepe Gotera y Otilio» o Manolo y Benito en la serie «Manos a la obra».
Quienes usan este método posiblemente en su casa tienen puertas que se abren primero golpeando hacia un lado y luego subiendo hacia arriba el pomo, tienen ventanas que has de golpearlas en un lado concreto para que se abran, etc … y es que sumar muchos apaños rápidos y sucios hace que un código sea una mierda con el tiempo para quien no conoce «los trucos».
Peor es mejor
Esta técnica de programación de software (o filosofía de diseño de software) tiene sus orígenes a principios de los 90 y tiene como filosofía que «la simplicidad en la interfaz y en la implementación es más importante que cualquier otra propiedad».
El gran poeta M. Rajoy (dicho de forma irónica) dejó reflejado esto en una frase: «Cuanto peor para todos, mejor. Mejor para mí el suyo beneficio político»
Mantener la simplicidad nos recuerda al principio KISS (Keep It Simple, Stupid!) pero en el caso de «Peor es mejor» se refiere a que el diseño debe ser simple en su implementación y en su interfaz pero sobre todo en la implementación antes que en la interfaz.
El software basado en «Peor es mejor» tendrá más éxito entre los users que un software desarrollado buscando hacer «lo correcto» (también conocido como enfoque MIT).
Esto se entiende mejor con un ejemplo. Pongamos que desarrollas un programa que inicialmente es simplemente bueno, que no es lo mejor del mundo pero es simple y funciona.
Ese software será fácil de adaptar a otro tipo de arquitecturas y sobre todo se implementará mucho más rápido y con menor esfuerzo que uno complejo que podría ser mucho mejor, con más funcionalidades y comprobaciones.
El software peor se moverá por tanto más rápidamente porque se porta y compila sin andar instalando mil dependencias y complejidades que necesitan adaptación. Una vez distribuido el software «peor» generará una presión por mejorar sus funcionalidades pero … los usuarios ya habrán aceptado lo peor como mejor que lo correcto. Dicho de otra forma: «No es el mejor software para hacer noseque (es el peor) pero es el que tengo y funciona para la mayoría de casos».
El software «peor es mejor» ganará por tanto aceptación, condicionará a los users a aceptar menos y luego será mejorado para ir acercándose a «lo correcto». Nadie va a querer (ni los expertos) ponerse a mejorar algo muy complejo … mientras que algo «peor» pero más sencillo será «mejor» y más gente le meterá mano para mejorarlo.
Resumen
Mientras que «Rápido y sucio» es una filosofía «tente mientras cobro», cortoplacista y muy mala para un mantenimiento futuro del código. «Peor es mejor» de algún modo busca la viralidad para una vez tiene una base de usuarios suficientes, mejorar.
Esto en redes se ve bien con lo de «Peor es mejor». Un toot (un estado en una red social) ultra complejo en el que se detallan cosas ultra técnicas tendrá poca aceptación y nadie comentará sobre ello mientras que un toot en el que se habla de algo que todo el mundo entiende, que se pide a gritos colaboración para mejorar … posiblemente tendrá más comentarios y será de mayor utilidad para un número más amplio de gente.
Por tanto hemos aprendido que házmelo rápido y sucio no, házmelo peor porque es mejor.
Nadie hubiera pensado jamás que lo que dijo M punto Rajoy tenía sentido pero … hoy se lo hemos dado aquí.
Un saludo cordial.



