# Les mots des autres...

Quelques mots prononcés ou écrits par d'autres. Comme le rappelle Henrik Warne en 2016, toutefois, mieux vaut prendre ces remarques avec un peu de recul et de discernement :

Plusieurs des citations ci-dessous proviennent de https://twitter.com/CodeWisdom

First they ignore you, then they laugh at you, then they fight you, then you winMahatma Gandhi (merci à Pierre Prud'homme pour celle-ci)

Computer science is no more about computers than astronomy is about telescopesEdsger W. Dijkstra (j'aime bien cette citation, mais notez que certains ne sont pas d'accord)

The question of whether Machines Can Think... is about as relevant as the question of whether Submarines Can SwimEdsger W. Dijkstra (on le voit parfois aussi exprimé sous la forme The question of whether computers can think is just like the question of whether submarines can swimEdsger W. Dijkstra)

The lurking suspicion that something could be simplified is the world's richest source of rewarding challengesEdsger W. Dijkstra

If debugging is the process of removing software bugs, then programming must be the process of putting them inEdsger W. Dijkstra

Simplicity is prerequisite for reliabilityEdsger W. Dijkstra

If we wish to count lines of code, we should not regard them as lines produced but as lines spentEdsger W. Dijkstra

Abstraction is the elimination of the irrelevant and the amplification of the essentialRobert C. Martin

Abstraction is selective ignoranceAndrew R. Koenig dans Ruminations on C++

Analogy: homomorphism between two abstractions, which are kinds of selective ignorance. What kinds they are mattersAndrew R. Koenig dans https://twitter.com/arks_remarks/status/743143735718928384

The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise. – Edsger W. Dijkstra

Simplicity is prerequisite for reliability. – Edsger W. Dijkstra

The most exciting phrase to hear in science, the one that heralds new discoveries, is not "Eureka!" (I found it!) but "That's funny ..." – Isaac Asimov (pris sur)

D'un dénommé Rick Osborne, pris dans un commentaire sur un blogue quelque part : « Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. »

De Douglas Adams, dans Mostly Harmless : « The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair. »

Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning – Rich Cook

Code is like poetry; most of it shouldn't have been written – David Jacobs (via John D. Cook)

Keep for-body short -- no longer than composition of two functions with an operator. If it is longer, name itSean Parent (via Twitter)

Good code is short, simple, and symmetrical – the challenge is figuring out how to get thereSean Parent

If you use floating point you have $2.00001$ problemsStephan T. Lavavej (via Twitter)

Education's purpose is to replace an empty mind with an open one – Malcolm Forbes, dans Forbes Magazine (via Pierre Prud'homme)

Artificial intelligence has the same relation to intelligence as artificial flowers have to flowersDavid Parnas

A mathematician is a device for turning coffee into theoremsPaul Erdős

JavaScript is like having a chainsaw for a handBrendan Eich

The key to performance is elegance, not battalions of special cases – McIlroy and Bentley

If there's one thing worse than a program that doesn't work when it should, it's a program that does work when it shouldn't. – Bob Archer (lu via le blogue de Robert C. Martin, qui y commente la citation)

When your hammer is C++, everything begins to look like a thumbAlisdair Meredith

If you lie to the compiler, it will get its revenge – Henry Spencer

In programming, the sooner you start, the later you finish – Je ne connais pas l'auteur, mais merci à Pierre Prud'homme de me l'avoir envoyée

Philosophy of a library designer: I can't stop people from writing bad code. But I would be guilty of collusion if I made it easyEric Niebler

Fancy algorithms are slow when n is small, and n is usually smallRob Pike

OOP does model the real world! Things at the top of the hierarchy seemingly do nothing but tell those at the bottom what to do@fogus

Any sufficiently advanced technology is indistinguishable from magicArthur C. Clarke

Any sufficiently advanced incompetence is indistinguishable from malice @techbytom

Regular Expressions look like cartoon swear words for a reason – Scott Hanselman

When in doubt, use brute forceKen Thompson

If it's your decision, it's design; if not, it's a requirement – Alastair Cockburn

The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structuresFrederik Brooks (voir aussi, de manière plus générale, les extraits sur http://www.grok2.com/progfun.html)

Don't be so afraid of. It's just a contract. You don't really need registration, type libraries, MIDL and whatnot to use– Sasha Goldshtein (tiré de https://twitter.com/goldshtn/status/630597369516716032)

Any sufficiently advanced bug is indistinguishable from a feature – Rich Kulawiec

All problems in Computer Science can be solved by another level of indirection, except for the problem of too many layers of indirectionDavid Wheeler

There's nothing in computing that can't be broken by another level of indirectionRob Pike

A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusableLeslie Lamport

Thinking doesn't guarantee that we won't make mistakes. But not thinking guarantees that we willLeslie Lamport

Good code is its own best documentationSteve McConnell (la citation complète est : Good code is its own best documentation. As you're about to add a comment, ask yourself, 'How can I improve the code so that this comment isn't needed?' Improve the code and then document it to make it even clearer)

A week of coding can often save an hour of thoughtJoshua Bloch

The proper use of comments is to compensate for our failure to express ourself in codeRobert C. Martin

So if you want to go fast, if you want to get done quickly, if you want your code to be easy to write, make it easy to readRobert C. Martin

No matter how slow you are writing clean code, you will always be slower if you make a messRobert C. Martin

Inside every large program is a small program trying to get outC.A.R. Hoare

The most important property of a program is whether it accomplishes the intention of its userC.A.R. Hoare

If debugging is the process of removing software bugs, then programming must be the process of putting them in   Edsger W. Dijkstra

Most code is bad, so just because you see something over and over doesn't mean it's a Pattern – Tony van Eerd pendant C++ Now 2016

Everyone will forgive you when you screw up. It's getting it right that will get you into troubleBjarne Stroustrup

C++ is designed to allow you to express ideas, but if you don't have any ideas or don't have any clue about how to express them, C++ doesn't offer much help  – Bjarne Stroustrup

The same solution can be a good pattern in some contexts and an antipattern in others. Its value depends on the context that you use it inMartin Fowler

When you feel the need to write a comment, first try to refactor the code so that any comment becomes superfluousMartin Fowler

When to use iterative development? You should use iterative development only on projects that you want to succeedMartin Fowler

A programming language is low level when its programs require attention to the irrelevantAlan J. Perlis

If you have a procedure with ten parameters, you probably missed someAlan J. Perlis

A language that doesn't affect the way you think about programming is not worth knowingAlan J. Perlis

There are two ways to write error-free programs; only the third worksAlan J. Perlis

There are only two things wrong with C++: The initial concept and the implementationBertrand Meyer

"How to test?" is a question that cannot be answered in general. "When to test?" however, does have a general answer: as early and as often as possibleBjarne Stroustrup

One person's data is another person's programGuy L. Steele, Jr.

Good programmers don't just write programs. They build a working vocabularyGuy L. Steele, Jr.

Falling in love with code means falling in love with problem solving and being a part of a forever ongoing conversation – Kathryn Barrett

Without requirements or design, programming is the art of adding bugs to an empty text file – Louis Srygley

A good programmer is someone who looks both ways before crossing a one-way street – Doug Linder

The proper use of comments is to compensate for our failure to express ourself in code Robert C. Martin

No matter how slow you are writing clean code, you will always be slower if you make a mess Robert C. Martin

Abstraction is the elimination of the irrelevant and the amplification of the essential Robert C. Martin

There is no programming language—no matter how structured—that will prevent programmers from making bad programs – Larry Flon

Rather than teach everyone to code, let's teach them to think. The coding can come later; it's easierRob Pike

Computer programming is an art, because it applies accumulated knowledge to the world, because it requires skill and ingenuity, and especially because it produces objects of beautyDonald Knuth

Science is everything we understand well enough to explain to a computerDonald Knuth

Design and programming are human activities; forget that and all is lostBjarne Stroustrup

A program is never less than $90\%$ complete, and never more than $95\%$ complete – Terry Baker

The first $90\%$ of the code accounts for $90\%$ of the development time. The remaining $10\%$ of the code accounts for the other $90\%$ of the development time – Tom Cargill

The most important single aspect of software development is to be clear about what you are trying to buildBjarne Stroustrup

What's the most used language in programming? Profanity – Alejandro Alkoba

On two occasions, I have been asked, — "Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?" I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a questionCharles Babbage (aujourd'hui, on dirait simplement « Garbage In, Garbage Out »)

The problem with programmers is that you can never tell what a programmer is doing until it's too lateSeymour Cray

Trying to outsmart a compiler defeats much of the purpose of using oneBrian W. Kernighan

It is far, far easier to make a correct program fast than it is to make a fast program correctHerb Sutter

Languages that try to disallow idiocy become themselves idioticRob Pike

A program is only as good as it is usefulLinus Torvalds

Algorithmic complexity for structured programmers: All algorithms are $O(f(n))$, where $f$ is someone else's responsibility – Peter Cooper

To me programming is more than an important practical art. It is also a gigantic undertaking in the foundations of knowledgeGrace Hopper

One accurate measurement is worth a thousand expert opinionsGrace Hopper

The most damaging phrase in the language is "We've always done it this way!"Grace Hopper

Thus we must have a language and a structure that will take care of the data descriptions and priorities, as well as the operations we wish to performGrace Hopper

My definition of an expert in any field is a person who knows enough about what's really going on to be scared – P.J. Plauger

Trying to outsmart the compiler defeats much of the purpose of using oneBrian W. Kernighan et P.J. Plauger

If we wish to count lines of code, we should not regard them as 'lines produced' but as 'lines spent'Edsger W. Dijkstra

Low-level programming is good for the programmer's soulJohn Carmack

What one programmer can do in one month, two programmers can do in two monthsFrederik Brooks

Without requirements or design, programming is the art of adding bugs to an empty text file – Louis Srygley

The act of describing a program in unambiguous detail and the act of programming are one and the sameKevlin Henney

A common fallacy is to assume authors of incomprehensible code will be able to express themselves clearly in commentsKevlin Henney

If your code needs comments, consider refactoring it so it doesn'tKevlin Henney

If you're using a language today there is a $90\%$ chance it takes ideas from Algol 68. You don‘t know Algol 68? Well you don't know your great grandfather either: you still have genetics from himKevlin Henney

JavaScript developers criticising C for being low-level & idiosyncratic either have a very well developed sense of irony... or none at allKevlin Henney

The proper use of comments is to compensate for our failure to express ourselves in codeRobert C. Martin

Computer programming is like the ability or skill to see what Picasso saw from all the different angles at once – Erik Naggum

I would rather have questions that can't be answered than answers that can't be questionedRichard Feynman

Science is the belief in the ignorance of expertsRichard Feynman

With diligence it is possible to make anything run slowlyTom Duff

Everyday life is like programming, I guess. If you love something you can put beauty into itDonald Knuth

If something is conceptually simple, but hard to do in practice, it's only a matter of time before someone makes it simple in practice – Joe Duffy (tiré de https://twitter.com/xjoeduffyx/status/892231121349492739)

The only way to learn a new programming language is by writing programs in itDennis M. Ritchie

Debugging is like being the detective in a crime movie where you are also the murderer – Filipe Fortes

In programming, the hard part isn't solving problems, but deciding what problems to solvePaul Graham

Any program is only as good as it is usefulLinus Torvalds

Measuring programming progress by lines of code is like measuring aircraft building progress by weightBill Gates

Simple things should be simple and complex things should be possibleAlan Kay

The most difficult problem in computer science is deciding which problems to solveJoe Armstrong (tiré de https://twitter.com/joeerl/status/905686559558643712)

What's important is not simplicity or complexity, but how you bridge the twoLarry Wall

Computer language design is just like a stroll in the park. Jurassic Park, that isLarry Wall

The more complex a language is, the more idioms there are – Stephen Dewhurst

One person's constant is another person's variableSusan Gerhart

C is a bit like Latin these days. We no longer write everything in it, but knowing it affords deeper knowledge of more-recent languages – Norman Wilson (via https://twitter.com/oclsc/status/916778733566156800)

Write code as if you had to support it for the rest of your life – Yuriy Zubarev

The statements of science are not of what is true and what is not true, but statements of what is known with different degrees of certainty – Richard Feynman

Falling in love with code means falling in love with problem solving and being a part of a forever ongoing conversation – Kathryn Barrett

So much complexity in software comes from trying to make one thing do two things – Ryan Singer

Looking at code you wrote more than two weeks ago is like looking at code you are seeing for the first time – Dan Hurvitz

The strength of JavaScript is that you can do anything. The weakness is that you will – Reginald Braithwaite

The best performance improvement is the transition from the nonworking state to the working state – John Ousterhout

(Code) Simplicity is an act of generosity to whoever will come after you... Who is likely to be you – Kate Gregory

A rule of thumb for any good math talk is that it should have one proof and one joke and they should not be the same – Ron Graham

Programming languages, like pizza, come in only two sizes: too big and too small – Richard Pattis

I keep telling people "programming is understanding" - the computer is a machine that tests if your ideas are correct. Once you understand a problem the program can usually be written pretty quickly. Understanding a problem can take yearsJoe Armstrong (via https://twitter.com/joeerl/status/934475706263851008)

The longer it takes for a bug to surface, the harder it is to find – Roedy Green (via https://twitter.com/CodeWisdom/status/935879537006702592)

Stay away from negative people. They have a problem for every solutionAlbert Einstein

The best debugger ever made is a good night's sleep – Sasha Laundy (via https://twitter.com/SashaLaundy/status/936661004137635840)

If you really want to understand something, the best way is to try and explain it to someone else. That forces you to sort it out in your mind. And the more slow and dim-witted your pupil, the more you have to break things down into more and more simple ideas. And that's really the essence of programming. By the time you've sorted out a complicated idea into little steps that even a stupid machine can deal with, you've learned something about it yourself – Douglas Adams (tel que rapporté par Ólafur Waage dans https://twitter.com/olafurw/status/941233238072332288

Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defence against complexity – David Gelernter

A primary cause of complexity is that software vendors uncritically adopt almost any feature that users wantNiklaus Wirth

The code you write makes you a programmer. The code you delete makes you a good one. The code you don't have to write makes you a great one – Mario Fusco

We manage complexity of a system by applying "divide and conquer": Recursively splitting it into cohesive functional units such as methods, classes, packages, modules and webservices. The biggest challenge is defining clear boundaries with the right level of abstraction – Marcus Biel

If you can get today's work done today, but you do it in such a way that you can't possibly get tomorrow's work done tomorrow, then you lose – Kent Beck

"Coding is hard" will discourage some people from attempting it. "Coding is easy" will discourage some people who are attempting it and finding it challenging. Alternative: Learning to code is a neverending journey with a set of challenges and delights unique to each person – April Wensel

Code is like humor. When you have to explain it, it's bad – Cory House

It turns out that style matters in programming for the same reason that it matters in writing. It makes for better readingDouglas Crockford

Absence is beauty, in error logs – Leonard Bogdonoff

Write shy code - modules that don't reveal anything unnecessary to other modules and that don't rely on other modules' implementationsDave Thomas

Programming is like cooking: in Python, you use pre-made bolognese sauce; in C++, you start from fresh tomatoes and minced meat; in Assembly, you have a farm where you grow your tomatoes and raise your cow. – Gustavo V. Barroso

The Titanic Effect: The thought that disaster is impossible often leads to an unthinkable disasterGerald Weinberg

Pour d'autres citations sympathiques :