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

"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-8
SLIDE 8
slide-9
SLIDE 9
slide-10
SLIDE 10

“Good software = beautiful software” Marcel Molina Jnr

slide-11
SLIDE 11
slide-12
SLIDE 12

Thomas Aquinas: definition of beauty

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

ruby

slide-13
SLIDE 13

λ

slide-14
SLIDE 14

λ

slide-15
SLIDE 15
slide-16
SLIDE 16
slide-17
SLIDE 17
slide-18
SLIDE 18

“This is some serious mojo” Harm Aarts

slide-19
SLIDE 19
slide-20
SLIDE 20

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

slide-21
SLIDE 21

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

slide-22
SLIDE 22

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

  • r "a".slice /of_moon/ }
slide-23
SLIDE 23
slide-24
SLIDE 24
slide-25
SLIDE 25

perspective

slide-26
SLIDE 26

Ruby Sadists

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

audiences

slide-32
SLIDE 32

audiences

programmers pair-programmers

users tests

maintainers

stake-holders

domain experts

introspection tools project leaders

  • utsourced

programmers designers

slide-33
SLIDE 33
slide-34
SLIDE 34

"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-35
SLIDE 35

“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-36
SLIDE 36

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

slide-37
SLIDE 37

Number of Messages Number of Users

slide-38
SLIDE 38

Everything

slide-39
SLIDE 39

Boring Interesting

slide-40
SLIDE 40

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

slide-41
SLIDE 41

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-42
SLIDE 42

Complexity of SQL Complexity of Interest

slide-43
SLIDE 43
slide-44
SLIDE 44

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-45
SLIDE 45 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-46
SLIDE 46

Domain Specific Languages

slide-47
SLIDE 47

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

slide-48
SLIDE 48

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-49
SLIDE 49

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-50
SLIDE 50

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-51
SLIDE 51

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