But we can implement our own scoping mechanisms based on the domain we are developing a program in.
For example, Eve mentioned that they were looking at a sort of "Excel" spreadsheet type visual language.
The scoping mechanism of spreadsheets are a sheet with row/column. So, I would create objects that are able to quickly pull from a row/column and push into a row/column. For example, somewhere in their hierarchy they had an algorithm that required access to a cursor.
Since it is a spreadsheet we can have our global active spreadsheet which, somewhere, contains the cursor. We know it is there because we put it there.
Somewhere deep in the bowels of the data hierarchy we have this line of code to get a cursor:
var cursorCurrent = global.curSpread[34,65];
because our scoping mechanism is based on an excel spreadsheet and not the one "forced" on us by the programming language: usually a stack.There is no need to push that current cursor down the function calling train and, in the end, it is probably faster because we are doing a simple cell lookup.