Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

Before we start

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Important note: I'm European

Slide 6

Slide 6 text

ACT I, Scene 1: Setting the scene

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

The Middle Ages (500 - 1500) Antiquity? Bad, very bad. Still epic, still brutal... ...with more requirements than a visit to any German institution, though

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

Renaissance & Enlightenment (1500 - 1800) Brutality is passe. It's all about Reason.

Slide 11

Slide 11 text

Romanticism (1800 - 1870) Beards went out of fashion. :-( Getting complicated: Romanticism, Transcendentalism, Victorianism, German Romanticism, Polish (national) Romanticism, …

Slide 12

Slide 12 text

Realism & Existentialism (1850 - 1910) Romanticism does a reality check. It's ok to ask questions. Social movements FTW! The banal, the normal, the mundane.

Slide 13

Slide 13 text

[http://style.mtv.com//wp­content/uploads/style/2014/03/seinfeld­normcore.jpg] ...kinda like normcore

Slide 14

Slide 14 text

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.

Slide 15

Slide 15 text

...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

Slide 16

Slide 16 text

Postmodernism (1960 - today) Metafiction, fragmentation. If you cannot understand it, the author's doing it right.

Slide 17

Slide 17 text

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.

Slide 18

Slide 18 text

ACT I, Scene 2: Setting the scene, ctd.

Slide 19

Slide 19 text

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.

Slide 20

Slide 20 text

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. ;-)

Slide 21

Slide 21 text

ACT II, SCENE 1 Common processes: The Holy Grail

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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.

Slide 24

Slide 24 text

...there was also AppleScript (1993), but that didn't work out...

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

So what about literature?

Slide 29

Slide 29 text

[T]he use of reason is more distinctive of a human being than the use of his limbs. Aristotle

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

...has been found again Kant with other Renaissance & Enlightenment writers and philosophers brought Antiquity back. Stoicism and reason became cool again.

Slide 32

Slide 32 text

All our knowledge begins with the senses, proceeds then to understanding, and ends with reason. There is nothing higher than reason. Immanuel Kant

Slide 33

Slide 33 text

Reason is to the philosopher what grace is to the Christian. Grace causes the Christian to act, reason moves the philosopher. Denis Diderot

Slide 34

Slide 34 text

The first hipsters Wikimedia.org

Slide 35

Slide 35 text

ACT II, SCENE 2 Common processes: What has postmodernism done to us?

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

n, e.e. cummings n OthI n g can s urPas s the m y SteR y of s tilLnes s

Slide 38

Slide 38 text

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.

Slide 39

Slide 39 text

Enter Brainfuck (1993) by Urban Müller

Slide 40

Slide 40 text

>+++++++++[<+++++++++++>-]<[>[-]>[-]<<[>+>+<<-]>>[<<+>>-]>>> [-]<<<+++++++++<[>>>+<<[>+>[-]<<-]>[<+>-]>[<<++++++++++>>>+< -]<<-<-]+++++++++>[<->-]>>+>[<[-]<<+>>>-]>[-]+<<[>+>-<<-]<<< [>>+>+<<<-]>>>[<<<+>>>-]>[<+>-]<<-[>[-]<[-]]>>+<[>[-]<-]<+++ +++++[<++++++<++++++>>-]>>>[>+>+<<-]>>[<<+>>-]<[<<<<<.>>>>>- ]<<<<<<.>>[-]>[-]++++[<++++++++>-]<.>++++[<++++++++>-]<++.>+ ++++[<+++++++++>-]<.><+++++..--------.-------.>>[>>+>+<<<-]> >>[<<<+>>>-]<[<<<<++++++++++++++.>>>>-]<<<<[-]>++++[<+++++++ +>-]<.>+++++++++[<+++++++++>-]<--.---------.>+++++++[<------ ---->-]<.>++++++[<+++++++++++>-]<.+++..+++++++++++++.>++++++ ++[<---------->-]<--.>+++++++++[<+++++++++>-]<--.-.>++++++++ [<---------->-]<++.>++++++++[<++++++++++>-]<++++.----------- -.---.>+++++++[<---------->-]<+.>++++++++[<+++++++++++>-]<-. >++[<----------->-]<.+++++++++++..>+++++++++[<---------->-]< -----.---.>>>[>+>+<<-]>>[<<+>>-]<[<<<<<.>>>>>-]<<<<<<.>>>+++ +[<++++++>-]<--.>++++[<++++++++>-]<++.>+++++[<+++++++++>-]<. ><+++++..--------.-------.>>[>>+>+<<<-]>>>[<<<+>>>-]<[<<<<++ ++++++++++++.>>>>-]<<<<[-]>++++[<++++++++>-]<.>+++++++++[<++ +++++++>-]<--.---------.>+++++++[<---------->-]<.>++++++[<++ +++++++++>-]<.+++..+++++++++++++.>++++++++++[<---------->-]< -.---.>+++++++[<++++++++++>-]<++++.+++++++++++++.++++++++++. ------.>+++++++[<---------->-]<+.>++++++++[<++++++++++>-]<-. -.---------.>+++++++[<---------->-]<+.>+++++++[<++++++++++>- ]<--.+++++++++++.++++++++.---------.>++++++++[<---------->-] <++.>+++++[<+++++++++++++>-]<.+++++++++++++.----------.>++++ +++[<---------->-]<++.>++++++++[<++++++++++>-]<.>+++[<-----> -]<.>+++[<++++++>-]<..>+++++++++[<--------->-]<--.>+++++++[< ++++++++++>-]<+++.+++++++++++.>++++++++[<----------->-]<++++ .>+++++[<+++++++++++++>-]<.>+++[<++++++>-]<-.---.++++++.---- ---.----------.>++++++++[<----------->-]<+.---.[-]<<<->[-]>[ -]<<[>+>+<<-]>>[<<+>>-]>>>[-]<<<+++++++++<[>>>+<<[>+>[-]<<-] >[<+>-]>[<<++++++++++>>>+<-]<<-<-]+++++++++>[<->-]>>+>[<[-]< <+>>>-]>[-]+<<[>+>-<<-]<<<[>>+>+<<<-]>>>[<<<+>>>-]<>>[<+>-]< <-[>[-]<[-]]>>+<[>[-]<-]<++++++++[<++++++<++++++>>-]>>>[>+>+ <<-]>>[<<+>>-]<[<<<<<.>>>>>-]<<<<<<.>>[-]>[-]++++[<++++++++> -]<.>++++[<++++++++>-]<++.>+++++[<+++++++++>-]<.><+++++..--- -----.-------.>>[>>+>+<<<-]>>>[<<<+>>>-]<[<<<<++++++++++++++ .>>>>-]<<<<[-]>++++[<++++++++>-]<.>+++++++++[<+++++++++>-]<- -.---------.>+++++++[<---------->-]<.>++++++[<+++++++++++>-] <.+++..+++++++++++++.>++++++++[<---------->-]<--.>+++++++++[ <+++++++++>-]<--.-.>++++++++[<---------->-]<++.>++++++++[<++ ++++++++>-]<++++.------------.---.>+++++++[<---------->-]<+. >++++++++[<+++++++++++>-]<-.>++[<----------->-]<.+++++++++++ ..>+++++++++[<---------->-]<-----.---.+++.---.[-]<<<] 99 bottles of beer by Ben Olmstead, http://esoteric.sange.fi/brainfuck/bf-source/prog/BOTTLES.BF

Slide 41

Slide 41 text

How about some Malbolge (1998) by Ben Olmstead

Slide 42

Slide 42 text

(=<`$9]7<5YXz7wT.3,+O/o'K%$H"'~D|#z@b=`{^Lx8%$Xmrkpohm-kNi;gsedcba`_^]\ [ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543s+O

Slide 43

Slide 43 text

Weaknesses in the design have been found that make it possible (though still very difficult) to write useful Malbolge programs. Wikipedia on Malbolge

Slide 44

Slide 44 text

ACT II, SCENE 3 Common processes: Let's get equal

Slide 45

Slide 45 text

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!

Slide 46

Slide 46 text

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.

Slide 47

Slide 47 text

When we look at this...

Slide 48

Slide 48 text

100percentmen.tumblr.com

Slide 49

Slide 49 text

...we forget about this:

Slide 50

Slide 50 text

U. S. Army Photo

Slide 51

Slide 51 text

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.

Slide 52

Slide 52 text

ACT II, SCENE 4 Common processes: Getting interdisciplinary

Slide 53

Slide 53 text

The barrier has been breached Two paths have finally crossed. The connection was made possible by new media art. Surprising and inspirating outcomes.

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

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)

Slide 56

Slide 56 text

ACT III, SCENE 1 Conclusion

Slide 57

Slide 57 text

We scratched the surface It's impossible to dive deeper during a short presentation. Treat this as an encouragement.

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

ACT IV, SCENE 1 A thank you

Slide 60

Slide 60 text

No content

Slide 61

Slide 61 text

I know who you are ♥

Slide 62

Slide 62 text

Thank you. Twitter: @a_meba Github: xamebax