I am *not* talking about machine efficiency here. I am talking about how it makes the life of the *developer* easier and simpler.
So am I. I'll say that again: so am I. The implementation details of a specific compiler or language were not mentioned and are not germane to the discussion (though they might be of passing interest). However, there are data processing algorithms common to virtually all language implementations that were. And the one in the spotlight is called a Symbol Table.
Building everything with a dictionary-like class hinders the *developer* because it forces them to funnel everything in their through the concept these "dictionaries". Whether the code is executed through a compiler or a person behind a black curtain using pencils, strips of paper, and shoe-boxes to execute it is moot.
This is where a grounding in basic computer science would benefit you. If you knew how a conventional compiler worked, you would already realize that your example is inverted. Taxonomy is usually implemented as a specific type of dictionary - called a symbol table - because that is what the language usually needs to achieve what the programmer intended. The namespace characteristics of object-oriented programming came first: dictionaries are the logical ways to implement them down inside the compiler/interpreter.
Does your (weird vague) argument still hold if we assume that a person behind a black curtain using pencils, strips of paper, and shoe-boxes executes it?
I doubt it.
Actually, it would. But I don't want to spend time explaining how right now.
Go learn about how compilers work. Then we will have much better common ground to talk from.
You have not given any evidence that a specific implementation of a compiler is important (beyond performance issues). Whether it is Yacc, gerbals, or pencils and shoeboxes that executes the code is not a concern *at all* to the developers and designers, as long as those all follow the spec. I have no idea why you are bring it up. My schema was meant to be conceptual, not an interpreter design.
I've already told you why I mentioned it: the use of dictionaries to manage type and object names is already in use and is further down in most languages than you think it is. It has nothing to do with a specific implementation. Go learn how a compiler works, already! The book I linked to is very well regarded and covers all the basics and lots more besides.
WRT your URL example, I have no idea what you mean by "return-to type". I would probably have to see a little code sample. You know what a fan I am of "type" taxonomies.
Let's not go down that road just yet, either.
Wade.