HiST How programming language influence interaction and culture Ivar Tormod Berg Ørstavik.
-
Upload
abner-lang -
Category
Documents
-
view
223 -
download
0
Transcript of HiST How programming language influence interaction and culture Ivar Tormod Berg Ørstavik.
HiST
How programming language influence interaction and culture
Ivar Tormod Berg Ørstavik
HiST
Can morphology in programming languages influence interaction among programmers?
HiST
Philosophy of Computer Science
• Floridi on the Philosophy of Information (PI.a.i-ii)
• White 2004: the Philosophy of Programming language
• Shute 2006: abstraction and the human element
What are the reciprocate dialectics between human minds and ICT?
HiST
What’s missing?
• Empirical examples
• That grounds and justifies our theories
• Strategically choose social theories on language and language use
But how to get that?
HiST
Dialogism
• Language is socially constructed
• ”[Language] is populated with the intentions of others”
• Actions and perceptions as compositions of others voices.
HiST
Social semantic taxonomy
a tree
2+2 = 4
e = mc 2
a tree
a tree
a tree
a tree
a tree
a tree
a tree
4 + 4 = 8
2 + 2 = 4
2 + 2 = 4
2 + 2 = 4
2 + 2 = 4
2 + 2 = 4
2 + 2 = 4
HiST
A social semantic focus
• Social structures are seen not only side by side with language, but also as within language itself.
• To understand language we need to understand the interaction that surrounds it.
HiST
Analysis
How do programmers use the words of others?
» ’path-relative types’ in Python (and Java)
» ’URL-types’ in theJ
HiST
minidomPrinter.pyimport xml.dom.minidom
def printDocument(text): dom = xml.dom.minidom.parseString(text) print "<html>" for line in dom.getElementsByTagName("line"): print "<p>%s</p>" % getText(line) print "</html>"
def getText(node): text = node.childNodes[0] if text.nodeType == node.TEXT_NODE: return text.data return ""
document = "<text><line>hello!</line><line>goodbye..</line></text>"printDocument(document)
HiST
Path-relative type morphology
• a compound act: a) write a word
b) obtain the word text
c) update path
• Words interpreted within– a path
– an inter-textual context
• Words depend on each other to function and make sense
class Strange { while (…) ... }
class Strange { while (…) ... }
class Strange { while (…) ... }
class OtherE { while (…) ... }
class Thing { while (…) ... }
class Strange { while (…) ... }
class Some { while (…) ... }
class ClassE { while (…) ... }
class ClassB { ClassD d = ClassC.work(); }
class MyClass { ClassA a = ClassB.work(); }
class ClassC { if (…) ... }
class ClassA { ClassC c = ClassE.do(); }
class ClassD { for (…) ... }
class MyClass { ClassA a = ClassB.work(); }
?
? ?
?
HiST
Social interaction with words
Path-relative type morphology does as much for programming as the concept of a leather ball and an enclosed pitch does for soccer.
Reciprocally programmers can ‘hide’ incomprehensible problematic details from other programmers who can then ‘neglect’ to learn and focus on these details (cf. Shute 2006).
HiST
Social interaction with words
• But there are practical, social and ethical concerns.
• ’Terms’ and intentions are associated with using others words
• Look ahead! Chains of dependencies between words cause social and practical problems.
HiST
class Strange { while (…) ... }
class Strange { while (…) ... }
class Strange { while (…) ... }
class OtherE { while (…) ... }
class Thing { while (…) ... }
class Strange { while (…) ... }
class Some { while (…) ... }
package org.jdom;class Element { while(...) ...} class HelloJDOM {
org.jdom.Element... … { Exception ... }package java.lang;class Exception { while(...) ...
}
class ClassD { for (…) ... }
class ClassE { while (…) ... }
class ClassA { for (…) ... }
class ClassB { while (…) ... }
HiST
Second or third party?
• Issuing standard libraries fix many practical problems.
• But programmers outside this sphere wanting to team up still face problems.
• This makes it easier for programmers to use the standard words, and harder for ’third parties’ to get their voice heard.
HiST
Actions shaping morphology
• MAS – needed collaboration of Java code across different inter-textual run-time
• In principle the same practical, social and technical issues as at design-time
• Manual ’fixes’ not an option run-time
• Could we change how we use morphological forms?
HiST
theJpackage thej; import ftp://213.221.2.15/consult/EAMKA_02_05/client/lib/jdom-1.0.jar/org.jdom.*; import ftp://213.221.2.15/consult/EAMKA_02_05/client/lib/jdom-1.0.jar/org.jdom.input.*;
public class ExampleTwo { public static void main(String[] args) { http://the.hist.no/thej.ExampleOne parserA = new http://the.hist.no/thej.ExampleOne("<b>","</b>"); SAXBuilder parserB = new SAXBuilder(); try { parserB.build(args[0]); } catch (JDOMException e) { System.err.println(parserA.taggThis(e.getMessage())); } catch (Exception e) { System.out.println(e); } } }
HiST
Morphology changing actions
• Changed the front-(compiler) and back-end (JVM)
• Changes interaction in chained dependency contexts
• Everyone are potential second parties– Everyone is untrustworthy and a security risk
HiST
Morphology changing actions
• Resolves a technical problem using OO as an inter-program language run-time
• Also, enables dangerous, but still freer use of ’third party words’– No standard library!– Replaced by a search engine– Openness key, write code in wikis
• A new morphology gave a philosophical hindsight into old morphology
HiST
“Language exerts hidden power, like a moon on the tides.”
Rita Mae Brown