12 ms·
Programming Quotes
- yesenadam 8y agoThat's a great collection! Thank you.
- yesenadam 8y agoDownvoter, please get a life. It's hard not to feel soured by such miserable gestures as yours. Mine was the first comment on here, I thought maybe there wouldn't be any comments - it was a great collection and I wanted people to check it out, and express my gratefulness; not sure what else I should've done. I guess I should just accept that such spiteful downvotes happen, but it's shame. Maybe you wouldn't even have seen the page had I not upvoted and commented...
- osrec 8y ago> If you’re capable of understanding `finalised virtual hyperstationary factory class', remembering the Java class hierarchy, and all the details of the Java Media Framework, you are (a) a better man than i am (b) capable of filling your mind with large chunks of complexity, so concurrent programming should be simple by comparison. go for it. > ps. i made up the hyperstationary, but then again, it’s probably a design pattern. — forsyth --- Reminds me of a great deal of programmers in the banking world, especially those who used spring. Their software often failed, but their knowledge of Java design patterns never did!
- AdmiralAsshat 8y agoMissing the infamous "It compiles! Ship it!" quote.
- gnulinux 8y agoFor something like rust or haskell it's not outrageous. But yeah...
- kazinator 8y agoIt's not outrageous to hear from a Rust or Haskell fanatic, in any case. Given that a subtraction will easily compile where an addition should have been coded, so the content of the remark is outrageous.
- rspeele 8y agoI'm sure if you _just_ use the right experimental language extensions and strangle your program under a mountain of indecipherable nonsense, performing arithmetic at the type-level, you can trivially prevent that though!
- gnulinux 8y ago> arithmetic at the type-level See, the whole type-level and value-level is a false dichotomy, that's the whole idea behind dependent types. There shouldn't be a difference between a type and a value.
- Retra 8y agoThey fact that they can be conflated doesn't mean that they should.
- gnulinux 8y agoNo, they really should be since (1) it gives more guarantees about your program in compile-time and (2) lets you express more assumptions about your program to your compiler (3) for free.
- Retra 8y agoPerhaps you should instead produce a counter-example, because as far as I can tell nothing you've said is actually true.
- 8y ago
- tanklessmilk 8y agoThis is fantastic. Whenever I'm at work, I always look at deltas on commits to judge personal success. The more lines removed, the better! > Deleted code is debugged code. — Jeff Sickel
- bjpbakker 8y ago> The more lines removed, the better I programmed Perl for a while so I like to make this more about _characters_ removed rather than lines :)
- justanegg 8y ago> Computers are about making life easier in much the same way that the Republican party is about fiscal responsibility and a culture of life. that quote aged well
- arethuza 8y agoMissing the Ninety-ninety rule? "The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time." Tom Cargill, Bell Labs https://en.wikipedia.org/wiki/Ninety-ninety_rule https://en.wikipedia.org/wiki/Ninety-ninety_rule NB There should probably be a 90-90-90-90-<recurring> rule... could called the Y-90 rule!
- Bekwnn 8y agoProbably because the "and the last 10 is the other 90" quote has existed longer than programming has. It's borrowed.
- Jun8 8y agoObligatory list of some good quotes that are not included: Rules of Optimization: Rule 1: Don't do it. Rule 2 (for experts only): Don't do it yet. - M.A. Jackson Never test for an error condition you don't know how to handle. - Steinbach Choose mnemonic identifiers. If you can't remember what mnemonic means, you've got a problem. - perldoc perlstyle Every program has (at least) two purposes: the one for which it was written, and another for which it wasn't. - Alan Perlis Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. - Stan Kelly-Bootle
- andrepd 8y ago>Rules of Optimization: Rule 1: Don't do it. Well that explains the modern web, and a great deal of modern software.
- paedupeax 8y agoThere is a huge difference between not optimizing (say, purge formatting white space from HTML) and putting out five megabyte of JavaScript junk for static website.
- hoppelhase 8y agoWell, optimization could also mean to remove unnecessary JS.
- cakebrewery 8y agoI think removing unnecessary code and generalizing redundant parts should be a given. On the other hand, early optimizations such as caching or in-lining should be avoided unless needed.
- deleted 8y ago[deleted]
- protomyth 8y agoI remember someone saying simple code implementing well selected algorithms beat optimized code implementing poor algorithms. Although, I would have to agree with your statement.
- champagnepapi 8y ago“Walking on water and developing software from a specification are easy if both are frozen.”
- justinpombrio 8y agoMissing what I think is the most important quote: "Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won't usually need your flowcharts; they'll be obvious." - Fred Brooks
- deleted 8y ago[deleted]
- tasuki 8y agoMy favourite as well!
- petercooper 8y agoIf you'd like to be drip fed stuff like this, we've been running a programming quotes Twitter account for several years at https://twitter.com/codewisdom https://twitter.com/codewisdom
- spion 8y agoAh, quotes, the method of taking wisdom out of context and greatly increasing the chances of incorrect interpretation. The ancient form of twitter.
- olooney 8y ago"Epigrams are more like vitamins than protein." - Alan Perlis
- vram22 8y agoI like this one: "Debugging a program is twice as hard as writing it in the first place. So, by definition, if you write the program as cleverly as you can, you will not be able to debug it." - (Maybe by) Brian Kernighan.
- kps 8y ago… and/or P J Plauger. “Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?” in The Elements of Programming Style (p10 in the 2nd edition).
- vram22 8y agoThanks. I've heard that's a good book, as is Software Tools by Kernighan and Plauger.
- canhascodez 8y agoThere's a lot of negativity here. A lot of these quotes seem to offer more heat than light.
- goatlover 8y agoA lot of hard won negativity from painful experience.
- canhascodez 8y agoProgramming is tough. That doesn't necessarily mean that we need to emphasize the negative aspects. However, the more concerning element to me is that there are a fair number of gratuitous insults. I am as prone to making and/or enjoying a witty jab as the next person, but I recognize that this is not a wholly positive trait, and try to resist the impulse. I feel like the distilled genius of this profession has something finer to offer than Perl-bashing, or at least, I hope so.
- icebraining 8y agoThat's cat-v.org for ya, curated by the late Uriel[1]. If you want some real negativity, go read the harmful section [2]. Some of us enjoy rants and anger. Positivity is overrated. [1] https://suckless.org/people/Uriel/ https://suckless.org/people/Uriel/ [2] http://harmful.cat-v.org/ http://harmful.cat-v.org/
- bspammer 8y agoI've heard about this guy before. Reading a few of his posts in the second link (particularly the one about children), it seems like he was a deeply unhappy individual. Rants and anger can be fun, but wallow in them too long and it begins to feel like there's nothing else. He was clearly a very talented programmer though, and as someone who reads and writes Go regularly I have a lot to thank him for.
- emmanueloga_ 8y agoI believe a more appropriate noun is "contempt" :-) I found this page [1] some time ago, maybe someone can find some good quotes in here but the page is kind of long and heavy and not super quotable, maybe some of you will find some gems in there. Top of the page is Xah Lee, a lovable, and sometimes a bit weird, cranky master of contempt: > The basis of computer languages' merit lies in their mathematical properties. > It is this metric, that we should use as a guide for direction. > As an analogy, we measure the quality of a hammer by scientific principles: > ergonomics, material (weight, hardness. . .), construction, statistical > analysis of accidents/productivity/… …etc., not by vogue or lore. > If we go by feelings and preferences, hammer's future will deviate > and perhaps become dildos or maces. (Xah Lee in comp.lang.lisp, July 2000) I think Xah is cranky but many times on to something. For instance, point 6 in his list of "Python Doc Idiocies" [2] is hard to disagree with :-). 1: http://www.schnada.de/quotes/contempt.html http://www.schnada.de/quotes/contempt.html 2: http://xahlee.info/python/python_doc_index.html http://xahlee.info/python/python_doc_index.html P.S.: if you enjoy Xah's writing you should pay for his excellent emacs manual [3]. It is actually openly available but he accepts contributions. 3: http://ergoemacs.org/emacs/buy_xah_emacs_tutorial.html http://ergoemacs.org/emacs/buy_xah_emacs_tutorial.html UPDATE: he actually has a Patreon account too! [4] 4: https://www.patreon.com/xahlee https://www.patreon.com/xahlee
- gnulinux 8y ago> A data structure is just a stupid programming language. > — R. Wm. Gosper What's this supposed to mean?
- sudo_rm 8y agoI think this has to do with the fact that things like XML are not Turing complete, even though it is a language in its own right.
- JadeNB 8y agoOne interpretation: I think there's a dictum (due to Dijkstra, maybe?) that says something like programming = data structures + algorithms. If you remove the 'algorithms' part, then you're left with data structures on the right, and, presumably, an impoverished programming language on the left.
- samatman 8y agoAlgorithms + Data Structures = Programs is a book by Niklaus Wirth.
- JadeNB 8y agoThanks! Wirth was going to be my second guess. For some reason, possibly because I had the order switched (or because the '+' itself, rather than just the words, is key to the phrase), I couldn't find the phrase by Googling.
- derefr 8y agoOne thing it brings to mind is this old argument: a configuration language is just a scripting language where you can't do anything useful to decrease repetition. (Or: Lisp programs don't contain config parsers.) Instead of a "stupid" fixed set of declarative configuration options, just expose your program's high level abstractions as a set of macros and functions, and then let the user "configure" the program by just... writing a program, which uses those high-level macros and functions to do what they want.
- 8y ago
- chewzerita 8y ago> {ajh} I always viewed HURD development like the Special Olympics of free software. yikes
- johnvega 8y agoPart of why I like Golang as I interpret beauty as readability. "Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defense against complexity." — David Gelernter
- LargeWu 8y agoThere's nothing more permanent than a temporary fix.
- scandox 8y agoBasically all the really useful code I've written
- aard 8y agoOne of my favorites: "If you know what’s in it, you don’t know when it will ship. If you know when it will ship, you don’t know what’s in it."
- napoleonIV 8y agoThis is an absolute gem.
- corodra 8y ago"I should have run off with that hippie girl and started a homestead in Alaska." Me, every fucking time I look at code.
- corodra 8y agoIt is funny though. Look at all the physicists and mathematicians in that quote list. Positive, enlightened, a little snark maybe, but generally, moving things forward for the betterment of humanity. All the programmers, "embrace the suck and the light at the end of the tunnel is an oncoming train". I picked the wrong career.
- DesiLurker 8y agoAs an software engineer, NO you did not (unless you actually suck at it). Part of the problem with software dev as a profession is that often the people responsible for resource allocation are out of touch and the overall process is complex enough that you can acquire a lot of technical debt for a short term gain. this makes bad managers look good while creating a lot of problems in long term. Since acquiring technical debt does not really breaks anything in short term its really hard to create a budget line item that allocates resources to it. this continues until something gives and then you have a crisis somebody can fix and take credit. Until there are leaders 'woke' enough to proactively do the right thing I dont see anything change in computing industry.
- corodra 8y agoLol, dude, I'm 31. I've been doing this for around 10 years now. And I'm alright at it :P Have you seen how happy homesteaders are? On a serious note. I'm aware. That's why I did my own company with a friend. It cuts a lot of bullshit out I don't have to deal with anymore. As (essentially) a contractor, it's easy to tear people a new asshole in a meeting and get away with it. I can't imagine an employee being able to. First off, people need to stop worshiping the ilk like Jobs, Musk and Bezos. They're just money makers. Just like Rockefeller, Morgan and Carnegie. None of them are visionaries as all their ideas are easy to spot from history or other people. Like the hyperloop... just about 80 years too late to call that one unique. Ooooo you put colored pieces of plastic on a computer and made a small digital music player. The Zune was WAY better! The other guy just sold books and moved on to other shit. Congrates on the better mouse trap. But it's not like they did it themselves. Maybe a homestead on a tropical island... I like coconuts.
- hiccuphippo 8y agoHere's one I've seen around: "Often a few hours of trial and error will save you minutes of looking through manuals."
- falcor84 8y agoSeems to be a corollary of Frank Westheimer's "A couple of months in the laboratory can frequently save a couple of hours in the library".
- tokyodude 8y agoHrm, my experience is quite the opposite. I can read a 2000 page manual which will take weeks because there's no way I can concentrate on all of it and where I probably still won't actually find the answer to my question which is an edge case OR I can just try the edge case and see what happens. If I knew exactly where to look in the manual then the quote might fit but it rarely does.
- senozhatsky 8y agoLove it! Do you happen to know who said it? -ss
- waynecochran 8y ago"Given enough thrust pigs will fly" -- I will use this for my next code review. Gold.
- mikmoila 8y agoSome people, when confronted with a problem, think “I know, I'll use regular expressions.” Now they have two problems.
- abarrak 8y agoI grouped XML quotes to share with my manager: The essence of XML is this: the problem it solves is not hard, and it does not solve the problem well. — Phil Wadler, POPL 2003 XML is like violence: if it doesn’t solve your problem, you aren’t using enough of it. — Heard from someone working at Microsoft XML is like violence. Sure, it seems like a quick and easy solution at first, but then it spirals out of control into utter chaos. — Sarkos in reddit Most xml i’ve seen makes me think i’m dyslexic. it also looks constipated, and two health problems in one standard is just too much. — Charles Forsyth Nobody who uses XML knows what they are doing. — Chris Wenham
- nerdponx 8y agoWhat are some valid complaints about XML? I was talking to one of the older IT guys at my company a while ago, and he was all about it because it made serializing data structures very simple. I'm not sure if that's a valid use case or an example of the kind of monstrosity that XML-haters hate.
- derefr 8y agoIf all you need to do is serialize data structures, we solved that problem 30 years ago—including all the schema-validation and querying stuff—with ASN.1 (and then re-solved it with Protobufs and Thrift, and solved it again in half-assed manners with JSON, YAML, etc.) XML is a markup format, a regularization/minimization of the syntax of SGML. It's good at being a markup format—the paired named open+close tags allow for corrupted-stream repair in a way that e.g. Markdown just doesn't. XML is great in, say, DocBook. But XML gets used for pretty much everything except actual markup. And for everything else, it's not solving those problems well.
- patrec 8y agoIt's very complicated. Leading to severe security problems, which means you basically should avoid any untrusted client supplied xml, if you can at all avoid it. It is a step backward from s-expressions, being harder to parse for both machines and humans whilst being less expressive. Whitespace handling is comically bad. It doesn't have a working comment syntax. The list goes on. The only excusably bad thing about xml are namespaces. The design is not a success, but it springs from a list of desiderata which look quite sensible on first sight.
- belltyler 8y ago"If debugging is the art of finding bugs, programming must be the art of creating them."
- f2f 8y agoPity the list isn't updated anymore, or uriel would've sure put these gems by Charles Forsyth in it: [B]y treating "compiling C" as a subset problem of "compiling C++", gcc and especially clang are vast whales whistling at the wrong frequency for the problem. Plan 9 C implements C by attempting to follow the programmer’s instructions, which is surprisingly useful in systems programming. The big fat compilers work hard to find grounds to interpret those instructions as ‘undefined behaviour’.
- nerdponx 8y agoIt is interesting that compilers try to be so damn smart. Is -O0 still not faithful enough to the programmer's instructions?
- derefr 8y agoOften the generalized parsing/lexing/codegen/etc. algorithm that exists in service of -O1 through -O3 can be turned "down to a trivial level" with -O0, but not "off"—as that would require an entirely separate code-path.
- kps 8y agoDennis Ritchie, in his ‘noalias must go’ essay, described that proposal as “a license for the compiler to undertake aggressive optimizations that are completely legal by the committee's rules, but make hash of apparently safe programs.” (That he did not write something similar about ‘undefined behavior’ makes it clear that no one at the time intended or even guessed at the mess it would make of the language.)
- equalunique 8y agoEveryone post your favorites. > What's wrong with perl? It combines all the worst aspects of C and Lisp: a billion different sublanguages in one monolithic executable. It combines the power of C with the readability of PostScript. > To me perl is the triumph of utalitarianism. So are cockroaches. So is `sendmail'. — jwz [http://groups.google.com/groups?selm=33F4D777.7BF84EA3%40netscape.com]* ~ and ~ If the designers of X Windows built cars, there would be no fewer than five steering wheels hidden about the cockpit, none of which followed the same principles – but you’d be able to shift gears with your car stereo. Useful feature that.
- kps 8y ago> but you’d be able to shift gears with your car stereo. Many modern cars get pretty close.
- brudgers 8y agoYou can't build an airplane from bricks. -- Steve McConnell, *Code Complete*
- jeffwass 8y agoLOL, 40 years later and some things never change : “The most effective debugging tool is still careful thought, coupled with judiciously placed print statements.” - Brian W. Kernighan, in the paper Unix for Beginners(1979)
- dahart 8y agoFor the sinner deserves not life but death, according to the disk devices. For example, start with Plan 9, which is free of sin, the case is different from His perspective. — Mark V. Shaney Hey, that one’s a bot. I’m also trying to figure out what’s left if you take out all the “avoid complexity” and “avoid XML” quotes...
- rypskar 8y agoI could not find one of mine favorites The two hardest things in programming are: 1. Naming variables 2. Cache invalidation 3. Off by one errors
- carapace 8y ago"CS can be described as the post-Turing decline in the study of formal systems." I don't know who said it originally.