C.A.R Hoare es un filósofo de nacionalidad británica nacido en Sri Lanka tal día como hoy, 11 de enero, en el año 1934, es toda una referencia en cuanto a lo que a los lenguajes de programación se refiere.
Hoare pasó gran parte de su vida profesional en el ámbito de la educación pública y universitaria colaborando esporádicamente con el sector privado y empresarial; tras su última etapa como profesor e investigador en la Universidad de Oxford, toda vez que llegó a la edad de jubilación, aceptó de buen grado volver a la empresa privada y continuó su trayectoria en Microsoft.
Estudió cultura clásica y filosofía en la Universidad de Oxford, se trasladó después a Moscú donde, además de aprender ruso, estudió Teoría de la Probabilidad y comenzó a trabajar en el estudio de las traducciones del lenguaje humano a lenguaje máquina.
Su mayor logro, aunque no el único, ha sido el descubrimiento del algoritmo de ordenamiento más utilizado actualmente, Quicksort; llegó a él tratando de buscar el modo de optimizar y agilizar la búsqueda de palabras en el diccionario y es todavía a día de hoy según todos los expertos que lo han analizado, el algoritmo de ordenación más rápido posible, no se puede mejorar ni optimizar más porque es, sencillamente, el mejor matemáticamente posible.
Doctor Honoris Causa por varias universidades -entre ellas la Complutense de Madrid-, actuó también como conferenciante, momentos en los que dijo cosas interesantes acerca de los lenguajes de programación, algunas de ellas las recordamos hoy.
Algunas de sus frases célebres
- 1
"The most important property of a program is whether it accomplishes the intention of its user."
La propiedad más importante de un programa es si satisface o no las necesidades de su usuario.
- 2
"The price of reliability is the pursuit of the utmost simplicity."
El precio de la fiabilidad es la búsqueda de la máxima simplicidad.
- 3
"There is nothing a mere scientist can say that will stand against the flood of a hundred million dollars. "
No hay nada que un mero científico pueda decir que se mantenga frente a una inyección de un millón de dólares.
- 4
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult."
Hay dos modos hacer un diseño de software: uno es hacerlo tan simple que no tenga deficiencias, y la otra es hacerlo tan complejo que no haya deficiencias evidentes. El primer método es mucho más difícil.
- 5
"You cannot teach beginners top-down programming, because they don't know which end is up."
No se puede enseñar programación a principiantes de arriba hacia abajo, porque no saben cuál es el fin.
- 6
"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil"
Deberíamos olvidar las pequeñas eficiencias, digamos alrededor del 97%: la optimización temprana es la raíz de todo mal.