Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Programming, languages, literature

Programming, languages, literature

Delivered at RubyConf Argentina 2014, this talk tries to show that programming doesn't exist in a cultural vacuum and it might have more to do with literature than you think!


Marta Paciorkowska

October 25, 2014


  1. Programming, languages, literature Marta Paciorkowska (@a_meba) RubyConf Argentina 2014

  2. Before we start

  3. http://www.levenez.com/lang/

  4. None
  5. Important note: I'm European

  6. ACT I, Scene 1: Setting the scene

  7. Antiquity (almost exclusively) smart, bearded men. Basics of philosophy. Epic

  8. The Middle Ages (500 - 1500) Antiquity? Bad, very bad.

    Still epic, still brutal... ...with more requirements than a visit to any German institution, though
  9. He has done his worst but the wound will end

    him. He is hasped and hooped and hirpling with pain, limping and looped in it. Like a man outlawed for wickedness, he must await the mighty judgement of God in majesty. Beowulf
  10. Renaissance & Enlightenment (1500 - 1800) Brutality is passe. It's

    all about Reason.
  11. Romanticism (1800 - 1870) Beards went out of fashion. :-(

    Getting complicated: Romanticism, Transcendentalism, Victorianism, German Romanticism, Polish (national) Romanticism, …
  12. Realism & Existentialism (1850 - 1910) Romanticism does a reality

    check. It's ok to ask questions. Social movements FTW! The banal, the normal, the mundane.
  13. [http://style.mtv.com//wp­content/uploads/style/2014/03/seinfeld­normcore.jpg] ...kinda like normcore

  14. Modernism (1910 - 1960) Boldly go where no man has

    gone before. Focus on the bright and shiny future. Irony, parody and experimenting are the new hip.
  15. ...I was a Flower of the mountain yes when I

    put the rose in my hair like the Andalusian girls used or shall I wear a red yes and how he kissed me under the Moorish wall and I thought well as well him as another and then I asked him with my eyes to ask again yes and then he asked me would I yes to say yes... James Joyce, Ulysses
  16. Postmodernism (1960 - today) Metafiction, fragmentation. If you cannot understand

    it, the author's doing it right.
  17. Important note! Epochs don't have strict boundaries. Two approaches to

    progress: → build something completely new, → use what's best and build on its foundations.
  18. ACT I, Scene 2: Setting the scene, ctd.

  19. When it comes to evolution... Evolution of specific languages !=

    evolution of specific concepts Concepts: → Formal syntactic notation, → formal semantic definitional techniques, → attempts at designing machines whose instruction code is a higher level language, → user defined languages.
  20. When it comes to languages... New concepts != old languages

    obsolete → We simultaneously use functional, objective … languages → Ruby is not the best language in the world. ;-)
  21. ACT II, SCENE 1 Common processes: The Holy Grail

  22. The ultimate ease of communication with the computer allows the

    user to specify his [sic!] instructions – or wishes – in a natural language such as English. That is a shorthand way of saying that the user could use his [sic!] native language, including notation (e.g. Algebra, molecular diagrams) appropriate to his particular field. This concept does not envision one single computer system understanding all of English. It does envision many systems, each of which is capable of dealing with a particular field, specifically including its specialized jargon. Jean E. Sammet, Programming Languages: History and Future. IBM Corporation, 1972
  23. Was it even possible? English-like syntax sounded perfect, but pretty

    futuristic... ...and there were more important things. Python/Ruby (1991/1993) had English-like vocabulary, but English-like syntax came ten years later.
  24. ...there was also AppleScript (1993), but that didn't work out...

  25. ...and then came Shakespeare (the esoteric programming language)

  26. The Infamous Hello World Program. Romeo, a young man with

    a remarkable patience. Juliet, a likewise young woman of remarkable grace. Ophelia, a remarkable woman much in dispute with Hamlet. Hamlet, the flatterer of Andersen Insulting A/S. Act I: Hamlet's insults and flattery. Scene I: The insulting of Romeo. [Enter Hamlet and Romeo] Hamlet: You lying stupid fatherless big smelly half-witted coward! You are as stupid as the difference between a handsome rich brave hero and thyself! Speak your mind! You are as brave as the sum of your fat little stuffed misused dusty old rotten codpiece and a beautiful fair warm peaceful sunny summer's day. You are as healthy as the difference between the sum of the sweetest reddest rose and my father and yourself! Speak your mind! You are as cowardly as the sum of yourself and the difference between a big mighty proud kingdom and a horse. Speak your mind. Speak your mind! [Exit Romeo] # rest of the code omitted
  27. The design goal was to make a language with beautiful

    source code that resembled Shakespeare plays. There are no fancy data or control structures, just basic arithmetic and gotos. Authors of Shakespeare
  28. So what about literature?

  29. [T]he use of reason is more distinctive of a human

    being than the use of his limbs. Aristotle
  30. What once was lost... Remember Antiquity? The basics of philosophy

    (& science) The Middle Ages had different priorities (Black Death, anyone?) Galileo & Copernicus (both promoted heliocentrism in Europe) had a pretty hard time
  31. ...has been found again Kant with other Renaissance & Enlightenment

    writers and philosophers brought Antiquity back. Stoicism and reason became cool again.
  32. All our knowledge begins with the senses, proceeds then to

    understanding, and ends with reason. There is nothing higher than reason. Immanuel Kant
  33. Reason is to the philosopher what grace is to the

    Christian. Grace causes the Christian to act, reason moves the philosopher. Denis Diderot
  34. The first hipsters Wikimedia.org

  35. ACT II, SCENE 2 Common processes: What has postmodernism done

    to us?
  36. (Note to translators: I am sorry for the next slides.)

  37. n, e.e. cummings n OthI n g can s urPas

    s the m y SteR y of s tilLnes s
  38. A Defense of Poetry, Charles Bernstein (fragment) My problem with

    deploying a term liek nonelen in these cases is acutually similar to your cirtique of the term ideopigical unamlsing as a too-broad unanuajce interprestive proacdeure. You say too musch lie a steamroller when we need dental (I,d say jeweller’s) tools.
  39. Enter Brainfuck (1993) by Urban Müller

  40. >+++++++++[<+++++++++++>-]<[>[-]>[-]<<[>+>+<<-]>>[<<+>>-]>>> [-]<<<+++++++++<[>>>+<<[>+>[-]<<-]>[<+>-]>[<<++++++++++>>>+< -]<<-<-]+++++++++>[<->-]>>+>[<[-]<<+>>>-]>[-]+<<[>+>-<<-]<<< [>>+>+<<<-]>>>[<<<+>>>-]>[<+>-]<<-[>[-]<[-]]>>+<[>[-]<-]<+++ +++++[<++++++<++++++>>-]>>>[>+>+<<-]>>[<<+>>-]<[<<<<<.>>>>>- ]<<<<<<.>>[-]>[-]++++[<++++++++>-]<.>++++[<++++++++>-]<++.>+ ++++[<+++++++++>-]<.><+++++..--------.-------.>>[>>+>+<<<-]> >>[<<<+>>>-]<[<<<<++++++++++++++.>>>>-]<<<<[-]>++++[<+++++++ +>-]<.>+++++++++[<+++++++++>-]<--.---------.>+++++++[<------ ---->-]<.>++++++[<+++++++++++>-]<.+++..+++++++++++++.>++++++

    ++[<---------->-]<--.>+++++++++[<+++++++++>-]<--.-.>++++++++ [<---------->-]<++.>++++++++[<++++++++++>-]<++++.----------- -.---.>+++++++[<---------->-]<+.>++++++++[<+++++++++++>-]<-. >++[<----------->-]<.+++++++++++..>+++++++++[<---------->-]< -----.---.>>>[>+>+<<-]>>[<<+>>-]<[<<<<<.>>>>>-]<<<<<<.>>>+++ +[<++++++>-]<--.>++++[<++++++++>-]<++.>+++++[<+++++++++>-]<. ><+++++..--------.-------.>>[>>+>+<<<-]>>>[<<<+>>>-]<[<<<<++ ++++++++++++.>>>>-]<<<<[-]>++++[<++++++++>-]<.>+++++++++[<++ +++++++>-]<--.---------.>+++++++[<---------->-]<.>++++++[<++ +++++++++>-]<.+++..+++++++++++++.>++++++++++[<---------->-]< -.---.>+++++++[<++++++++++>-]<++++.+++++++++++++.++++++++++. ------.>+++++++[<---------->-]<+.>++++++++[<++++++++++>-]<-. -.---------.>+++++++[<---------->-]<+.>+++++++[<++++++++++>- ]<--.+++++++++++.++++++++.---------.>++++++++[<---------->-] <++.>+++++[<+++++++++++++>-]<.+++++++++++++.----------.>++++ +++[<---------->-]<++.>++++++++[<++++++++++>-]<.>+++[<-----> -]<.>+++[<++++++>-]<..>+++++++++[<--------->-]<--.>+++++++[< ++++++++++>-]<+++.+++++++++++.>++++++++[<----------->-]<++++ .>+++++[<+++++++++++++>-]<.>+++[<++++++>-]<-.---.++++++.---- ---.----------.>++++++++[<----------->-]<+.---.[-]<<<->[-]>[ -]<<[>+>+<<-]>>[<<+>>-]>>>[-]<<<+++++++++<[>>>+<<[>+>[-]<<-] >[<+>-]>[<<++++++++++>>>+<-]<<-<-]+++++++++>[<->-]>>+>[<[-]< <+>>>-]>[-]+<<[>+>-<<-]<<<[>>+>+<<<-]>>>[<<<+>>>-]<>>[<+>-]< <-[>[-]<[-]]>>+<[>[-]<-]<++++++++[<++++++<++++++>>-]>>>[>+>+ <<-]>>[<<+>>-]<[<<<<<.>>>>>-]<<<<<<.>>[-]>[-]++++[<++++++++> -]<.>++++[<++++++++>-]<++.>+++++[<+++++++++>-]<.><+++++..--- -----.-------.>>[>>+>+<<<-]>>>[<<<+>>>-]<[<<<<++++++++++++++ .>>>>-]<<<<[-]>++++[<++++++++>-]<.>+++++++++[<+++++++++>-]<- -.---------.>+++++++[<---------->-]<.>++++++[<+++++++++++>-] <.+++..+++++++++++++.>++++++++[<---------->-]<--.>+++++++++[ <+++++++++>-]<--.-.>++++++++[<---------->-]<++.>++++++++[<++ ++++++++>-]<++++.------------.---.>+++++++[<---------->-]<+. >++++++++[<+++++++++++>-]<-.>++[<----------->-]<.+++++++++++ ..>+++++++++[<---------->-]<-----.---.+++.---.[-]<<<] 99 bottles of beer by Ben Olmstead, http://esoteric.sange.fi/brainfuck/bf-source/prog/BOTTLES.BF
  41. How about some Malbolge (1998) by Ben Olmstead

  42. (=<`$9]7<5YXz7wT.3,+O/o'K%$H"'~D|#z@b=`{^Lx8%$Xmrkpohm-kNi;gsedcba`_^]\ [ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543s+O<oLm HEllO WORld By Andrew Cooke, http://www.acooke.org/malbolge.html

  43. Weaknesses in the design have been found that make it

    possible (though still very difficult) to write useful Malbolge programs. Wikipedia on Malbolge
  44. ACT II, SCENE 3 Common processes: Let's get equal

  45. Gradually, it all got easier We stand on the shoulders

    of giants. Universal for sciences, but... ''Medicine bootcamp''? I don't think so. ''Rails Girls''? Might give you a job. Semester of creative writing classes? Let's welcome the new Paolo Coelho!
  46. Life spans & social issues Literature? Let's say 3000 years,

    modestly. Programming? Let's round it up to 200. Different socio-economical situations, same problem with exclusion.
  47. When we look at this...

  48. 100percentmen.tumblr.com

  49. ...we forget about this:

  50. U. S. Army Photo

  51. There is one important difference: Out of 110 literature Nobel

    Prize winners, 97 are men, but... women don't get harrassed at the prize giving ceremony. Writers are way ahead of us. As recent events sadly show, it will stay this way for longer.
  52. ACT II, SCENE 4 Common processes: Getting interdisciplinary

  53. The barrier has been breached Two paths have finally crossed.

    The connection was made possible by new media art. Surprising and inspirating outcomes.
  54. If program code is like speech inasmuch as it does

    what it says, then it can also be said to be like poetry inasmuch as it involves both written and spoken forms. The analogy to poetry suggests numerous aesthetic and critical possibilities for code, beyond its serving simply as functional instructions. Geoff Cox, Speaking Code: Coding as Aesthetic and Political Expression, p. 32
  55. package DONT::CARE; use strict; use warnings; sub aspire { my

    $class{tab} = POOR; my $requested_type = GET_RICHER; my $aspiration{tab} = ''$requested_type.pm''; my $class{tab} = ''POOR::$requested_type''; require $aspiration; return $class->new(@_); } 1; Graham Harwood, Class Library (2008)
  56. ACT III, SCENE 1 Conclusion

  57. We scratched the surface It's impossible to dive deeper during

    a short presentation. Treat this as an encouragement.
  58. Programmers express themselves through the use of program languages …

    in ways similar to other human communicative expression through language and gesture. They do this through their manipulation of layers of representation, including symbols, then words, language, and notation. Geoff Cox, Speaking Code: Coding as Aesthetic and Political Expression
  59. ACT IV, SCENE 1 A thank you

  60. None
  61. I know who you are ♥

  62. Thank you. Twitter: @a_meba Github: xamebax