- Some people are little more than herd animals, flocking together whenever the world becomes uncomfortable for any reason, seeking the comfort of those who agree with them, do not contradict them, and take care of their emotions. I am not one of those people. If I had a motto, it would probably be Herd thither, me hither.
- People search for the meaning of life, but this is the easy question: we are born into a world that presents us with many millennia of collected knowledge and information, and all our predecessors ask of us is that we not waste our brief life ignoring the past only to rediscover or reinvent its lessons badly.
- Just as other information should be available to those who want to learn and understand, program source code is the only means for programmers to learn the art from their predecessors. It would be unthinkable for playwrights not to allow other playwrights to read their plays, but only be present at theater performances where they would be barred even from taking notes. Likewise, any good author is well read, as every child who learns to write will read hundreds of times more than it writes. Programmers, however, are expected to invent the alphabet and learn to write long novels all on their own. Programming cannot grow and learn unless the next generation of programmers have access to the knowledge and information gathered by other programmers before them.
- "Programming", cited in the preface of Physically Based Rendering (2004) by Matt Pharr and Greg Humphreys.
- Short of coming to their senses and abolishing the whole thing, we might expect that the rules for daylight saving time will remain the same for some time to come, but there is no guarantee. (We can only be glad there is no daylight loan time, or we would face decades of too much daylight, only to be faced with a few years of total darkness to make up for it.)
- Constructing a social system that tends to those who agree with it is a piece of cake compared to constructing one that makes those who disagree with it want to obey its principles.
Languages shape the way we think, or don't.
- Well, take it from an old hand: the only reason it would be easier to program in C is that you can't easily express complex problems in C, so you don't.
- C is not clean – the language has many gotchas and traps, and although its semantics are simple in some sense, it is not any cleaner than the assembly-language design it is based on.
- … so as long as you do The Right Thing and forget how you would do it in C, you should be able to get a good grip on this.
- C being what it is lacks support for multiple return values, so the notion that it is meaningful to pass pointers to memory objects into which any random function may write random values without having a clue where they point, has not been debunked as the sheer idiocy it really is.
- Getting C programmers to understand that they cause the computer to do less than minimum is intractable. … Ask him why he thinks he should be able to get away with unsafe code, core dumps, viruses, buffer overruns, undetected errors, etc., just because he wants "speed".
- In C++, reinvention is its own reward.
- C++ is a language strongly optimized for liars and people who go by guesswork and ignorance.
- Life is too long to be good at C++ – if you had spent all that time to become good at it, you would essentially have to work with it, too, to get back the costs, and that would just be some long, drawn-out torture.
- … it's just that in C++ and the like, you don't trust anybody, and in CLOS you basically trust everybody. The practical result is that thieves and bums use C++ and nice people use CLOS.
- aestheticles: n. The little-known source of aesthetic reactions. If your whole body feels like going into a fetal position or otherwise double over from the pain of experiencing something exceptionally ugly and inelegant, such as C++, it's because your aestheticles got creamed.
- I believe C++ instills fear in programmers, fear that the interaction of some details causes unpredictable results. Its unmanageable complexity has spawned more fear-preventing tools than any other language, but the solution should have been to create and use a language that does not overload the whole goddamn human brain with irrelevant details.
- I may be biased, but I tend to find a much lower tendency among female programmers to be dishonest about their skills, and thus do not say they know C++ when they are smart enough to realize that that would be a lie for all but perhaps 5 people on this planet.
A novice had a problem and could not find a solution. "I know," said the novice, "I'll just use Perl
!" The novice now had two problems.
- Excuse me while I barf in Larry Wall's general direction.
- A novice had a problem and could not find a solution. "I know," said the novice, "I'll just use Perl!" The novice now had two problems.
- This is your brain. This is Perl. This is your brain on Perl. Any questions?
- It's not that Perl programmers are idiots, it's that the language rewards idiotic behavior in a way that no other language or tool has ever done.
- Part of any serious QA is removing Perl code the same way you go over a dilapidated building you inherit to remove chewing gum and duct tape and fix whatever was kept together for real.
- I guess there are some things that are so gross you just have to forget, or it'll destroy something within you. Perl is the first such thing I have known.
- If Perl is the solution, you're solving the wrong problem.
- The ultimate laziness is not using Perl. That saves you so much work you wouldn't believe it if you had never tried it.
- I have actually programmed a fair bit in Perl, like I have C++ code published with my name on it. Other things I have tried and have no intention to do again if I can at all avoid it include smoking, getting drunk enough to puke and waste the whole next day with hang-over, breaking a leg in a violent car crash, getting mugged in New York City, or travel with Aeroflot.
- What I actually admire in Perl is its ability to provide a very successful abstraction of the horrible mess that is collectively called Unix.
- Let's just hope that all the world is run by Bill Gates before the Perl hackers can destroy it.
- Common Lisp is a big-city language. Spit out the hayseed, pronounce "shit" with one syllable and "shotgun" with two. You're not in Kansas, anymore. C is the language of the poor farmer village where the allocation of every seed and livestock matters, where taxes are low and public service non-existent. Appreciating the value of a large language is evidently hard for many people, just like many people find themselves miserable in the big city and go to great lengths to create a small village for themselves in the city where everything is like it used to be where they came from.
- If you want to know why Lisp doesn't win around you, find a mirror.
- Well, I think comparing Common Lisp to Scheme is prima facie evidence of ill will, even if Common Lisp wins. It is somewhat like a supposed compliment like "man, you are even smarter than George W. Bush".
- So pardon my cynical twist, but what are you doing with that 20,000×20,000 double-precision floating point matrix you say you need to invert today? If you answer "nutt'n, I jus kinda wondered what it'd be like, you know", you should be very happy that I am most likely more than 3000 miles away from you, or I would come over and slap you hard.
Elegance is necessarily unnatural
, only achieveable at great expense. If you just do something, it won't be elegant, but if you do it and then see what might be more elegant, and do it again, you might, after an unknown number of iterations, get something that is very elegant.
- The secret to feeling great about yourself is not to be found in searching for people who are less than you and then show yourself superior to them, but in searching for people who are more than you and then show yourself worthy of their company.
- The very word "exist" derives from "to step forth, to stand out".
- A word says more than a thousand images. Exercises for the visually inclined: illustrate "appreciation", "humor", "software", "education", "inalienable rights", "elegance", "fact".
- Languages shape the way we think, or don't.
- Enlightenment is probably antithetical to impatience.
- Contrary to the foolish notion that syntax is immaterial, people optimize the way they express themselves, and so express themselves differently with different syntaxes.
- Elegance is necessarily unnatural, only achieveable at great expense. If you just do something, it won't be elegant, but if you do it and then see what might be more elegant, and do it again, you might, after an unknown number of iterations, get something that is very elegant.
- The clumsiness of people who have to engage their brain at every step is unbearably painful to watch, at least to me, and that's what the novice-friendly software makes people do, because there's no elegance in them, it's just a mass of features to be learned by rote. However, this suits people a hell of a lot better than setting out at age 6 to become a great ballet dancer and achieving their goal 20 years later after every tendon and muscle and joint has been asked to perform just a little bit more than nature ever intended over and over and over again. To most people, this is insanity. But in reality, it's art, and it's the art in what we do that makes us human.
- You become a serious programmer by going through a stage where you are fully aware of the degree to which you know the specification, meaning both the explicit and the tacit specification of your language and of your problem. "Hey, it works most of the time" is the very antithesis of a serious programmer, and certain languages can only support code like that.
- The theory is the result of listening to the problem. When the theory acquires a life of its own because some people like it more than the real world, all kinds of uninspiring, uninteresting things happen, so the key is both to listen to the problem and to study the theory. But always remember that just as much theory is bunk as there are buggy solutions. There is nothing more wrong with "theory" than "solutions" – both their quality and their applicability are orthogonal to their existence.
- All experience has taught us that solving a complex problem uncovers hidden assumptions and ever more knowledge, trade-offs that we didn't anticipate but which can make the difference between meeting a deadline and going into research mode for a year, etc.
- More and more, people see that solving any problem is a question of acquiring knowledge and having respect for the cognitive and epistemological processes involved in the human brain: use what you know, learn what you can, and if you have to guess, be aware that you do so you can go back and update your guesses when you (hopefully) learn more.
- Computer programming is like the ability or skill to see what Picasso saw from all the different angles at once. If it is an art, the crucial element of art is to look at things from an angle that produces new insight or at least has that potential.
- Sometimes, the only way to learn something really well is to revert to the state of mind of a novice and reawaken to the raw observations that you have accumulated instead of relying on the conclusions you have reached from the exogenous premises absorbed through teaching and bookish learning.
- The Web provided me with a much needed realization that information cannot be fully separated from its presentation, and showed me something I knew without verbalizing explicitly, that the presentation form we choose communicates real information.
- The fundamental deficiency in HTML is that it reduces hypertext and the intertwinedness of human communication to a question of how it is rendered and what happens when you click on it. … HTML is to the browser what PostScript is to the laser printer.
Structure is nothing
if it is all you got. Skeletons spook
people if they try to walk around on their own. I really wonder why XML
- If GML was an infant, SGML is the bright youngster who far exceeds expectations and made its parents too proud, but XML is the drug-addicted gang member who had committed his first murder before he had sex, which was rape.
- XML is a giant step in no direction at all.
- Structure is nothing if it is all you got. Skeletons spook people if they try to walk around on their own. I really wonder why XML does not.
- They are not identical. The aspects you are willing to ignore are more important than the aspects you are willing to accept. Robbery is not just another way of making a living, rape is not just another way of satisfying basic human needs, torture is not just another way of interrogation. And XML is not just another way of writing S-exps. There are some things in life that you do not do if you want to be a moral being and feel proud of what you have accomplished.
- A "new" language that differs from the rest of the crop by one or a couple features is proof positive that both what it came from and what it has become are mutations about to die. There are tens if not hundreds of thousands of such "languages" that people have invented over the years, for all sorts of weird purposes where they just could not use whatever language they were already using, could not extend it, and could not fathom how to modify its tools without making a whole new language. They never stopped to think about how horribly wasteful this is, they just went on to create yet another language called Dodo, the Titanic, Edsel, Kyoto-agreement …
- A system needs to be alive and workable even when other people than the first enthusiasts start using it. Reinvention and revolution are enthusiast stuff. Invention and evolution are engineering.
- The Novice has been the focus of an alarming amount of attention in the computer field. It is not just that the preferred user is unskilled, it is that the whole field in its application rewards novices and punishes experts. What you learn today will be useless a few years hence, so why bother to study and know anything well? I think this is the main reason for the IT winter we are now experiencing.
- The novice-friendly software is more like a misbehaving dog: it shits on the floor, it destroys things, and stinks – the novice-friendly software embodies the opposite of what computer people have dreamed of for decades: artificial stupidity. It's more human.
- Is it still "artificial intelligence" when the task is to model human stupidity, or would only preventing its devastating consequences get an "AI" rating?
- Rewarding incompetence and ignorance increases the number of incompetent programmers. Designing programming languages and tools so incompetent programmers can feel better about themselves is not the way to go.
- If I sound grumpy, it is only because I have come across too many idiots of the "it can't be done" persuasion lately, the kind of managers who have an aquarium in their office because fifteen brains think better than one.
- Unfortunately, nigh the whole world is now duped into thinking that silly fill-in forms on web pages is the way to do user interfaces.
- I have come to believe that large print, thick and heavy paper, and wide margins and oversize leading is indicative of the expected intelligence of the reader. … Compare children's books and books on Web Duhsign or other X-in-21-days books. If the reading level of a specification is below college level, chances are the people behind it are morons and the result morose.
- Ignoring for a moment the power of the American Medical Association, we still wouldn't see a huge amount of books on neurosurgery for dummies in 21 days or whatever. It's just plain inappropriate, and it's intentionally out of people's reach.
- Would you buy a book proudly stating on the cover that its reader is a dummy? Or would you think "of course it's ironic"?
A system needs to be alive and workable even when other people than the first enthusiasts start using it. Reinvention and revolution are enthusiast stuff. Invention and evolution are engineering.
- "Code sharing" is an economic surplus phenomenon. It works only when none of the people involved in it are in any form of need.
- The currency in the developer community is enthusiasm.
- Like many older fans of Free Software and Open Source, I have discovered that it is really only free in the sense that the time you spend on it is worthless.
- The Internet will not become a money machine until the banking industry figures out how to transfer money for free so you can charge USD 0.005 (half a cent) for some simple service like, say, reading a newspaper article you have searched for. With today's payment system, the cost of the transfer of the funds completely dwarf the cost of the service paid for. … This situation, however, is what acutely prevents the Internet from taking off as a network for paid services.
- Note that ANSI standards also cost way too much compared to toilet paper, and they're pretty bad quality as toilet paper goes, too.
- Companies that go bankrupt are a danger to healthy competition. They are able to make their creditors and shareholders pay for their losses and bad management and then to start anew with assets that they essentially got for free, quite unlike the competition that has not gone bankrupt, who have to pay full price for their assets, but quite similar to how their customers have wanted their products, for too little money.
- Look at Unix. It was essentially open source before anyone invented the term, and that caused a large number of ways to solve the same problem and left the market to sort them out, which they didn't (the market never will sort out bad quality in anything but the single most important property of the products), and Unix got itself into a position where some horribly demented crapware from Microsoft could compete with it and fool a whole bunch of people for a while.
- They don't make poles long enough for me want to touch Microsoft products, and I don't want any mass-marketed game-playing device or Windows appliance near my desk or on my network. This is my workbench, dammit, it's not a pretty box to impress people with graphics and sounds. When I work at this system up to 12 hours a day, I'm profoundly uninterested in what user interface a novice user would prefer.
- What people "want" is a function of what they learn is available. If you wish to sell something, you'd better understand that you can't give people what they want in the market today, because what they want today is what they can already get. You have to discover what they really want, and find some way to give that physical shape.
- Optimization is generally detrimental to future success, but it is the only way to accomplish present success in competition with others who are equally interested in short-term results.
- If, however, one factor is too successful, it will continue to be the winning factor regardless of the variation in the other factors over the range of variation in the conditions, and therefore will stifle the development of other advantageous factors until the conditions change sufficiently that it no longer is the winning factor. At this point, the whole population is ill prepared for the change, and may well perish entirely if the winning factor accidentally becomes the matching factor for a disease or a predator.
- When all actions are used for feedback, the consequence of making mistakes will be a corrective and appropriate response, because everything everybody does matters. … The more selective you are in the feedback you accept, the more insane your reasoning will become as you will necessarily reject corrective feedback that would have led to better reasoning.
- I have argued that a religion or a philosophy cannot speak about facts of the world – if it does, it is now or will eventually be wrong – but it can and should speak about the relevance and ranking of facts and observations.
I think we all need to take our teachers with multiple grains of salt. They have, after all, figured out their stuff at a much slower pace than they try to teach us. Something is bound to get lost in that process.
- Suppose you want to convert a bunch of pictures into icons. Suppose you know how to do that with one picture: you click on the file, "drag" it over to the icon-generating program, then "drop" it there. Repeat until thoroughly disgusted with the idiocy of the paradigm of direct manipulation. Suppose instead you were able to communicate your actual desire to the computer, in (gasp!) a language!
- If car manufacturers made cars according to spec the same way software vendors make software according to spec, all five wheels would be of widely differing sizes, it would take one person to steer and another to work the pedals and yet another to operate the user-friendly menu-driven dashboard, and if it would not drive straight ahead without a lot of effort, civil engineers would respond by building spiraling roads around each city.
- Historically, labor unions arose when people had gotten a taste of a different lifestyle and were willing to pay a lot more for their basic livelihood and had gotten into a fix they couldn't get out of – because they had accepted the unacceptable to begin with. Accepting something you have to form a labor union to fight after the fact only tells me that people were acting against their own best (or even good) interests for a long time. I don't see any rational, coherent explanation for this sort of behavior in humans, but it's all over the place.
- Unformed people delight in the gaudy and in novelty. Cooked people delight in the ordinary.
- For some reason, the United States is the only country on Earth where accidents don't happen – it's always somebody's fault, and you can sue that somebody for neglect.
- From the Latin word "imponere", base of the obsolete English "impone" and translated as "impress" in modern English, Nordic hackers have coined the terms "imponator" (a device that does nothing but impress bystanders, referred to as the "imponator effect") and "imponade" (that "goo" that fills you as you get impressed with something – from "marmelade", often referred as "full of imponade", always ironic).
- In Norway, we have a community of people who prefer to use a version of Norwegian that looks very much like lutefisk: Dug up remains from the garbage heap of history and dressed up to look like a tradition.
- Norway did not even have a revolution at the time the rest of Europe was busy figuring out human rights and stuff, because we were busy fighting over how to spell it.
- We have no mom-and-pop oil rigs in Norway.
The only way to improve your work or life is by understanding and examining why you do what you do.
- The only important property of evils of the past is that they not be repeated in the future, in any way, shape, or form.
- Gotos aren't damnable to begin with. If you aren't smart enough to distinguish what's bad about some gotos from all gotos, goto hell.
- Whoever decided to use the semicolon to end something should just be taken out and have his colon semified. (At least COBOL and SQL managed to use a period.)
- I have a cat, so I know that when she digs her very sharp claws into my chest or stomach it's really a sign of affection, but I don't see any reason for programming languages to show affection with pain.
- Like so many other things in life, you rarely get only what you optimize for.
- If the syntax is good enough for the information, it should be good enough for the meta-information.
- Shed the idea that you were programming in an OO style. There is no such thing. You were only programming a particular object system. Now you get to program a different object system.
- I believe that structure is a product, not a process.
- A little knowledge is a dangerous thing. I regret that this isn't fatal.
- I'm bothered by the fact that stupid people don't spontaneously combust, which they should.
- You have failed to consider the ramifications of the solutions and pose a problem that simply would not exist if you did. This taxes my patience, which is already legendary in its general absence.
- Have you considered the option of getting the joke? If not, try it now and redeem your soul.
- Please note: if you think the above is offensive, it is of course a joke and you did not get it. If you do not find it offensive, it is of course not a joke, and you did not get it. This is not a joke. Get it?
- Once we were Programmers. Maybe our last best hope is a movie.
People search for the meaning of life, but this is the easy question: we are born into a world that presents us with many millenia of collected knowledge and information, and all our predecessors ask of us is that we not waste our brief life ignoring the past only to rediscover or reinvent its lessons badly.
- Intellectual laziness is punishable by brain death. It is a natural law.
- God grant me serenity to accept the code I cannot change, courage to change the code I can, and wisdom to know the difference.
- Microsoft is not the answer. Microsoft is the question. NO is the answer.
- In a fight against something, the fight has value, victory has none. In a fight for something, the fight is a loss, victory merely relief.
- Act from reason, and failure makes you rethink and study harder. Act from faith, and failure makes you blame someone and push harder.
- The past is not more important than the future, despite what your culture has taught you. Your future observations, conclusions, and beliefs are more important to you than those in your past ever will be. The world is changing so fast the balance between the past and the future has shifted.
- NETSCAPISM /net-'sca-, pi-z*m/ n (1995): habitual diversion of the mind to purely imaginative activity or entertainment as an escape from the realization that the Internet was built by and for someone else.
- If you think this year is "97", you are not "year 2000 compliant".
- If this is not what you expected, please alter your expectations.
- Sufficiently advanced political correctness is indistinguishable from sarcasm.
- Environmentalists are much too concerned with planet Earth. Their geocentric attitude prevents them from seeing the greater picture – lots of planets are much worse off than Earth is.
- Suppose we blasted all politicians into space. Would the SETI project find even one of them?
- If you are concerned about netiquette, you are either concerned about your own and follow good netiquette, or you are concerned about others and violate good netiquette by bothering people with your "concern", as the only netiquette you can actually affect is your own.
- Life is hard, and then you die.