I tried to identify, what features make it shine, and what features might add even more to the mix.
So great and already present:
- Free extension of any object with properties ("every object is a dictionary").
- (Limited) introspection ("for in").
- Closures as first-class values ("closure is a value", and even "closure is an object").
- Prototypes for ad hoc extensibility, e.g., interception of closure invocation at prototype level.
Potentially great, but missing:
- Ergonomic way to qualify property names (a la XML or RDF).
- More and deeper interception - e.g., access to properties (get/put/foreach).
- More advanced control operators - e.g., co-routines and generators.
- Concurrency at language level.
- More like a constraint on other features - capability-based security.
I see certain synergy among proposed features, so adding them may not automatically turn the language into a kitchen sink.
I would try to approach features 3 to 5 via join calculus. Now, if I only had time.
No comments:
Post a Comment