notes
notes copied to clipboard
Programming Language Paradigms and Psychology
I see the value of (object) capabilities and have an intuition of these systems in synchronous settings.
The fact that caps behave like keys, which are ubiquitous in the real world, makes this easy.
But I'm not yet convinced of asynchronous agent systems, at least on the object granularity level.
I suppose there are limits to human reasoning in digital distributed systems, just like it seems impossible to predict the collective behavior of many people.
The language (design) preference probably has to do with what style of reasoning one prefers.
Javascript irritates me with its event loop
Excellent talk here: https://www.youtube.com/watch?v=8aGhZQkoFbQ Demo here: http://latentflip.com/loupe/
because the message queue is inaccessible. There are no priorities. No notion of resources. I don't know why but it doesn't seem intuitive. JS doesn't keep track of this, which makes resource exhaustion a problem that is impossible to solve within the language, requiring one to write an interpreter that does.
What is also inaccessible is the decision procedure itself. Because of this, the system cannot change it's behavior from within, there is no "inversion of control" from abstract high code to the VM itself. Upgrades are impossible.
It's fascinating to see the various tradeoffs of fixed vs dynamic features in systems. With Urbit, the lowest level is so abstract and general that it would never have to be changed. Compare with the Ethereum VM which is unchangeable other than through (hard) forks.
Compare with national constitutions, of which some may explicitly only be amended: https://en.wikipedia.org/wiki/Constitutional_amendment
or those which disallow modification of specific parts or principles:
https://en.wikipedia.org/wiki/Eternity_clause https://en.wikipedia.org/wiki/Entrenched_clause
I'm also reminded of the ending of the bible, which make modifications not only impermissible, but subject to divine punishment:
Revelation 22:18 I warn everyone who hears the words of the prophecy of this scroll: If anyone adds anything to them, God will add to that person the plagues described in this scroll. 19 And if anyone takes words away from this scroll of prophecy, God will take away from that person any share in the tree of life and in the Holy City, which are described in this scroll.
The Pervert's Guide to Computer Programming Languages - SXSW: https://www.youtube.com/watch?v=mZyvIHYn2zk