Programmeren, talen en het begrijpen van de wereld
door Herman Peeren
presentatie op 13 november 2015
Permanent Beta Dag #7 Rotterdam
http://www.meetup.com/PermanentBeta/events/222345799/
http://pb7.apitecture.nl
Bestaat Nederland eigenlijk wel? En God? Waarom betalen we geld aan Griekenland? Wat is Kunst? Dit zijn een aantal vragen die in deze presentatie ter sprake komen.
Het programmeren van een computer is veel meer dan alleen het inkloppen van een reeks instructies. Als we software bouwen, dan bouwen we een model van een stukje wereld (of van een nieuwe wereld). Om dat te doen moeten we iets begrijpen van die wereld. We gebruiken code als bouwstenen van ons model; de code is een taal waarmee we de wereld beschrijven. Tegelijkertijd is code ook gereedschap waarmee we de wereld analyseren, in hapklare brokken snijden.
De taal waarmee we programmeren is niet alleen de gebruikte programmeertaal, maar ook de ideeën die daarbij gebruikt worden. Een andere taal, in die brede zin van het woord, is als een ander sjabloon dat je over de werkelijkheid heen legt: je ziet de wereld op een andere manier, je interpreteert dingen anders. Dat kan heel spannend zijn, vooral als je inzichten daardoor veranderen. Durf jij dat aan?
Het is lastig om het verschil tussen kleuren uit te leggen aan iemand die z'n hele leven blind is geweest. In het praten over kleuren gebruik je al gauw andere woorden die iets met zien te maken hebben. Begrippen overbrengen die we niet zelf uit eigen ervaring kennen is moeilijk en al helemaal als de woorden om die begrippen te beschrijven ontbreken in een taal. Het leuke van programmeertalen is, dat je er niet alleen iets in kunt beschrijven, maar het ook bouwstenen zijn. Een begrip wordt zo niet alleen abstract aangeduid, maar je kunt er ook een model mee bouwen om het te demonstreren.
Deze presentatie gaat over taal als middel om onze gedachten te vormen en uiten en in hoeverre dat middel mede van invloed is op het resultaat. Computertalen en ideeën over modelleren in software kunnen bijdragen aan het begrijpen van de wereld om ons heen. Met behulp van dat theoretische gereedschap gaan we een aantal vragen onder de loep nemen, op zoek naar nieuwe inzichten.
22. Event Sourcing
• you don’t store the state,
• but the proces that caused the change
23. Accounting: same principle
• you don’t store the changed balance,
• but the journal entries that caused the change
24. Event Sourcing
• you don’t add an item to a collection of jobs,
• but you take or quit a job
• event: JobTaken / JobQuitted
25. Event Sourcing
• you don’t add an item to a collection of jobs,
• but you hire or fire someone
• event: EmployeeHired EmployeeFired
Emphasis on the action, using words used in the domain, not on the data
28. Event Sourcing
• „Die Welt ist die Gesamtheit der Tatsachen, nicht der Dinge.“
Tractatus Logico-philosophicus (1.1), Ludwig Wittgenstein (1889–1951)
40. Babel-17
SF-novel, with language as weapon to control thoughts
(inspired Yukihiro Matsumoto when constructing the Ruby-language)
Yukihiro Matsumoto
41. Not all languages are equal,
but some are more inequal than others.
• Kenneth E. Iverson (APL):
Turing Award Lecture 1979,
“Notation as a tool of thought”
• Paul Graham (worked on Lisp):
Blub paradox
(you can know the superiority of a
language, but not its inferiority)
42. Trygve Reenskaug James Coplien (Cope)
DCIData - Context - Interaction
Trygve-language is now being constructed
to better express the ideas of the DCI-paradigm.
43. A model is not a tree...
“A city is not a tree”: Christopher Alexander
Some thoughts might possibly not be expressed
in some languages.
50. ‘Ik vernietigde de grens van de horizon
en stapte uit de wereld der dingen.
En de dingen verdwenen als mist.’
Kazimir Malevich
51. Thank you!
herman@yepr.nl
hermanpeeren.nl
@HermanPeeren
November 13, 2015
Credits:
The two images about language as prison and language as a rodeo horse are
made by Nelleke Verhoeff, www.redcheeksfactory.com
Sorry! For this presentation I’ve used all kinds of images I collected from the web during the past months.
I didn’t note down the various sources, so I cannot give credit to the owners of the images.
I can only thank you all very much for making them available on the internet
and I hope I did not violate your rights too much borrowing them. If you own
the rights to an image used here, please let me know and I will mention it (or
take the image out of these slides if you want to).