language aesthetics Sam Aaron "The aesthetic is at once, as I - - PowerPoint PPT Presentation

language aesthetics
SMART_READER_LITE
LIVE PREVIEW

language aesthetics Sam Aaron "The aesthetic is at once, as I - - PowerPoint PPT Presentation

language aesthetics Sam Aaron "The aesthetic is at once, as I try to show, the very secret prototype of human subjectivity in early capitalist society, and a vision of human energies as radical ends in themselves which is the implacable


slide-1
SLIDE 1

language aesthetics

Sam Aaron

slide-2
SLIDE 2
slide-3
SLIDE 3
slide-4
SLIDE 4
slide-5
SLIDE 5
slide-6
SLIDE 6
slide-7
SLIDE 7
slide-8
SLIDE 8

"The aesthetic is at once, as I try to show, the very secret prototype of human subjectivity in early capitalist society, and a vision of human energies as radical ends in themselves which is the implacable enemy of all dominative or instrumentalist thought". Terry Eagleton

slide-9
SLIDE 9
slide-10
SLIDE 10
slide-11
SLIDE 11

“Good software = beautiful software” Marcel Molina Jnr

slide-12
SLIDE 12
slide-13
SLIDE 13

Thomas Aquinas: definition of beauty

proportion integrity clarity (succinctness) (readability) (expressiveness)

slide-14
SLIDE 14
slide-15
SLIDE 15
slide-16
SLIDE 16
slide-17
SLIDE 17
slide-18
SLIDE 18
slide-19
SLIDE 19

Thomas Aquinas: definition of beauty

proportion integrity clarity (succinctness) (readability) (expressiveness)

ruby

slide-20
SLIDE 20

Domain Specific Languages

slide-21
SLIDE 21

class CatalogueSubgroup < ActiveRecord::Base has_many :catalogue_groupings has_many :items, :through => :catalogue_groupings belongs_to :catalogue_group end

slide-22
SLIDE 22

class GroupingMerger < Merger for_model Grouping listen_to 'ItemPDBSubgroup' primary_key :item_number, :group_code, :subgroup_code map 'ItemNo' => :item_number map 'PDBGroupCode' => :group_code map 'PDBSubgroupCode' => :subgroup_code map 'Position' => :position, :type => :integer map 'Description' => :description end

slide-23
SLIDE 23

it "should put expression tags around a word containing multiple .s " do wish = "attribute = 10.next.next" post_parse = "(attribute = 12)" @interest.parse_interests(wish, "").should == post_parse end

slide-24
SLIDE 24

class LegacyAssociations < AssociationLinker link "user belongs to a contact" do from User => :contact_number to Contact => :number end link "favourite belongs to an item" do from Favourite => :item_number to Item => :number end link "item_metadata belongs to an item" do from ItemMetadata => :item_number to Item => :number end end

slide-25
SLIDE 25

λ

slide-26
SLIDE 26

λ

slide-27
SLIDE 27
slide-28
SLIDE 28
slide-29
SLIDE 29
slide-30
SLIDE 30
slide-31
SLIDE 31

“This is some serious mojo” Harm Aarts

slide-32
SLIDE 32
slide-33
SLIDE 33

haiku.rb

slide-34
SLIDE 34

$ruby.is_a?(Object){|oriented| language}

slide-35
SLIDE 35

def you are false end enjoy life while you /can/

slide-36
SLIDE 36

"eyes".scan /the_darkness/ catch( :in_the_wind ) { ?a.round; "breath" \

  • r "a".slice /of_moon/ }
slide-37
SLIDE 37
slide-38
SLIDE 38
slide-39
SLIDE 39

perspective

slide-40
SLIDE 40

Ruby Sadists

slide-41
SLIDE 41

Vlad the Deployer

slide-42
SLIDE 42

flog

slide-43
SLIDE 43
slide-44
SLIDE 44
slide-45
SLIDE 45
slide-46
SLIDE 46

audiences

slide-47
SLIDE 47

audiences

programmers pair-programmers

users tests

maintainers

stake-holders

domain experts

introspection tools project leaders

  • utsourced

programmers designers

slide-48
SLIDE 48
slide-49
SLIDE 49

"Programmers spend so much of their time in their own heads that trying to look at the world from someone else's viewpoint is a big shift" Kent Beck

slide-50
SLIDE 50

“The main idea is to treat a program as a piece of literature, addressed to human beings rather than to a computer”. Donald Knuth

slide-51
SLIDE 51

“Treating Code as an Essay” Yukihiro Matsumoto, 松本行弘, Matz

slide-52
SLIDE 52
slide-53
SLIDE 53

Everything

slide-54
SLIDE 54

Boring Interesting

slide-55
SLIDE 55

select * from artefacts where (colour = 'red')

slide-56
SLIDE 56

select * from artefacts where (virtual = false and ((colour = 'red') and (category = 'player' and ((virtual = false and (category = 'player' and (name in (select name from artefacts where (((5.0 + radius > sqrt(pow((x_coord - 27.0), 2) + pow((y_coord - 13.0), 2))) and (category = 'aura'))))))) and ((9.5 > sqrt(pow((x_coord - 25.0), 2) + pow((y_coord - 10.0), 2))))))))

slide-57
SLIDE 57

Complexity of SQL Complexity of Interest

slide-58
SLIDE 58

Abstraction Scoping Interest Conditions Relative Interest Conditions Expressions Auto- quoting Implicit and and or Operators SQL Conditional Operators Use of Abstraction for Scoping Grouping Implicit Grouping Explicit Grouping Relative Artefacts

Expressiveness Succinctness Readability Wish Ruby SQL

Explicit not and in Operators

slide-59
SLIDE 59 Scoping Interest Conditions Relative Interest Conditions Grouping Conditional Operators YAML with embedded SQL Expressions Relative Artefacts Ruby Abstraction Use of Abstraction for Scoping Implicit Grouping Explicit Grouping Auto-quoting Wish Explicit not and in Operators
slide-60
SLIDE 60
slide-61
SLIDE 61
slide-62
SLIDE 62
slide-63
SLIDE 63

"Not just 'what will the computer do with this code?' but 'How can I communicate what I am thinking to people?'" Kent Beck