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
Tweet

More Decks by Marta Paciorkowska

Other Decks in Programming

Transcript

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

    Still epic, still brutal... ...with more requirements than a visit to any German institution, though
  2. 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
  3. Romanticism (1800 - 1870) Beards went out of fashion. :-(

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

    check. It's ok to ask questions. Social movements FTW! The banal, the normal, the mundane.
  5. 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.
  6. ...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
  7. 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.
  8. 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.
  9. 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. ;-)
  10. 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
  11. 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.
  12. 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
  13. 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
  14. [T]he use of reason is more distinctive of a human

    being than the use of his limbs. Aristotle
  15. 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
  16. ...has been found again Kant with other Renaissance & Enlightenment

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

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

    Christian. Grace causes the Christian to act, reason moves the philosopher. Denis Diderot
  19. n, e.e. cummings n OthI n g can s urPas

    s the m y SteR y of s tilLnes s
  20. 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.
  21. >+++++++++[<+++++++++++>-]<[>[-]>[-]<<[>+>+<<-]>>[<<+>>-]>>> [-]<<<+++++++++<[>>>+<<[>+>[-]<<-]>[<+>-]>[<<++++++++++>>>+< -]<<-<-]+++++++++>[<->-]>>+>[<[-]<<+>>>-]>[-]+<<[>+>-<<-]<<< [>>+>+<<<-]>>>[<<<+>>>-]>[<+>-]<<-[>[-]<[-]]>>+<[>[-]<-]<+++ +++++[<++++++<++++++>>-]>>>[>+>+<<-]>>[<<+>>-]<[<<<<<.>>>>>- ]<<<<<<.>>[-]>[-]++++[<++++++++>-]<.>++++[<++++++++>-]<++.>+ ++++[<+++++++++>-]<.><+++++..--------.-------.>>[>>+>+<<<-]> >>[<<<+>>>-]<[<<<<++++++++++++++.>>>>-]<<<<[-]>++++[<+++++++ +>-]<.>+++++++++[<+++++++++>-]<--.---------.>+++++++[<------ ---->-]<.>++++++[<+++++++++++>-]<.+++..+++++++++++++.>++++++

    ++[<---------->-]<--.>+++++++++[<+++++++++>-]<--.-.>++++++++ [<---------->-]<++.>++++++++[<++++++++++>-]<++++.----------- -.---.>+++++++[<---------->-]<+.>++++++++[<+++++++++++>-]<-. >++[<----------->-]<.+++++++++++..>+++++++++[<---------->-]< -----.---.>>>[>+>+<<-]>>[<<+>>-]<[<<<<<.>>>>>-]<<<<<<.>>>+++ +[<++++++>-]<--.>++++[<++++++++>-]<++.>+++++[<+++++++++>-]<. ><+++++..--------.-------.>>[>>+>+<<<-]>>>[<<<+>>>-]<[<<<<++ ++++++++++++.>>>>-]<<<<[-]>++++[<++++++++>-]<.>+++++++++[<++ +++++++>-]<--.---------.>+++++++[<---------->-]<.>++++++[<++ +++++++++>-]<.+++..+++++++++++++.>++++++++++[<---------->-]< -.---.>+++++++[<++++++++++>-]<++++.+++++++++++++.++++++++++. ------.>+++++++[<---------->-]<+.>++++++++[<++++++++++>-]<-. -.---------.>+++++++[<---------->-]<+.>+++++++[<++++++++++>- ]<--.+++++++++++.++++++++.---------.>++++++++[<---------->-] <++.>+++++[<+++++++++++++>-]<.+++++++++++++.----------.>++++ +++[<---------->-]<++.>++++++++[<++++++++++>-]<.>+++[<-----> -]<.>+++[<++++++>-]<..>+++++++++[<--------->-]<--.>+++++++[< ++++++++++>-]<+++.+++++++++++.>++++++++[<----------->-]<++++ .>+++++[<+++++++++++++>-]<.>+++[<++++++>-]<-.---.++++++.---- ---.----------.>++++++++[<----------->-]<+.---.[-]<<<->[-]>[ -]<<[>+>+<<-]>>[<<+>>-]>>>[-]<<<+++++++++<[>>>+<<[>+>[-]<<-] >[<+>-]>[<<++++++++++>>>+<-]<<-<-]+++++++++>[<->-]>>+>[<[-]< <+>>>-]>[-]+<<[>+>-<<-]<<<[>>+>+<<<-]>>>[<<<+>>>-]<>>[<+>-]< <-[>[-]<[-]]>>+<[>[-]<-]<++++++++[<++++++<++++++>>-]>>>[>+>+ <<-]>>[<<+>>-]<[<<<<<.>>>>>-]<<<<<<.>>[-]>[-]++++[<++++++++> -]<.>++++[<++++++++>-]<++.>+++++[<+++++++++>-]<.><+++++..--- -----.-------.>>[>>+>+<<<-]>>>[<<<+>>>-]<[<<<<++++++++++++++ .>>>>-]<<<<[-]>++++[<++++++++>-]<.>+++++++++[<+++++++++>-]<- -.---------.>+++++++[<---------->-]<.>++++++[<+++++++++++>-] <.+++..+++++++++++++.>++++++++[<---------->-]<--.>+++++++++[ <+++++++++>-]<--.-.>++++++++[<---------->-]<++.>++++++++[<++ ++++++++>-]<++++.------------.---.>+++++++[<---------->-]<+. >++++++++[<+++++++++++>-]<-.>++[<----------->-]<.+++++++++++ ..>+++++++++[<---------->-]<-----.---.+++.---.[-]<<<] 99 bottles of beer by Ben Olmstead, http://esoteric.sange.fi/brainfuck/bf-source/prog/BOTTLES.BF
  22. Weaknesses in the design have been found that make it

    possible (though still very difficult) to write useful Malbolge programs. Wikipedia on Malbolge
  23. 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!
  24. 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.
  25. 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.
  26. The barrier has been breached Two paths have finally crossed.

    The connection was made possible by new media art. Surprising and inspirating outcomes.
  27. 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
  28. 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)
  29. We scratched the surface It's impossible to dive deeper during

    a short presentation. Treat this as an encouragement.
  30. 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