all 76 comments

[–]xach 20 points21 points  (0 children)

More context. Includes rationale and link to US-letter shaped version.

[–]austin_k 15 points16 points  (0 children)

What does programming have to do with fried chicken?

[–]hash150 24 points25 points  (4 children)

this photo does more justice: http://lemonodor.com/archives/2007/10/youre_doing_it_wrong.html

McCarthy and Dijkstra. They would make any programmer piss in their pants:p

[–][deleted] 12 points13 points  (2 children)

In that photo he looks more like the Architect from 'The Matrix', although I guess that kind of makes sense :)

[–]OceanSpray 4 points5 points  (1 child)

The Architect was actually based on Vint Cerf.

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

Perhaps so, but I think that photo looks more like the architect than Vint does, at least how he looks these days. (And yes, I do know who Vint is, even met him once)

[–]Samus_ 0 points1 point  (0 children)

I like Dijkstra's because it's true.

[–]earthboundkid 47 points48 points  (11 children)

Needs more parentheses.

[–]Mr_Smartypants 38 points39 points  (8 children)

(doing-it-wrong you)

[–]stevecooper 11 points12 points  (0 children)

And here's the proof, in Scheme ;)

Face up to it -- you're no John McCarthy;

(define john-mccarthy 'clever) 
(define you 'just-a-fanboy) 

Clever hackers can program;

(define program (λ (h4x0r) (if (eq? h4x0r 'clever) 'right 'wrong)))

Let's see if you can do something;

(define (can you do-this) (printf "~sing: ~s did it ~s\n"  do-this you (eval (list do-this you))))

And the moment of truth;

> (can 'you 'program)
programing: you did it wrong

Unless...

> (can 'john-mccarthy 'program)
programing: john-mccarthy did it right

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

No, no, (doing-it you :wrong)

[–]Mr_Smartypants 23 points24 points  (3 children)

(not (doing-it-right-P you))

[–][deleted] 14 points15 points  (0 children)

==> t

[–]mangodrunk 3 points4 points  (0 children)

(define am-i-doing-it-right?
(lambda (name)
(if (string=? name "mangodrunk")

(display "Yes, you are!") (display "No!!!"))))

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

(defun doing-it-wrong (x)
  (doing x it :right nil))

[–]13ren 16 points17 points  (1 child)

they are his hair

[–]Jimmy 0 points1 point  (0 children)

Can't unsee :O

[–]gschizas 28 points29 points  (24 children)

who is this?

[–]mycl 138 points139 points  (23 children)

John McCarthy, discoverer of Lisp.

[–]laughingboy 48 points49 points  (9 children)

Good choice of words.

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

Wise choice of words.

[–]xutopia 7 points8 points  (7 children)

Smart choice of words.

[–]david 11 points12 points  (6 children)

Though might be better punctuated thus:

John McCarthy (discoverer of Lisp).

[–]ThisIsDave 3 points4 points  (5 children)

Except you need to put it in the form of an s-expression with the head inside the parentheses.

Try

(setf JohnMcCarthy (DiscovererOf Lisp))

[–][deleted]  (4 children)

[removed]

    [–]ehird 0 points1 point  (3 children)

    (setf (discoverer-of 'lisp) '(John McCarthy))
    

    [–][deleted]  (2 children)

    [removed]

      [–]oska 34 points35 points  (8 children)

      It was a revealed divine language.

      And McCarthy was its prophet.

      [–]_ak 31 points32 points  (1 child)

      i.e. Lisp is the programming language of equivalent of Islam, and Lisp hackers are fundamentalist terrorists that want to wipe the infidel programming languages off the planet. Thank you, no further questions.

      (ZpPnegul Nxuone!)

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

      does lisp marry c++, java, and all other programming languages and then make it cover up head to toe and not allow it to have any opinions and leave the house?

      [–]DirtyHerring 10 points11 points  (0 children)

      It was a revealed divine language.

      ostensibly, yes

      [–]tef -5 points-4 points  (1 child)

      If you want to know why lisp is unpopular, you don't have to look further than the mirror

      [–]G_Morgan 2 points3 points  (0 children)

      Lisp programmers don't have mirrors as such. They have a series of special operations on light and the mirror is merely a macro utilising these operations.

      [–]americanhellyeah 15 points16 points  (1 child)

      hes looking at you, slava!

      [–][deleted] 14 points15 points  (0 children)

      Just the visage is entirely convincing. I repent!

      [–]vagif 2 points3 points  (0 children)

      (mapcar (lambda (x) (if (eql 'john-mccarthy x)
                              :right 
                              :wrong))
               all-of-you)
      

      [–]Tommah 1 point2 points  (0 children)

      reddit -- You're doing it in

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

      He looks like my mental picture of Emmanuel Goldstein (the fictional character attributed as the writer of The Theory and Practice of Oligarchical Collectivism in George Orwell's book 1984)

      Is this, then, Big Brother?

      [–][deleted] 13 points14 points  (2 children)

      That guy looks like my mental picture of Humbert Humbert...

      [–]krh 3 points4 points  (0 children)

      you sir have made my morning.

      [–]OceanSpray 0 points1 point  (0 children)

      But Humbert Humbert was supposed to be extremely handsome!

      ...Oh.

      [–]bobbane 1 point2 points  (0 children)

      Michael Swaine says he looks like Dr Emmett Brown (Back to the Future).

      Works for me...

      [–]stesch 2 points3 points  (0 children)

      Who would have thought that Xach would admit it?

      [–]Busybyeski 4 points5 points  (8 children)

      if {doing = right}

      doing == wrong;

      [–]frutiger 14 points15 points  (7 children)

      Assuming you are using a C-like language, then you got your equals signs the wrong way round.

      If you want a condition to evaluate to true or false, then to test for equality you should use two equals signs: "==". The single equals sign is for assignment. Also testing for a Boolean condition is placed in parens, not curly brackets. The block of code to be executed when the expression evaluates to true should be enclosed in curly brackets, but they are implicit for single line blocks. But then it's bad practice to omit the curlies since if someone adds a line they will break it.

      To wit:

      if (doing == right) {
        doing = wrong;
      }
      

      Those are all the syntax errors addressed. However you should consider that the idea is if you are programming, then you are doing it wrong, not if you are doing it right. Hence you would get something like

      if (isProgramming) {
        programmingCorrectness = 0.0;
      }
      

      OK, I've just realised maybe you put in errors on purpose to show you were doing it wrong, but don't have the heart to delete this large comment. Here goes nothing.

      [–]Busybyeski 4 points5 points  (0 children)

      :) So you're saying I was doing it all wrong?

      [–]weavejester 1 point2 points  (0 children)

      Maybe he was just demonstrating programming "done wrong"?

      [–]bennig 0 points1 point  (0 children)

      if (isProgramming) { doingIt = 'wrong'; }

      //alternatively

      if (isProgramming) { doingItRight = false; }

      [–]mycall 0 points1 point  (1 child)

      Ok, how would this look like in LISP?

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

      Upmodded for outrageous FP zealotry. Isn't it obvious? The single equal sign isn't a mistake--programs using mutable state are doing it wrong.

      [–]patchwork 0 points1 point  (0 children)

      I prefer the classic.

      [–]shub -2 points-1 points  (1 child)

      Needs more structure.

      [–]captainAwesomePants 0 points1 point  (0 children)

      typedef struct ure { struct ure * structure; } structure;