¿Cuál es tu cita favorita sobre programación? [cerrado]

Respuestas:

231

La depuración es el doble de difícil que escribir el código en primer lugar. Por lo tanto, si escribe el código de la manera más inteligente posible, por definición no es lo suficientemente inteligente como para depurarlo.

- Brian W. Kernighan

Fishtoaster
fuente
Cada vez que escribo un poco de código inteligente, me recuerdo de esta regla y miro hacia atrás para ver si no puedo hacer las cosas de una manera más simple que sea más fácil de mantener más tarde, o al menos agregar algunos comentarios más. .
CodexArcanum
66
Un corolario de una máxima verdadera: no olvides que un diagrama puede aumentar tu poder cerebral. Puede cambiar "recordar estructura de gran cosa" por papel no volátil.
Tim Williscroft
1
Me encanta la cita, pero la implicación es que, como máximo, deberíamos poner el 50% de nuestro esfuerzo en la codificación en primer lugar.
Jon Hopkins
44
Creo que la implicación es que debes evitar el impulso de ese programador de usar la forma "inteligente" de hacer algo cuando la forma un poco más larga y más obvia de hacer algo funciona bien.
Fishtoaster
2
Pero, ¿y si es un código "perfecto"? No hay forma de "depurar" eso.
Mateen Ulhaq
183

Caminar sobre el agua y desarrollar software a partir de una especificación es fácil si ambos están congelados.

- Edward V Berard

Tobiasopdenbrouw
fuente
Cita del año, voy a usar este
Gortron
Odio este Nunca es el caso, ¿a quién le importa?
JP Alioto
138

Siempre lleva más tiempo de lo esperado, incluso si tiene en cuenta la Ley de Hofstadter.
  - Ley de Hofstadter

nivlam
fuente
72
Brain stack desbordamiento.
Nathan Taylor el
3
@ Joe D: Tengo curiosidad por cómo reescribiría una oración recursiva en inglés en una sola oración no recursiva.
Jon Purdy
44
Puede converger para valores pequeños suficientes de "más largo"
mouviciel
3
+1 - Estoy orgulloso de contarme entre los mil millones de programadores principales junto con Douglas Hofstadter.
Peter Turner
@gf: cuando se transforma en la definición de la fuente después (con un guión), la introducción principal no está garantizada ("A: Blah" -> "Blah. - A"). Esto no elimina parte de la cita.
126

Siempre codifique como si el tipo que termina manteniendo su código sea un psicópata violento que sabe dónde vive.

- Rick Osborne

Wil
fuente
12
parece que sigo terminando manteniendo el código que desearía saber dónde vivía el creador, pero probablemente sea algo bueno que no lo haga.
WalterJ89
Aporta un nuevo significado al término "aplicación asesina". Parece que siempre termino manteniendo el código del psicópata después de que está encarcelado.
webbiedave
8
@webbiedave ¿Trabajas en ReiserFS? :)
Neil Aitken
La compañía realmente debe odiarte si el asesino consiguió tu trabajo.
Mateen Ulhaq
118

Puedes tener el proyecto:

  • Hecho a tiempo
  • Hecho en presupuesto
  • Hecho correctamente

Elige dos.

- Desconocido

Bobby
fuente
55
Me recuerda a un triángulo similar, pero con mujeres. "Puedes tener una novia que: es inteligente, atractiva, tiene una buena personalidad".
Maxpm
No olvide que existen excepciones, aunque son raras, no cuente con eso.
Mircea Chirea
55
@Maxpm: La versión que escuché fue "The 4 S's: Smart, Sexy, Sane, Single. Pick 3."
Mason Wheeler
1
Entonces, cuando no hay restricciones de tiempo y presupuesto, no puede hacerlo correctamente. Bueno saber.
Antsan
111

Algunas personas, cuando se enfrentan a un problema, piensan "Lo sé, usaré expresiones regulares".
Ahora ellos tienen dos problemas.

- Jamie Zawinski

Noah Goodrich
fuente
55
Un clásico atemporal
Factor Mystic
55
Algunas personas, cuando se enfrentan a un problema, piensan "Lo sé, usaré <alguna implementación de resolución de problemas>". Ahora ellos tienen dos problemas.
Callum Rogers
40
Algunas personas cuando se enfrentan a un problema no piensan, simplemente publican en StackOverflow
Matt Ellen
55
Algunas personas no entienden las expresiones regulares y las odian porque otras sí.
Orbling
3
@Yar: nunca he encontrado la sintaxis obtusa personalmente, y la densidad es algo bueno. ¿Por qué expresar algo como una coincidencia de patrón en un formato más detallado? Cuando se requiere claridad para algo complicado, el modo extendido se puede usar con comentarios.
Orbling
110

En teoría, no hay diferencia entre teoría y práctica. Pero, en la práctica, la hay.

- Jan LA van de Snepscheut

Walter
fuente
27
También escuché "La diferencia entre teoría y práctica es menor en teoría que en práctica".
1
La formulación de Roger Pate es la que escuché, escrita por Olin Shivers en "History of T". Paul Graham habla sobre esto aquí: paulgraham.com/thist.html
Michael H.
2
Diría que si una teoría no se traduce en práctica, entonces la teoría es simplemente incompleta.
Rei Miyasaka
105

Puedes usar un borrador en la mesa de dibujo o un mazo en el sitio de construcción - Frank Lloyd Wright

No es exactamente una cita de programación, pero ciertamente se aplica.

Tom Wijsman
fuente
14
IMO altamente aplicable
John MacIntyre
3
Afortunadamente para nosotros, cuando la mayoría del software falla, no se colapsa ni mata personas.
Neil Aitken
8
Excepto cuando explota un Ariane 5 (Vuelo 501), o dosifica a personas con niveles letalmente altos de radiación ...
Frank Shearar
2
Irónicamente, creo que muchos de los edificios más intrincados de Frank Lloyd Wright han caído en mal estado.
Maxpm
1
@TomWij, @Walter, @Roger: Abstenerse de ensuciar este sitio con su metatalk. Si quisiera escuchar disputas, visitaría meta.stackoverflow.com. Aquí es donde deberías tener esta conversación fascinante y atemporal.
Dan Rosenstark
103

La programación de hoy es una carrera entre ingenieros de software que se esfuerzan por construir programas más grandes y mejores a prueba de idiotas, y el Universo que intenta producir idiotas más grandes y mejores. Hasta ahora, el universo esta ganando.

- Rick Cook

Jonas
fuente
98

Medir el progreso de la programación por líneas de código es como medir el progreso del edificio de la aeronave por peso.
  - Bill Gates

ahsteele
fuente
3
Esto es cierto en múltiples niveles. Una gema.
3
La diferencia clave es, por supuesto, que el peso final de la aeronave se conoce mientras que se desconoce el recuento final de LOC del software.
mmyers
55
Entonces, ¿por qué la mayoría de los productos de Microsoft me dan la sensación de que estoy encadenado por mi pie a un avión que está luchando por salir de la pista?
Sharpie
86

Hay 2 problemas difíciles en informática: invalidación de caché, nombrar cosas y errores fuera de 1.

    - Leon Bambrick (@ secretGeek )

(En realidad, todo, desde http://q4td.blogspot.com/search/label/programming, ya que selecciono la lista).

Evan
fuente
Nunca he visto una cita que indique lo difícil que puede ser nombrar cosas. Siento una repentina solidaridad.
CodexArcanum
Eso son 3 cosas. Los dos primeros son la cita original de Phil Karlton. @CodexArcanum. Nombrar bien las cosas es el truco.
StuperUser
@StuperUser whooosh! te perdiste el chiste!
Agos
Tomó dos segundos obtener eso después de señalarlo. Herp derp.
StuperUser
85

Nueve personas no pueden tener un bebé en un mes.
  - Fred Brooks, El mes mítico del hombre

bigown
fuente
14
técnicamente: 18 personas no pueden tener un bebé en un mes
Here Be Wolves
13
@HereBeWolves o 10
WalterJ89
14
¿Qué hay de malo con 1 chico y 8 mujeres? Me suena bien.
44
Si vamos por gemelos o trillizos, necesitamos menos damas.
12
Mientras que el primer bebé sufrirá una latencia de 9 meses, la tubería adecuada continuará entregando 1 por mes ...
Brian Knoblauch
82

Nos debemos olvidar de pequeñas eficiencias, por ejemplo alrededor del 97% del tiempo: la optimización prematura es la raíz de todo mal. Sin embargo, no debemos dejar pasar nuestras oportunidades en ese crítico 3%.
  - Donald Knuth, Programación estructurada con ir a declaraciones , JACM Computing Surveys, Vol 6, No. 4, diciembre de 1974, p.268

Esto se extrae de los dos párrafos siguientes, que no solo explican por qué llega a la conclusión anterior, sino que brindan información sobre cómo evitar este error:

No hay duda de que el grial de la eficiencia conduce al abuso. Los programadores pierden enormes cantidades de tiempo pensando o preocupándose por la velocidad de las partes no críticas de sus programas, y estos intentos de eficiencia en realidad tienen un fuerte impacto negativo cuando se consideran la depuración y el mantenimiento. Nos debemos olvidar de pequeñas eficiencias, por ejemplo alrededor del 97% del tiempo: la optimización prematura es la raíz de todo mal.

Sin embargo, no debemos dejar pasar nuestras oportunidades en ese crítico 3%. Un buen programador no se dejará llevar por la complacencia por tal razonamiento, será sabio al mirar cuidadosamente el código crítico; pero solo después de que se haya identificado ese código. A menudo es un error hacer juicios a priori sobre qué partes de un programa son realmente críticas, ya que la experiencia universal de los programadores que han estado utilizando herramientas de medición ha sido que sus conjeturas intuitivas fallan. (...)

Scott Dorman
fuente
2
@Roger Pate: sospecho que tienes razón, la mayoría de la gente no se da cuenta de que hay más en la cita.
Scott Dorman
55
Espero que no te importe que haya incluido un poco más. Creo que es realmente importante y tal vez esto animará más a leer el documento completo. :)
@Roger Pate: ¡en absoluto!
Scott Dorman
55
+1 Gracias por la cotización completa. Nunca sé si había más.
Evan Plaice
2
Es genial que hayas publicado la cita completa. Mucha gente simplemente conoce la versión de clasificación y no tiene idea de lo que Knuth realmente quiso decir con eso.
DasIch
80

Los depuradores no eliminan errores. Solo los muestran en cámara lenta.

- Desconocido

pramodc84
fuente
35
O, en muchos casos, haz que dejen de aparecer por completo.
Graeme Perrow
12
@Graeme esos casos se llaman Heisenbugs :)
Here Be Wolves
76

El primer 90% del código representa el primer 90% del tiempo de desarrollo. El 10% restante del código representa el otro 90% del tiempo de desarrollo.

- Tom Cargill

Roger Pate
fuente
¿Quién dijo eso originalmente?
Paddyslacker
10
Creo que encontrará que el 90% del código toma el 90% del tiempo, y el último 10% del código toma el otro 90% del tiempo.
FacticiusVir
2
Tom Cargill de Bell Labs: en.wikipedia.org/wiki/Ninety-ninety_rule
Bill Karwin
1
Sé esto: 20% de los compañeros beben 80% de cerveza.
Zzz
1
Personalmente, diría que el primer 90% del código representa el primer 90% del tiempo de desarrollo. Luego, el 90% restante del código representa el otro 90% del tiempo de desarrollo.
Kaz Dragon
70

Si Java tuviera una verdadera recolección de basura, la mayoría de los programas se eliminarían a sí mismos tras la ejecución.
  - Robert Sewell

conocido
fuente
22
divertido, solo me hizo pensar en php.
WalterJ89
2
@ WalterJ89: ¡No te preocupes! Hasta PHP 5.3, PHP se vuelve a contar.
zneak
¡Me gusta este!
MDV2000
@ WalterJ89 Bueno, no veo ninguna razón para seleccionar Java en lugar de COBOL, C ++, VB u otros.
Mark C
69

La informática no tiene más que ver con las computadoras que la astronomía con los telescopios

- Edsger Dijkstra

bigown
fuente
44
Sí, pero se supone que se trata de programación , no de informática. [sonrisa maliciosa]
Mark C
La programación es solo aplicar el conocimiento reunido con la informática. No necesita una computadora para programar, al menos no una como la mayoría está familiarizada.
DasIch
Siempre he sentido que lo más molesto de la programación es que no puedo separarlo de las computadoras.
LoveMeSomeCode
57

Si la depuración es el proceso de eliminar errores de software, entonces la programación debe ser el proceso de colocarlos.
  - Edsger Dijkstra

pramodc84
fuente
24
Es por eso que me gusta referirme a mi trabajo como atasco .
deceze
99
¿Y el mantenimiento como reflujo ?
Joe D
1
@JoeD No, "observación de errores".
Mark C
56

Solo hay dos tipos de idiomas: los que la gente se queja y los que nadie usa

- Bjarne Stroustrup

conocido
fuente
15
mala excusa para suckage C ++
hasen
3
C # es un contraejemplo obvio.
Timwi
77
Y VB cae en ambas categorías.
Quick Joe Smith
48

Lo mejor de un booleano es que incluso si estás equivocado, solo estás un poco apagado. - (Anónimo)

revs pramodc84
fuente
¿Lo peor es que no puedes estar más equivocado?
POSIX_ME_HARDER
46

En dos ocasiones me preguntaron: "Ore, Sr. Babbage, si pone en la máquina cifras incorrectas, ¿saldrán las respuestas correctas?" En un caso, un miembro de la Alta, y en el otro un miembro de la Cámara Baja planteó esta pregunta. No puedo entender correctamente el tipo de confusión de ideas que podría provocar tal pregunta.
  - Charles Babbage

Posiblemente el primer caso documentado de un programador que encuentra preguntas estúpidas de los usuarios.

Jay
fuente
55
¡Suena como una idea de camiseta! "Error de usuario: ensuciando las cosas desde 1832". (¿Fecha?)
Mark C
42

Siempre he deseado que mi computadora sea tan fácil de usar como mi teléfono; mi deseo se ha hecho realidad porque ya no puedo entender cómo usar mi teléfono

-- Bjarne Stroustrup

revs bigown
fuente
42

Todo se habla hasta que se ejecuta el código.
  - Ward Cunningham

Walter
fuente
39

El soporte Unicode no es una "característica". Es comportamiento esperado.

De acuerdo, es muy específico, pero es mi favorito porque los conjuntos de caracteres obsoletos todavía se usan demasiado ...

Timwi
fuente
3
Ahora solo tiene que discutir sobre qué Unicode
Martin Beckett
@ Martin: En realidad no, porque la conversión entre los distintos tipos no tiene pérdidas.
Billy ONeal
Aargh el dolor! ¿Por qué tengo que discutir con un cliente que no, no podemos "simplemente" cambiar toda nuestra infraestructura a Latin-1 para que sea infinitamente más conveniente para él? "Después de todo, nadie por aquí usa esos extraños personajes especiales; no puede ser tan difícil, ¿verdad?"
Piskvor
39

Comentar tu código es como limpiar tu baño: nunca quieres hacerlo, pero realmente crea una experiencia más placentera para ti y tus invitados.

- Ryan Campbell

Coder Hawk
fuente
1
Meh ... La mayoría de los comentarios que he encontrado en mi vida están escritos bajo la suposición de que los comentarios pueden compensar un código mal escrito ...
riwalk
Puedes limpiar el baño, pero si la ducha solo tiene agua fría y el lavabo no tiene jabón, será una experiencia desagradable. Escriba código que se lea fácilmente en lugar de escribir grandes comentarios para explicar las cosas.
Keyo
De hecho, encuentro comentarios bastante agradables. A veces pongo comentarios importantes en pequeñas cajas ordenadas hechas de asteriscos y barras. Por otra parte, soy un bicho raro.
Maxpm
2
También me gusta escribir comentarios, pero no querrás ver mi baño.
Timwi
Una vez estuve en un baño donde hubo comentarios muy largos sobre cómo y por qué deberías mantener el baño limpio. No estaba limpio
Rei Miyasaka
38

El tonto se pregunta, el sabio pregunta.
  - Benjamin Disraeli

Dan Dyer
fuente
@TomWij: Vea mi comentario de cuando edité esto, estas citas se han dividido en respuestas separadas.
35

La programación es como el sexo: un error y tienes que apoyarlo por el resto de tu vida.
  - Michael Sinz

conocido
fuente
34

Il semble que la perfection soit atteinte non quand il n'y a plus rien à ajouter, mais quand il n'y a plus rien à retrancher.
  - Antoine de Saint-Exupéry, escritor francés (1900-1944), Terre des Hommes (1939)

(Parece que la perfección se alcanza no cuando no hay nada más que agregar, sino cuando no hay nada que quitar).

Bill Karwin
fuente
Y también es válido para la música
Heinz Z.
2
La perfección es
David Kendal
2
@David Kendal: ¡Qué bueno! Del mismo modo, Henry David Thoreau dijo: "Simplifica, simplifica". Lo que siempre me hace pensar: "Simplifica".
Bill Karwin
33

Java es a JavaScript como el coche es a la alfombra.
  - Chris Heilmann

Bill Karwin
fuente
¿Hay alfombra en mi auto, entonces hay Javascript en Java?
Keyo
1
@ Keyo: Sí, pensé en eso. Sigo pensando que la cita es realmente inteligente.
Bill Karwin
31

Según lo formulado por Eric S. Raymond :

Ley de linus

Dada una base suficientemente grande de beta-tester y co-desarrollador, casi todos los problemas se caracterizarán rápidamente y la solución será obvia para alguien.

O, menos formalmente,

Dado suficientes globos oculares, todos los errores son superficiales.

usuario8
fuente
me suena un poco a la regla del mono / máquina de escribir ...
Sean Patrick Floyd
¿Por qué los entusiastas de Linux parecen pasar más tiempo repitiendo esta cita que reparando los errores?
Timwi
O, el eslogan de Atwood para StackOverflow, "Ninguno de nosotros es tan tonto como todos nosotros". Ver codinghorror.com/blog/2008/09/…
Evan Plaice