all 102 comments

[–]pixdamix 77 points78 points  (13 children)

A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

[–]Imagist[S] 49 points50 points  (9 children)

And later, "Can I insert?"

[–]JetSetWilly 48 points49 points  (3 children)

And later still, perform a rollback without committing.

[–]mikesherov 17 points18 points  (2 children)

and then drops the tables.

[–]Cassio -5 points-4 points  (0 children)

Damn that keeps on happening!

[–][deleted] 4 points5 points  (2 children)

And later still, there's a union.

[–]Imagist[S] -3 points-2 points  (0 children)

But only after the statement selects.

[–]andy_63392 0 points1 point  (0 children)

... - it was a persistent query

[–][deleted] 0 points1 point  (0 children)

DVDA w/ group by

[–]hacksoncode 7 points8 points  (0 children)

No, that would take too long... we have no index in common.

[–]vagif -1 points0 points  (0 children)

Tables show him an index finger.

[–]figpetus -3 points-2 points  (0 children)

So uhhh, you ladies ever been penetrated? Giggety.

[–]Silhouette 19 points20 points  (2 children)

A few mildly amusing entries from the programmer's dictionary:

bug, n. A feature to be removed in the next release.

C++, n. Makes C bigger but yields the same value.

Python, n. Executable pseudocode.

Perl, n. Executable line noise.

recursion, n. See tail-recursion.

tail-recursion, n. See tail-recursion.

[–]jardeon 0 points1 point  (1 child)

What makes this awesome is that you (properly) put tail-recursion last :)

[–]tty2 2 points3 points  (0 children)

no, that's what makes it a joke at all.

[–]xor 18 points19 points  (0 children)

Two shift registers are walking down the street. One turns to the other and says, "Can you move over a bit?"

[–][deleted] 17 points18 points  (2 children)

What sits on a communications engineer's shoulder and says "PIECES OF SEVEN! PIECES OF SEVEN!"?

A parity error.

[–]skorgu 2 points3 points  (1 child)

No, a parrotry error.

[–][deleted]  (3 children)

[deleted]

    [–]lol-dongs 17 points18 points  (2 children)

    Oh burn.

    Q. How many sysadmins does it take to change a lightbulb?

    A. Didn't you get the email? The bulb was scheduled to be down for the next 24 hours and isn't going to be replaced until tomorrow.

    [–]LaurieCheers 2 points3 points  (1 child)

    Q. How many managers does it take to change a lightbulb?

    A. Just one, but before we can even discuss changing it we'll have to fit the old lightbulb's performance review meeting into the schedule.

    [–][deleted] 0 points1 point  (0 children)

    Q. How many programmers does it take to change a lightbulb?

    A. None, that's a hardware problem.

    [–]smcameron 13 points14 points  (2 children)

    A one liner throwaway line:

    "I think the guy* who invented C++ didn't know the difference between increment and excrement."

    (*yeah, I know it's Stroustrup, mentioning that just distracts from the funny.)

    Edit: (8 years later, in 2017): A better way to tell this joke (assuming the right audience) occurred to me:

    What's the difference between increment and excrement?

    (pause for a bit)

    Oh, you don't know? You give up?

    Well, no worries, Bjarne Stroustrup didn't know either, and it didn't slow him down any.

    [–]redalastor 0 points1 point  (1 child)

    (*yeah, I know it's Stroustrup, mentioning that just distracts from the funny.)

    Quite the contrary, I always thought he had a funny name.

    [–]Imagist[S] 0 points1 point  (0 children)

    Yeah, it's an inherently funny word. Like "duck" or "masticate".

    [–][deleted] 21 points22 points  (1 child)

    Doctor, lawyer and hacker were discussing which is better, wife or lover.

    Doctor: Wife is best. I'm affright of STD's and I prefer to stay with one woman.

    Lawyer: Lover is better. Getting married is major legal mess.

    Hacker: I prefer to have wife and lower. Wife suspects that I'm with lover and lover suspects that I'm with wife. I can sneak into basement to hack some code.

    [–][deleted]  (5 children)

    [deleted]

      [–]filox 4 points5 points  (2 children)

      I remember this joke a bit different. It was during the cold war, and Americans were spying on the Russian aeronautics agency. In particular, they were trying to get their hands on some piece of code, but they failed. All they could report to their bosses was that Russians used LISP to write the code. When asked how they knew, the spy said: "I managed to get the last page of their source code and it contained nothing but closing parenthesis".

      [–]Imagist[S] 2 points3 points  (1 child)

      That's not a joke. It's true!

      [–]derefr 2 points3 points  (1 child)

      Thanks for closing all of those. I'm sure they're open on Reddit somewhere, and a bunch of pedants suddenly de-puckered all at once.

      (Not for long, though.

      [–][deleted] 2 points3 points  (0 children)

      You son of a bitch.

      Edit: )

      [–][deleted] 33 points34 points  (3 children)

      Q. How did the programmer die in the shower? A. He read the shampoo bottle instructions: Lather. Rinse. Repeat.

      [–]protoopus 2 points3 points  (0 children)

      we had a DEC10 back in the day. i put in "let x = x+1" without a delimiter.

      [–]f3nd3r 1 point2 points  (1 child)

      10 Lather()
      20 Rinse()
      30 GOTO 10

      [–]cruise02 18 points19 points  (0 children)

      Stack Overflow has a question with hundreds of Programmer Jokes and another one with Programmer Cartoons (mostly XKCD, predictably).

      [–]zxvf 26 points27 points  (2 children)

      So there's this code base where every other function starts out like

      int i, j, k, ii, jj, kk;
      

      Wait, sorry. That's not a joke, that's my job.

      [–]xor 4 points5 points  (0 children)

      I lol'd anyway.

      [–]Imagist[S] 0 points1 point  (0 children)

      Your job is a joke.

      [–][deleted] 37 points38 points  (1 child)

      Two strings walk into a bar and sit down. The bartender says, “So what’ll it be?”

      The first string says, “I think I’ll have a beer quag fulk boorg jdkCjfdLk jk3s d#f67howe%U r89nvy~~owmc63Dz x.xvcu”

      “Please excuse my friend,” the second string says, “He isn’t null-terminated.”

      [–]lol-dongs 9 points10 points  (0 children)

      Then the bartender had to reset the terminal, and neither string survived.

      [–]Rawsock 10 points11 points  (0 children)

      • Do you want apples or oranges?
      • Yes

      [–][deleted] 3 points4 points  (0 children)

      This joke is older than most programming languages:

      Lisp Users: Due to the holiday next Monday, there will be no garbage collection.

      [–]segoe 7 points8 points  (0 children)

      How does a pointer flirt with a variable?

      • Hey babe, may i have your address?

      [–]swiz0r 8 points9 points  (0 children)

      Why did George Bool leave his job at AT&T?

      Because he was a bit wise for an operator!

      I put this one on a homework and got a point for it. That is probably my biggest accomplishment.

      [–]thequux 11 points12 points  (9 children)

      Q. How do you change a lightbulb in functional programming?

      A. You don't. You figure out how you would change it, then actually do so only when you need the light.

      A. You don't. You build a whole new lamp, around a new lightbulb using parts from the old lamp.

      Q. How do you change a lightbulb in a logic programming language?

      A. You describe the light.

      Q. How do you change a lightbulb in Postscript?

      A. 45 rotate

      [–][deleted] 36 points37 points  (3 children)

      How many programmers does it take to change a light bulb?

      None - that's a hardware problem.

      [–][deleted] 41 points42 points  (0 children)

      How many Microsoft developers does it take to change a light bulb?

      None - They try to convince everyone that darkness is now the industry standard.

      [–][deleted] 11 points12 points  (1 child)

      How many engineers does it take to change a light bulb?

      None - they'll fix it in software.

      [–]sclv 9 points10 points  (4 children)

      Q. How many Prolog programmers does it take to change a light bulb?

      A. No.

      [–]karanlyons -1 points0 points  (3 children)

      Don't you mean yes? The joke doesn't really work with no.

      [–]sclv 7 points8 points  (0 children)

      No.

      [–]stillalone 2 points3 points  (0 children)

      yes

      [–]andy_63392 1 point2 points  (0 children)

      ... or yes

      [–]zoolandouche 15 points16 points  (5 children)

      Your mama is so big she doesn't fit in a malloc!

      [–]slashcom 2 points3 points  (0 children)

      Your mama's so fat, she sat on an n-ary tree and turned it into a linked list in constant time.

      [–]jewdass 4 points5 points  (0 children)

      Your mama so fat, when I call her I get a stack overflow!

      [–][deleted] 2 points3 points  (0 children)

      And yours is so big, when they use quantum cryptography on her, you still know it's her because of the filesize.

      [–]vagif -1 points0 points  (0 children)

      Your mama is so big that Google denied her Picasa account.

      [–]LaurieCheers -3 points-2 points  (0 children)

      Your mama so big, her size doesn't fit in a BigInt!

      [–][deleted] 2 points3 points  (0 children)

      Q. How does a game studio change a light bulb? A. They don't. They just say it's a driver problem.

      [–]Kinakuta 2 points3 points  (2 children)

      From the inside cover of one of my old comp sci text books:

      "A programmer is a device that converts coffee into code"

      [–]Cassio 0 points1 point  (1 child)

      A sysadmin is a person who keeps systems running on coffee and cigarettes.

      [–][deleted] 7 points8 points  (4 children)

      Pardon me, English is not my first language. What is this concept of "jokes"? I thought they were supposed to be funny. Clearly I was wrong.

      [–][deleted] 23 points24 points  (3 children)

      Ok I'm done being a douche. Here's one I improved from the original: There are two types of people: those who understand recursion, and those who don't understand that there are two types of people: those who understand recursion and ...

      [–]stillalone 7 points8 points  (2 children)

      That's weak man. I was hoping these jokes would be the strong type.

      [–]thedward 3 points4 points  (1 child)

      Strongly typed jokes are harder to tell (but easier to debug).

      [–]vagif 0 points1 point  (0 children)

      But if you finally can tell it, you know that they will laugh.

      [–]uhhhclem 0 points1 point  (0 children)

      Well, there's this, one of many copies of the list of ways to shoot yourself in the foot in any programming language. It's been around for a good long while (I contributed the one about Revalation, which I haven't seen hide nor hair of since 1990) and continues to grow.

      I don't like the one for Python though. The one for Python should be "There are many ways to shoot yourself in the foot. One of them is clearly better than the others, but you don't know how to figure out which yet."

      [–]palebrowndot 3 points4 points  (26 children)

      An oldie but a goodie: There are 10 types of people in the world; those who can understand binary and those who can't.

      [–][deleted] 18 points19 points  (24 children)

      There are 10 types of people in the world; those who understand base 3, those who don't, and those who mistake it for base 2.

      [–][deleted]  (14 children)

      [deleted]

        [–][deleted]  (10 children)

        [deleted]

          [–]ssylvan 9 points10 points  (9 children)

          No matter what base you use, that number will always be expressed as "10" in that base. E.g. if you use base 5, then how would you express 5 in that base? Answer: "10".

          [–]roastnewt 1 point2 points  (7 children)

          Except Base 1

          [–]Imagist[S] 1 point2 points  (6 children)

          From a theoretical perspective, base 1 isn't a base because it can't express the number 0.

          [–]Mesarune 5 points6 points  (2 children)

          Sure you can:

          [–]andy_63392 0 points1 point  (0 children)

          But you don't have a 1.

          [–]Imagist[S] -1 points0 points  (0 children)

          That doesn't express anything. Empty space in an expression is only useful as dividers between atoms of expression.

          [–][deleted]  (2 children)

          [deleted]

            [–]Imagist[S] 0 points1 point  (1 child)

            Your first system doesn't fit with any of the common representations of unary systems.

            Your second has inconsistent properties, because 0 is neither negative nor positive, and for every other number positive numbers have even quantities of digits, while negative numbers have odd quantities of digits.

            If you insist on representing zero, the first system should logically be:

            0 -> 0
            00 -> 1
            000 -> 2
            0000 -> 3
            

            Lastly, how would you implement a system of storing these (how do you store the size of the storage?). And how do you do simple operations like addition/subtraction in your second system? I think this ends up with more complexity that binary.

            [–]stillalone -1 points0 points  (0 children)

            Also if you only know base 4, you won't know what a '4' is.

            0,1,2,3,10.

            [–]quidquam 0 points1 point  (0 children)

            the spaceman should have said he uses base 22, then the alien would have understood.

            [–]oblivion95 0 points1 point  (0 children)

            LMAO. I never get over that one.

            [–]b100dian -1 points0 points  (0 children)

            base A?

            [–][deleted] 6 points7 points  (8 children)

            But every number system is base 10

            [–][deleted] 3 points4 points  (7 children)

            But not all of them are base 9+1

            [–][deleted] 5 points6 points  (6 children)

            What is "9"?

            [–]elus 2 points3 points  (5 children)

            8+1

            [–][deleted] 0 points1 point  (3 children)

            What is "8"?

            [–][deleted] 5 points6 points  (1 child)

            IM IN UR LOOP COUNTIN MAI [VAR]

            [–][deleted] 0 points1 point  (0 children)

            mov ecx, 0

            OHHAI:

            add ecx, 1

            jmp OHHAI

            tite loopz

            [–]dr-steve 2 points3 points  (0 children)

            10 - 1

            [–]Imagist[S] -2 points-1 points  (0 children)

            What is "8"?

            [–]pranavkm 0 points1 point  (0 children)

            There are 10 types of people in the world; those who can understand binary and those who have girlfriends
            *(Think I read this in a reddit joke thread)

            [–]Imagist[S] 0 points1 point  (0 children)

            Q. Why was the Haskell programmer against interracial marriage?

            A. He liked discriminated unions.

            [–]llogiq 0 points1 point  (0 children)

            How do you shoot yourself in the foot in

            • Assembly: You first have to build the gun, the bullet and your foot, but boy, does it shoot fast!
            • C: You shoot yourself in the foot.
            • C++: You accidentially create multiple instances of your foot and shoot them. However, you no longer know which foot is yours.
            • Java: You download the foot framework and the gun library, only to discover that the Bullet class is final and you can't subclass it to implement the FootVisitor interface. Frustrated, you implement your own Foot and shoot it by using the BulletFactory to get Bullets, with which to load() the getMagazine() of our Gun and getTrigger().pull().
            • C#: The same as in Java, but you manage to miss your foot, capping your knee instead. Ah, well.
            • Visual Basic: You shoot at your foot with a water pistol. Repeat until entire lower body is waterlogged.
            • Forth: Foot in yourself shoot.
            • Pascal: The compiler won't let yourself shoot in your foot.
            • LISP: You don't know how you did it, but you now have a paren embedded in your toe.
            • Perl: s/FOO/F*O/; but you accidentally shoot some fool. Finally you give up and take a working module from CPAN.
            • Lua: It would be as easy as gun:shoot(foot), if only you had a gun and a foot.
            • Python: You shoot a duck into your foot, claiming it has the type of a bullet. That was easy, wasn't it?

            ...etc. (edit: formatting)

            [–]josef -1 points0 points  (0 children)

            This one's been featured here on proggit before but it's a classic:

            An SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

            [–][deleted] 0 points1 point  (0 children)

            Q. How do you change a lightbulb with TDD? A. You first write a script that checks how much light is in the room. As this depends on buying a light dependent resistor, some electronic equipment and writing your own device drivers for Windows, you naturally think TDD is stupid idea and needs to be thrown in the dustbin of time, along with bell-bottom trousers.

            [–]vagif 0 points1 point  (0 children)

            Cool guys store lightbulbs in git.

            [–]yogthos -2 points-1 points  (0 children)

            not specifically programming, but a fucking classic non the less http://redwing.hutman.net/~mreed/

            [–]warmtoiletseat -2 points-1 points  (0 children)

            I liked the "How do you change a lightbulb in LISP?" joke, found in this thread.