This talk was delivered by Larry Wall on August 23, 1999 at the Perl Conference 3.0 in
Monterey, CA.
  (Note: most of the pictures this year were 
  images of molecules that I animated using a program called RasMol, along with a Perl 
  script to drive it and make the molecules rotate. You probably don't have 
  RasMol on your computer, and if you do, you probably don't have my script. So 
  in the following I've substituted static images, but these link to the corresponding 
  PDB files, which can be fed to RasMol (or my script, pmol) if you want to play 
  with the images yourself. You can find many more PDB files on the net if you're 
  interested.)   
 
 Two years ago, in my first 
  State of the Onion speech, I used sounds. 
 [I play ``You 
  will be absorbed.''] 
 Last year, in my second State of 
  the Onion speech, I used pictures. 
  
 
 Those of you who heard or read that speech will recall that I threatened to 
  use smellovision this year. So guess what. 
 [I hold up an onion.] 
 Here's an onion. Allow me to cut it here in front of you. 
 [I cut the onion.] 
 They laughed, they cried... 
 And just this last week, they evacuated 
  a federal building in Washington, D.C. because people were getting sick from 
  some mysterious toxic fumes. Guess what sort of toxic fumes they turned out 
  to be? 
 [I wave the onion.] 
 The active ingredient in onion, the one that makes you cry, is thought to 
  be something called 1-propenyl sulfenic acid. In chemistry shorthand, that looks 
  something like this: 
    CH3-CH=CH-SOH
 You may be wondering what this has to do with programming. Other than the 
  fact that reading other people's code sometimes makes you want to cry. 
 The point I would like to make today is that I think the Perl community has 
  ``good chemistry''. We often talk about groups of people having ``good chemistry''. 
  Especially when the group consists of two people who suddenly like each other 
  very much. 
 Unfortunately, what the phrase ``good chemistry'' usually means is that we 
  don't understand what's making the chemistry good. Chemistry is a mystery to 
  most of us. It's like saying ``It's all Greek to me.'' 
 There's one little problem with that saying. I can read Greek. I learned some 
  classical Greek at Seattle Pacific University 
  as part of my declared major, Natural and Artificial Languages. That was just 
  an excuse to mix up linguistics and computer science. You probably know that 
  already. 
 What you may not know is that I started off college with a double major in 
  Chemistry and Music. If I can't say, ``It's all Greek to me,'' neither can I 
  say, ``We have good chemistry.'' At least, I can't say it without wondering 
  what it means. I have some ideas about what good chemistry is, and that's what 
  I'm going to talk about today. 
 So to start, here's one of our favorite molecules. 
  
 
 This is caffeine. Good chemistry in this case means keeping you awake through 
  my talk. 
 Actually, you should find this talk interesting if you've ever had anything 
  to do with chemistry. And if you are lifeform that is not based on chemistry, 
  I apologize in advance. Well hey, this'll talk will probably get slashdotted, 
  and who knows how many AI projects are reading slashdot these days? 
 I'm also tempted to apologize for the fact that this talk is organized organically. 
  But I won't. It's funny, but the way the English language is going, ``organized 
  organically'' is becoming an oxymoron. You wouldn't think so, since the two 
  words are based on the same root. But our world today has two opposing views 
  on the goodness of hierarchy, and each of these words has fallen down on opposite 
  sides of the fence. Modern life is organized, while postmodern life is merely 
  organic. 
 But I'm not here to talk about postmodernism. I tried 
  to do that last spring, and afterwards I was thoroughly deconstructed by the 
  deconstructionists for attempting to deconstruct deconstructionism. At least, 
  that's the construction I put on their construction of it. I was talking about 
  postmodern culture, and they thought I was talking about postmodern literature. 
  Not at all the same thing! 
 Anyway, I'm enough of a postmodern that if you tell me my talk is organized, 
  I'll be insulted, but if you tell me my talk is organic, I'll be complimented. 
 If you tell me my talk is orgasmic, I won't believe you. 
 At least, not until I light this candle. 
 [I wave around an oversized votive candle.] 
 I ordered this candle a couple of days ago over the Web from a company called 
  Realm Fragrances. They hold the patent on 
  fragrances containing human pheromones. This candle purports to contain human 
  pheromones. 
 [I light the candle.] 
 Come on baby, light my fire... 
 If you didn't think Perl was sexy before, you will now. 
 (Whether you want to or not.) 
 Better programming through chemistry... 
 Actually, I just read another news 
  item a couple of weeks ago that said that some study had just shown that 
  the recently discovered vomeronasal receptors in the human nose are, in fact, 
  vestigial, and don't have neurons to them in adults. Ah, well. Studies are a 
  dime a dozen. If you try hard enough, you can even find studies that prove cigarette 
  smoking is bad for you. 
 Speaking of studies, a bright fellow by the name of Ted 
  Shieh has been studying 
  the demand for programmers of various kinds. He's been analyzing the web site 
  www.dice.com, where corporate America advertises 
  openings for high-tech jobs, about 132,000 as of today. This is what is known 
  to pollsters as a large statistical sample. 
 Of course, to a chemist it would be a very small statistical sample. Chemists 
  aren't impressed until you start using exponential notation. You know, Avocado's 
  number, and all that. 
 Anyway, here's a chart that Ted came up with. It charts the number of job 
  listings on dice.com that mention any of the top programming languages. The 
  chart shows growth over the last six months. 
 
  
   
 
 Perl is the yellow line. 
 Allow me to point out this spot in April when Perl passed up COBOL. 
 Of course, passing up COBOL is no big deal these days, since demand for COBOL 
  seems to be trailing off, for some strange reason. 
 Perhaps more to the point, notice this spot in July when Perl passed up Visual 
  Basic. 
 Finally, notice this spot way down in the corner, where Python finally got 
  off the baseline. A little. 
 In the race to the millennium, it looks like C++ will win, Java will place, 
  and Perl will show. Some of you no doubt will wish we could erase those top 
  two lines, but I don't think you should be unduly concerned. Note that both 
  C++ and Java are systems programming languages. They're the two sports cars 
  out in front of the race. Meanwhile, Perl is the fastest SUV, coming up in front 
  of all the other SUVs. It's the best in its class. 
 Of course, we all know Perl is in a class of its own. 
 Our real competitor according to this chart is JavaScript. They're coming 
  along strong in fourth place. That's not terribly surprising, considering that 
  JavaScript has taken over a lot of the role in the browser that everyone originally 
  thought Java was going to fill by itself. 
 This chart actually lies a little, since it's not scaled by the number of 
  jobs listed on dice.com. And that number has been doubling once every year or 
  so. So all these lines are a little too optimistic. 
 Here's another chart from Ted that corrects for that. 
 
  
   
 
 In this chart, all the languages add up to 100%, so we can see what the relative 
  demand has been over the last six months. 
 See the pinkish band at the top. Imminent death of COBOL predicted. 
 Look at these bottom two bands. Of course, we don't want to be fooled by the 
  fact that they're next to each other, but I do think that Java is growing primarily 
  at the expense of C++. And maybe COBOL. 
 Meanwhile, both Perl and JavaScript are chewing into Visual Basic, and maybe 
  COBOL. Nobody else on the screen is doing any chewing. The thin blue band at 
  the top is Smalltalk. If you look really closely at the black line above that, 
  it gets a little thicker in spots. That's Python. 
 There's another way in which these charts might be lying. They don't tell 
  us how many jobs there actually are out there. 
 Perhaps there's no demand for Python programmers simply because Python programmers 
  are really easy to find without using dice.com. 
 Some of you look dubious. 
 On the other hand, maybe the demand for Java programmers is driven entirely 
  by hype, and there are in reality no Java programmers out there. 
 Well hey, maybe that's why they cancelled JavaOS last week. 
 I really do have a hard time believing that COBOL is dying. Maybe the demand 
  is going down for COBOL programmers because there are billions of COBOL programmers 
  beating down the doors of businesses looking for jobs. Maybe the demand was 
  artificially high because of Y2K fixups. I dunno. Maybe someone did a study 
  that proves COBOL is bad for your health. 
 Well, enough disclaimers. As long as the demand for Perl keeps going up, we're 
  doing something right. You can call it buzz or you can call it brownian motion, 
  but let's keep doing the good chemistry. 
 So, all right, what is good chemistry. First of all, good chemistry 
  is a little bit messy. Good chemistry is not the same as perfect chemistry. 
  If you want perfect chemistry, here's an example. 
  
 
 That's a bit of diamond crystal. Diamonds may be a girl's best friend (next 
  to pheromone candles), but they're actually rather boring. Crystals are pretty, 
  but they just kind of sit there, not doing much of anything. 
 
  
   
 
 Pearls are much more interesting. They're produced by living oysters, after 
  all. They consist of alternating layers of calcium carbonate crystals and an 
  organic binder known as conchiolin. (I suppose it must have something to do 
  with conches.) These alternating layers are what make the pearl irridescent. 
  Calcium carbonate is, of course, a compound of calcium, carbon, and oxygen. 
  Conchiolin is a mixture of various proteins and polysaccharides, rather like 
  your fingernails. 
 In other words, pearls are complicated, and a little bit messy. 
 I think good chemistry is complicated, and a little bit messy. I suppose one 
  of the reasons I think that is because, when I was young, I had a chemistry 
  set. 
 Back in those days, men were men, boys were boys, and chemistry sets were 
  Chemistry Sets. Chemistry sets had real test tubes, and a real alcohol burner, 
  and real chemicals. Dangerous chemicals. The bottles had warnings like, ``Eat 
  thou not of this. If thou eatest of this, thou shalt surely die.'' Or something 
  like that. 
 Sure, you could do all the fun experiments turning things red or blue or clear 
  again, but you could also do the things that really matter to a junior high 
  boy. You could make things that stink. You could make things that explode. 
 Of course, they didn't give you everything you needed for that in the chemistry 
  set. You were expected to go down to the drug store and buy your own potassium 
  nitrate, otherwise known as saltpeter. Saltpeter is cool stuff, for a junior 
  high boy. 
 One day I mixed some saltpeter with sulfur and sugar. You're all familiar 
  with sugar at the macroscopic level. Here's a picture of a sucrose molecule. 
  
 
 Nowadays it seems sort of a shame to use such a pretty, not to mention tasty, 
  molecule merely for fuel, but that's what I did. I discovered a couple of things. 
  First, I discovered that this mixture makes an excellent stink bomb. As you 
  can see here, the sugar molecule has lots of hydrogens. When you burn the mixture, 
  apparently the sugar donates hydrogen and the sulfur donates, well, sulfur, 
  producing hydrogen sulfide in copious quantities. 
 I also discovered that I should not light off stink bombs in the basement. 
  Besides smelling like rotten eggs, hydrogen sulfide is rather poisonous in large 
  quantities. Guess who had just manufactured large quantities of it. In the basement. 
  Fortunately, no one else was home at the time, and I had the house aired out 
  by the time anyone came home. But I didn't know that, so all morning, the door 
  to the basement had a sign that said, ``If thou goest down here, thou shalt 
  surely die.'' Or something like that. 
 Maybe someday I'll talk about the rockets. Rocket science is messy too. 
 By the way, I'm showing you this molecule courtesy of a program called ``RasMol''. 
  No, it's not written in Perl. It's written in C. Sorry. 
 Believe it or not, there really are a few good programs out there written 
  in C. You know, rn... patch... 
 Maybe perl... 
 But in my defense, allow me to point out that I'm running the animation by 
  piping commands to RasMol from a Perl script. And that's as it should be. We 
  don't have to do everything with Perl. We just have to be in control. 
 Actually, I'm not a control freak. I think I'm more of a chaos freak. 
 Well, okay, I'm really a controlled chaos freak. Here's some Wallace 
  and Gromit: 
 [I play ``Everything 
  seems to be under control!''] 
 Seriously, Perl doesn't have to be in control. It just likes to be in the 
  middle. Kind of like those carbon atoms there in sucrose. Or here. 
  
 
 This is a strand of polycyanoacrylate, more commonly known as superglue. In 
  the middle of things is where a glue language belongs. The world will always 
  have interstices, and we'll always be needing to put glue into them upon occasion. 
  We're in the business of developing better glue molecules. So don't fret yourselves 
  about whether Perl is doing better or worse than some other language in the 
  job market. We're not in that kind of a race. 
 We do not define Perl as an improved version of some other language. Nor do 
  we have to define Perl as the next universal language. We're not trying to make 
  Perl a better language than C++, or Python, or Java, or JavaScript. We're trying 
  to make Perl a better language than Perl. That's all. 
 So, what do you want in a glue language? 
 Well, you have to have the basics, of course. The BASIC programming language 
  was called BASIC for a reason, after all. This superglue molecule shows us a 
  nice bit of linear programming along the backbone. It's a bit obscured by all 
  the cyanide groups. I find it a bit odd that surgeons use superglue because 
  it's non-toxic. Hydrogen cyanide is what they use in the gas chamber in California. 
  Go figure. 
 Here's a simpler example of linear programming, without all the cyanide on 
  the side. 
  
 
 This is decane, a simple linear hydrocarbon. We don't use it for glue. I am 
  undoubtedly burning some decane in my candle here, since parafin is largely 
  made up of long linear alkanes. If we chop this molecule in half, we get a shorter 
  script. Er, program. Er, molecule. 
  
 
 This is a simple molecule of pentane. We don't use it for glue, either. Mostly 
  we burn it up, because pentane is a basic ingredient of gasoline. But certainly 
  not the only ingredient. You'd never want to burn 100% pentane in your car. 
  100% pentane is the very definition of 0 octane gas. To get 100 octane gas, 
  we have to add a branching capability to our language. 
  
 
 This molecule defines the standard for 100 octane gas. Not suprisingly, it's 
  called octane, or at least one variety thereof. It's official name is 2,2,3,3-tetramethyl 
  butane, which is a really stupid name, because the methyl groups added onto 
  the side of the butane are exactly equivalent to the methyl groups at the ends 
  of the butane. I think it should be called 1,1,1,2,2,2-hexamethyl ethane. But 
  that's not how chemical names officially work. You have to pick the longest 
  carbon chain you can, four in this case, even if thereby you deny the basic 
  symmetry of the molecule. It's kind of like the standard definition of regular 
  expressions, where you always have to match the longest string. Of course, lots 
  of people call it hexamethyl ethane anyway, since real people really do believe 
  there's more than one way to do it. People use minimal regular expressions now 
  too, thanks to Perl. I'm not sure what the octane rating of Perl is. Perl doesn't 
  make your engine knock, but it's not very expensive either. 
 Here's a cool molecule, if you're into explosions. Or branching structures. 
  
 
 It seems like whenever you run into a cool explosive, you tend to find nitrogen 
  involved, whether you're talking about potassium nitrate, or nitrogen triiodide, 
  or in this case glyceryl trinitrate. More commonly known as nitroglycerin. Also 
  more commonly used as a heart medication than as an explosive. Still, 
  to a junior high boy, it's dynamite. 
 Of course, not only do we need branching structures in our programming language, 
  but we need various looping constructs. 
  
 
 That's TNT, trinitrotoluene, frequently confused with dynamite. But it takes 
  a detonator to get TNT to explode. You can take pure TNT and hit it with a hammer, 
  and nothing will happen. Don't try this with dynamite. It will ruin your day, 
  if not your hammer. 
 TNT is based on toluene, which is a benzene ring with one methyl group. People 
  used to think of benzene and other aromatic molecules as having double bonds 
  that alternated rapidly with single bonds. But it turns out that all the extra 
  electrons are usually out in a cloud on either side of the ring, which hangs 
  a great big negative charge out there, which is why many potent biological molecules 
  use them. Loops are a powerful part of Perl too. That's why there are so many 
  different kinds of loops in Perl. 
 And there's more than one way to do it in chemistry as well. Interestingly, 
  you can substitute nitrogens for carbons and get aromatic loops as well. You 
  can always tell the aromatic loops from the non-aromatic loops because the aromatics 
  don't seem to have enough hydrogens attached to the carbons or nitrogens. Perl 
  has other ways of telling loops apart. Here's a molecule that will drive you 
  loopy. 
  
 
 This is histamine. Many of you are intimately familiar with histamines, because 
  as loops, they program you to sneeze repeatedly. Some of you may be producing 
  histamines because of the fragrances in this candle. Some of you may have gone 
  so far as to program your body with an antihistamine such as Benadryl. 
  
 
 Obviously, Benadryl is the more powerful program because it has two loops 
  instead of one. 
 Alternately, you can view it as the reuse of modules. Though it looks more 
  like cut and paste to me. For real reusability, of course, you need to study 
  catalysts, and their proteinaceous cousins, enzymes. Most enzymes are just chock 
  full of loops, branches, objects, interfaces, and what have you. Many reusable 
  enzymes can be downloaded from the CDAN. That's the Comprehensive DNA Archive 
  Network, replicated in the nucleus of each of your cells. 
 Just a few more loops. I like loops a lot. 
  
 
 Here's another dual-use explosive, cyclonite. It doubles as a rat poison. 
  Rat eats it, KABOOM! In this case you can see that the ring is not aromatic, 
  so all the carbons connect to four things and the nitrogens to three things. 
 One thing we haven't figured out how to do in Perl is three-dimensional loops. 
  Hey, Sarathy, let's put this on the Todo list: 
  
 
 This is cubane. Not aromatic. See all the hydrogens. 
  
 
 This is dodecahedrane. Also not aromatic. 
  
 
 And of course, buckminsterfullerene, which is aromatic, for some definition 
  of the term. Note that there are no hydrogens at all. Buckyballs are a recently 
  discovered form of pure carbon, like graphite and diamond. Making organic molecules 
  without hydrogen is kind of like writing Perl without dollar signs. Which oddly 
  enough you will be able to do easily, now that we're getting lvalue subroutines, 
  another recent discovery. 
 I have a gazillion other molecules I could show you, but I'd like to go back 
  and explain a little more personal history. After all, the theme of all these 
  keynote speeches has been that you can't really understand Perl without understanding 
  Larry. There is an unfortunate corollary, however. Since it's not possible to 
  understand Larry, it's not possible to understand Perl either. 
 But that's okay, because Perl is a bit like those early chemistry sets. You 
  didn't really have to understand what you were doing in order to do interesting 
  things. You might blow yourself up, but more likely, you'd have a great deal 
  of fun. 
 I remember a lot more about my chemistry set than I do of high school chemistry. 
  In fact, about the only thing I learned in high school chemistry was Avocado's, 
  er, Avogadros number, 6.02 times 10 to the something big. But between my chemistry 
  set and Avogadro's number, I managed to persuade myself to major in Chemistry 
  in college. 
 Among other things. 
 My first year at college, I took inorganic chemistry. Inorganic chemistry 
  is mostly about weighing things. I spent an awful lot of time trying to get 
  the scales to read what they were supposed to read. The error bars on my graphs 
  were always rather too large. 
 I remember wandering into the lab next door, and being shocked to find a jar 
  of potassium cyanide sitting in the cupboard. I suppose that's when it first 
  occurred to me that we really do expect people not to be idiots. For example, 
  we really do expect people not to call system("rm -rf *"). 
 I also learned something about ambiguity that year. I was leafing through 
  a chemistry book when I saw an entry that said, ``periodic acid''. ``Huh,'' 
  I said. I should really have figured it out sooner, since I knew about perchloric 
  acid. Periodic acid is not acid that's periodically acidic, but rather 
  it's per-iodic acid, based on iodine, just as perchloric acid is based on chlorine. 
 Even if periodic acid isn't, the periodic table is. We studied the periodic 
  table of the elements a lot in inorganic chemistry. There's a reason it's called 
  periodic, and it also has to do with the fact that iodine is like chlorine, 
  and fluorine, and bromine. Sort of. 
 
  
   
 
 You know, if this were a computer language, people would say it has too many 
  ways to do the same thing. It has too many features that work too similarly, 
  and at the same time it's missing key features of higher abstraction that would 
  really help an MIT grad student. Elements do 
  multiple inheritance of properties, which is evil. Strong typing is not enforced. 
  Nothing should be made of carbon, because organic programming gives you too 
  many ways to get into trouble. There are too many metals, too many gasses, and 
  not enough semiconductors like silicon. There ought to be more elements like 
  carbon. Everything should be made of carbon atoms. Silicon is only good for 
  sand, it should be removed. If this were really object-oriented, electrons and 
  quarks would have the same interface as atoms and molecules. There's not enough 
  encapsulation of electrons in the metals. There's too much encapsulation in 
  the lanthanides and the noble gasses. And why the heck do we need so many different 
  noble gasses anyway? They don't do anything! Throw 'em into that big hole at 
  the top of the chart. And don't get me started on isotopes! 
 The periodic table is a mess. It should be redesigned. 
 That's what I learned in inorganic chemistry. My second year I took organic 
  chemistry. That's the same year I started working as a computer programmer. 
  Before that I was working as a projectionist. 
 [I look at the projection screen in the auditorium.] 
 You know, I'm still a projectionist. You can never entirely stop being what 
  you once were. That's why it's important to be the right person today, and not 
  put it off till tomorrow. 
 Organic chemistry is way cool, but there's a problem. You can always tell 
  who is taking organic chemistry on campus. That whole second year, whenever 
  I wandered into the computer center, I was told I smelled like a goat. (In retrospect, 
  I would rather have smelled like a camel.) Anyway, the odor of everything from 
  ether to isoamyl acetate was oozing out of my pores, and it took several weeks 
  for it to wear off after the school year was out. At least, so I'm told. I couldn't 
  smell much of anything for the rest of the summer. 
 But I enjoyed organic chemistry. We did both synthesis and analysis, but I 
  think I enjoyed the synthesis more. Not too surprising, given who I am. I've 
  never stopped being a synthesist. 
 Actually, I think chemistry strikes a good balance between synthesis and analysis, 
  between holism and reductionism. As a synthesist, I tend to be scared of reductionism. 
  You know, behavior can be reduced to biology, biology can be reduced to biochemistry, 
  and biochemistry can be reduced to chemistry. Chemistry, in turn, can be reduced 
  to physics. And physics, of course, can be reduced to theology. 
 Well, hey, that follows logically from the fact that physics can be reduced 
  to math. 
 Ask most any mathemetician about God, and he'll say something like, ``We can't 
  prove that God exists. However, we can prove that if God does exist, he's pretty 
  good at math. In fact, we can prove that even if God doesn't exist, he's still 
  pretty good at math.'' 
 Personally, I think God is pretty good at both analysis and synthesis. I like 
  the periodic table the way it is, thank you. 
 Here's an ester I synthesized, called isoamyl acetate. 
  
 
 You know this better as the smell of banana. 
 [I eat a banana.] 
 You might think bananas are relatively harmless, but after the quarter was 
  over, I took my precious isoamyl acetate to my dorm room. During an all-dorm 
  water fight, I had the bright idea of turning another floor of the dorm into 
  banana heaven, so I got out my stash of banana perfume. One of my floormates 
  grabbed it from me, went down to the other floor and threw it in someone's face, 
  who proceeded to almost asphyxiate. Fortunately, he didn't, so no one ever asked 
  where the banana perfume came from, and I had a close escape from the law of 
  unintended consequences. But one of the consequences was that chemistry lost 
  a bit of its glamour for me that day. Eventually I realized I didn't want to 
  be a chemist. By my third year in college, I had changed my major to Premed, 
  but I didn't really want to be a doctor either. It was just an excuse to take 
  all the science courses I wanted. 
 But another consequence was that I realized that, whenever you synthesize 
  something, people will find a way misuse it. People misuse Perl too--if you 
  can call spammers people. Perl is the language of choice for network abuse. 
  That doesn't mean Perl isn't a net win for the world. In the long run, I suspect 
  more lives will be saved by nitroglycerin than will be destroyed by it. But 
  Alfred Nobel's brother was 
  one of the people destroyed by it. I'd rather not be destroyed by Perl. 
 Chemistry is a serious subject. Sometimes it's a matter of life and death. 
  Here's vitamin C. 
  
 
 Now that's what you call mission critical programming. Here's vitamin B-12. 
  
 
 Vitamin B-12 is the proof that cobalt is necessary in your diet. Cobalt is 
  the pinkish atom in the middle attached to five nitrogens and a cyanide group. 
  In this context, cyanide gives life rather than taking it away. Context is everything 
  in chemistry, just as it is in Perl. 
 Even when chemistry is not life and death to people, it's life and death to 
  bacteria and insects. Here's malathion. 
  
 
 One year when my wife was pregnant with one of our kids, we were camped here 
  near Monterey, and we got sprayed with 
  malathion. 
 That kid turned out strange. But then, all my kids turned out strange. 
 Strange and wonderful. Kind of like Perl. 
  
 
 Here's a naturally occuring insecticide. An organic pesticide, if you will. 
  It occurs naturally in the leaves of the species Nicotiana Tabacum. 
  Obviously, since nicotine is a natural insecticide, it can't be bad for you, 
  can it? 
  
 
 This molecule with the Mr. 
  Yuk chlorines is DDT, still used in many parts of the world, but not here. 
  We thought it was death for insects, but it was also death for birds. The law 
  of unintended consequences again. But where DDT is still used, millions of people 
  are alive who would have been dead of malaria. 
 To an organic chemist, pesticides are organic. 
 To an organic farmer, pesticides are not organic. 
 That's okay, you can make Perl mean opposite things too. I expect 
  people to make Perl mean opposite things, both good and bad. That doesn't take 
  anything away from the central meaning of Perl. To explain the central meaning 
  of Perl, let's look at the central meaning of the word ``organic''. 
 If you go back to ancient Greek, the noun organon already meant what 
  we often mean by ``organ'' today; that is, a functional subsystem of your body. 
  But organon could also mean an implement, or a tool, such as a surgical 
  instrument. The related adjective organikos meant ``serving as a tool, 
  or engine.'' There you have it. If Perl is a tool or engine, then you're doing 
  organic programming by definition. 
 Interestingly, not only could the Greek word mean a surgical instrument, it 
  could also mean a musical instrument. So music is also organic. Perl and music 
  have a lot in common. Maybe next year I should talk about music. After all, 
  I majored in Music too. 
 If you're really lucky, I'll forget to bring my violin. 
 Somewhere between music and chemistry there's got to be a joke about organ 
  grinders, but I'll be a monkey's uncle if I can see it. 
 Anyway, now you know that the ancient Greeks thought their tools were organs, 
  or their organs were tools. 
 Hmm, maybe I'd better not expand on that. 
 Actually, as a linguist, I don't believe in etymological meanings. The meanings 
  of words depend on many contexts, but all of the real contexts are in the present 
  language, and true etymology is only in the past. On the other hand, part of 
  the current context is what you think the etymology of a word is. That's 
  why people like me keep trotting out etymological arguments, even though they're 
  relatively meaningless, not to mention wrong half the time. 
 So, what do I mean when I say I program organically? The central 
  meaning of ``organic'' these days derives from the organs of the body. It means 
  doing business naturally, the way that your body does business, complicated 
  and messy, with lots of interconnections and ramifications and stuff we don't 
  entirely understand yet. But that's the way nature does business. 
 On the basis of that, the organic farmers can tell you that it's unnatural 
  to use pesticides, because we don't want it to be part of us, while organic 
  chemists can tell you that it's natural to use carbon-based chemistry, because 
  what we're made of. They're both right, in their way. 
 Likewise, Perl is designed to let you program naturally. Whatever you 
  think natural means. 
 Perl culture must also be organic. That means that each bond in the molecule 
  of Perl culture must work the way it's supposed to. There is no central atom 
  to the Perl molecule. Maybe I'm a heavy cobalt atom hidden off somewhere in 
  the middle, but the whole molecule is what works. The molecule has what is called 
  tensegrity: 
  the proper balance of pushes and pulls to maintain its integrity. In terms of 
  our culture, it means that sometimes we attract each other, and sometimes we 
  repel each other, but more importantly, it means that we're there for each other 
  there to attract or repel as necessary. Look for balance in your attractions 
  and repulsions. Look for equilibrium. 
 What's good for the Perl molecule is good for the Open Source molecule. Last 
  year I gave you a picture of the Open Source world taken from physics. 
  
 
 This is Rocheworld, 
  where two gravitationally bound bodies approach each other. It's a curious coincidence 
  that the word rapp-roche-ment has a ``roche'' in the middle. The picture 
  was intended to indicate the approach of the open source world to the commercial 
  world. I wondered at the time whether things would become unstable if the two 
  worlds got even closer together. That's what would happen in a real Rocheworld. 
  But gravitation turns out to be an incomplete model for what's really going 
  to happen. Gravity is never repulsive, and can only be balanced by centrifugal 
  force, but the combination of electromagnetism and the strong force make atomic 
  bonds that can push as well as pull. So I think that the open source folks and 
  the commercial folks will find the right balance. Here's a sample molecule. 
  
 
 This is the molecule known to most of you as acetylene. 
 If we're to make this correspond to last year's picture, then this hydrogen 
  atom on the left is named Richard, and the one on the right is named Bill. (Hmm, 
  they seem to be circling each other. How appropriate.) [Well, 
  they were circling in my talk, anyway.] This carbon atom on the left 
  is all the open source folks that are trying to cooperate constructively with 
  commercial folks, and this other carbon atom is all the commercial folks trying 
  to cooperate with open source folks. The bond in the middle is simultaneously 
  the strongest bond and the weakest bond. It's the strongest bond, because it's 
  a triple bond. It's also the weakest bond, because it's a very energetic bond, 
  and could be broken by outside forces. 
 But not by inside forces. 
 Let me be specific. Some folks in this room are extremely leary of Bill. Others 
  are extremely leary of Richard. These people tend to be leary not only of the 
  opposite hydrogen, but also the opposite carbon. They are supplying the repulsive 
  forces, because they fear the opposite extreme. 
 At the same time, there are lots of good people who are actively supplying 
  the attractive forces. Nobody has enough power to crush the two carbons together. 
  Nobody has enough power to tear them apart. They're in a metastable state. They 
  have tensegrity. It's my hope that the open source movement achieves this kind 
  of tensegrity. 
 That being said, acetylene is flammable. If it is abused too much, 
  it can explode. I only ever had one unanticipated explosion when I was doing 
  chemistry in my basement, and that was when I was generating acetylene. I was 
  an idiot, and was generating it in a small glass jar. Don't try this at home. 
  Fortunately, it was a very small glass jar, and I was already wearing glasses 
  at the time. I was shaken but unhurt. I don't play with acetylene much any more, 
  because it is rather touchy stuff. So maybe, if you're thinking about starting 
  a war between the open source folks and the commercial folks, you should think 
  again. First of all, you'll be fighting against a lot of good folks, and you'll 
  probably lose. Second of all, you might win, and the world will be split up 
  into separate atoms. Maybe that's what the hydrogens on the end want, but the 
  carbons in the middle would really like to stick together and make something 
  useful. 
 If we try hard enough, maybe we can make open source into something stable 
  in the middle. Here's the funniest molecule I saw in my research. 
  
 
 It's called bromochlorofluoroiodomethane. I have no idea what it's good for 
  (or more likely, bad for), just as I have no idea where open source culture 
  is going. But I think of open source as the single carbon in the middle, holding 
  steady the separate interests of these four different atoms, bromine, chlorine, 
  fluorine, and iodine, which to my mind represent the domains .gov, .edu, .org, 
  and .com. If we work things right, maybe we can balance things tetrahedrally 
  so that, for instance, the .govs and .edus keep the .coms and .orgs from destroying 
  each other, and vice versa every whichaway. 
 I guess I really am an optimist. A paranoid optimist, true, but an optimist 
  nonetheless. 
 Of course, this picture is also an oversimplification. The true picture is 
  much more organic. Whatever that means. 
  
 
 I leave you with some vitamin E. Like many of the most useful molecules in 
  biology, it is self contradictory. It has a strongly polar end, and a strongly 
  nonpolar end. It has a funny shape. It smells a little odd. It looks like it 
  was designed by a committee. It's sort of a molecular camel, if you will. 
 Nevertheless, it's a useful beast. Just as each of those atoms is necessary 
  to the proper functioning of the molecule as a whole, the molecule as a whole 
  is necessary to the functioning of each of you sitting here today. Each of you 
  in turn can be a vitamin that helps keeps the Perl community healthy. 
 And our collective hope is that the Perl community is one of the vitamins 
  that will keep the world healthy. 
 The key to equilibrium is to balance out all your reactions. 
 Don't overreact. Don't underreact. 
 Don't overact. Don't underact. 
 But do act. And act passionately, with balance. 
 I wasn't going to talk about rockets. But I want the Perl community to behave 
  like a rocket engine. What's the point of rocket science? It's to see how big 
  of an explosion you can have without blowing your rocket chamber apart. I want 
  to have the maximum amount of passion in the Perl community without blowing 
  the community apart. So have a little tolerance for other people's passions, 
  even if they don't match your own. Let's balance our passions. 
 ``Churn, baby, churn,'' as Guy Kawasaki 
  told us earlier today. It's the only way we'll jump to the next curve. It's 
  how we'll let a thousand flowers bloom. 
 I feel like I'm still playing with my chemistry set here, and I still don't 
  know what I'm doing entirely. Doubtless there will be more cool stinks and explosions 
  this year, just as we've had our fair share of stinks and explosions in the 
  last year. But face it, we've made many more good smells than bad ones. And 
  the explosions haven't done much besides ruffle a few feathers. 
 So let's keep doing organic chemistry this year. It's good chemistry, even 
  if we do smell like a camel occasionally. 
 Thanks for letting me douse you with weird chemicals today.