I’ve significantly revised the ‘dynamic callable’ pitch, here’s a second edition:
I’ve incorporated a bunch of feedback from the first round of discussion:
- I’ve significantly increased the motivation section, talking about the value of solving this problem, and explaining why IMO an “ObjC Importer” approach is a bad idea.
- I’ve expanded the model to support the name lookup requirements of Ruby and other smalltalk’y languages that require a base name + argument labels be present to resolve calls.
- I’ve expanded the alternatives section to explain why statically resolvable callables are orthogonal to this proposal and already pretty well served by Swift today.
- I’ve expanded the alternatives section to talk about F# type providers, explaining why they don’t solve this problem and are an interesting follow-on refinement to consider after taking this proposal (or something like it).
That said, there is at least one specific obviously bad thing about this proposal: the name “DynamicCallableWithKeywordsToo” which I appreciate help on.
If you’re interested in this topic, I’d really appreciate it if you’d read the new draft of the proposal. It is significantly different than the original draft. I welcome suggestions for improvements to the proposal, and insight into anything that is unclear or insufficiently motivated.