Yes I understand your metaphor and I like it. So we will have try and see how it flies.
Aha. Yes, indeed :). I completely agree that we should aim to allow people to use higher level editing tools. I just do not want to lose the ability to keep the mapping to the Pharo level where the real logic is.
A somewhat related parallel that spawns to mind is SmaCC vs PetitParser:
- SmaCC is a DSL out of which the AST is being generated. One
consequence is that the AST nodes are not very smart. For example, there are no specific traversals in the nodes. However, these traversals are achieved through the generic query language which is indeed a nice thing to have. It is possible to add these queries as extensions to the nodes (I do that for some projects), but I did not see it happening too often. Probably the main reason for it being the fact that when you change the name of the AST node class, the extension gets lost.
- PetitParser allows us to work using the same level of abstraction
which is very interesting. What you notice in this case is that the AST trees tend to be smarter and grow their API over time. This is much easier to manage given the integrated refactoring. However, at the same time until now, PetitParser did not produce a generic query language.
I think there are things to learn from both of these worlds. I do not know if this parallel makes sense to you, but to me, the way I see Platypus is more like SmaCC, while the way we work with FAMIX/Fame is more like PetitParser with everything being integrated. Likely, we are missing opportunities due to that focus, but we gain the liveness and this ability of growing the API over time. I think the work on Chef was a very nice thing that showed that we can actually get the best of both worlds.
Now, it would be definitely be very cool to have a way to integrate Pharo logic inside another DSL because this would open the door for a completely different community that we can both learn from and probably offer tools to. Especially, given that now we could also offer a debugger for those kinds of languages. And hopefully soon, we will also offer editing options.
I think this is exciting and definitely worth the investment.