2 de enero de 2009

Unas cuantas frases sobre programación

Me ha llegado este mail de un compañero de LSI y me he descojonado. Entre paréntesis van mis comentarios :)

"Debugging es dos veces más difícil que escribir el código en primer lugar. Entonces si escribes el código tan astutamente como sea posible, no eres -por definición- tan listo como para debugearlo" -- Brian Kernighan

(Pues piensa antes de programar, plantéate lo que tienes que hacer, hazte un diagramilla en una libreta y no tendrás que debugar)


"Sólo hay dos tipos de lenguajes: aquellos de los que la gente se queja y aquellos que nadie usa" --- Bjarne Stroustrup

(Yo me quejo del Java. Todo el mundo se queja del Java. Yo uso Python. Google usa Python. Aún no conozco a nadie que se queje de Python)


"Cualquier tonto puede escribir código que un ordenador entiende. Los buenos programadores escriben código que los humanos pueden entender" --- Martin Fowler

(Lo difícil es hacer código que los monos sean capaces de entender, porque los developers humanos se irán al carajo después de esta crisis y contrateremos a monos que trabajen por plátanos)


"Hay dos formas de diseñar software: la primera es hacerlo tan simple que obviamente no hay deficiencias y la segunda es hacerlo tan complicado que no hay deficiencias obvias. La primera forma es mucho más difícil." --- C.A.R. Hoare

(Y de ahí que tengamos a miles de consultoras haciendo parametrizaciones de ERPs... sus deficiencias son tan obvias porque ha sido "chupado" hacerlo en Bangalore)


"Mucho del software hoy en día se parece a una pirámide egipcia: con millones de ladrillos apilados uno encima del otro, sin integridad estructural y hecho por pura fuerza bruta y miles de esclavos." --- Alan Kay

(Qué estaba diciendo yo de los ERPs... En Bangalore trabajan por platos de arroz, verdad? Lo próximo serán los plátanos para los monos!)


"Medir el progreso de la programación por líneas de código es como medir el progreso en la construcción de aviones por el peso." --- Bill Gates

(Medir el progreso de la programación por cantidad de pasta invertida en marketing es como medir la calidad del producto en recursos hardware necesarios para ejecutarlo. Este vídeo es muy ilustrativo)


"Si deseas empezar y desarrollar algo grandioso, no necesitas millones de dólares de capitalización. Necesitas suficiente pizza y Diet Coke en la nevera, una PC barata y trabajo y dedicación para realizar tu idea." --- John Carmack

(Y un par de "coachers" que impidan que te vuelvas loco. Y un camello que te venda anfetaminas para que aguantes por las noches. Y una familia que no te pregunte demasiado por lo que estás haciendo. Y un vidente que te diga si tendrás éxito. Y... Bueno, mejor no sigo)


"Los programas deben ser escritos para que la gente los lea y sólo incidentalmente, para que las máquinas los ejecuten." --- Abelson / Sussman

(Claro, claro. Por eso Satanás creo ABAP 4, JBPM y BPEL4WS, no te jode... para que la gente los leyese, claro)


"Pregunta: ¿Cómo se atrasa un año un proyecto grande de software? Respuesta: Un día a la vez." --- Fred Brooks

(O porque gente como tú está pariendo frases como esas en vez de estar picando código! Anda y ponte a currar!)


"Nadie debe empezar un proyecto grande. Empiezas con uno pequeño y trivial y nunca debes esperar que crezca; si lo haces solamente sobre-diseñarás y generalmente pensarás que es más importante de lo que lo es en esta etapa. O peor, puedes asustarte por el tamaño de lo que tu esperas que crezca. Así que empieza pequeño y piensa en los detalles. No pienses acerca de la foto grande y el diseño elegante. Si no resuelve una necesidad inmediata, seguramente está sobre-diseñado. Y no esperes que la gente salte a ayudarte, no es así como estas cosas funcionan. Primero debes tener algo medianamente usable y otros dirán "hey, esto casi funciona para mí" y se involucrarán en el proyecto." --- Linus Torvalds

(Ya, ya. Y cuando te veas sin Business Plan y con un año dedicado a razón de 18 horas al día sin festivos, vas y liberas el código para ver si alguien se dedica, de manera altruísta, a arreglar las pífias que cometiste por no pensar en términos estratégicos.)


"Debo confesar un fuerte prejuicio en contra de la moda del código reusable. Para mí, "el código re-editable" es mucho, mucho mejor que una caja negra intocable." --- Donald Knuth

(Podría repetir eso ante la gente de SAP, por favor? Es que creo que no lo han entendido...)