Talin wrote:
One of my long-standing interests is in mini-languages, particularly declarative languages. I'm always looking out for examples where a declarative language is used to represent some idea or concept that is not easily written in an imperative language. Examples are the behaviors of particle systems, kinematic constraints, formalized grammars, logical inferencing systems, query languages, and so on. In other words, you are using a language to describe a complex set of relationships, but you aren't giving specific commands to execute in a specific order.
This sounds like a wide range of things. Maybe even a bit too broad. Can you narrow it down a bit. The first thing that comes to mind for me is Visual's modeling system with both an internal C loop for handling the defined objects, motions, colors, lighting and updating the screen, but it also allows modifying and querying the models while everything is moving around in a python loop. In this case extending the background processing vs foreground processing would be good. When dealing with real time, or 1/nth time for slower computers, the preferred ordering would be given the faster changing objects. Those values should be updated or checked more frequently. So it's not a procedural problem where doing things in a predefined order is the best way.
What I'd be interested in doing, in this python-ideas list, is brainstorming some ideas for how we can improve Python's ability to 'host' other kinds of mini-languages within the Python syntax. We can start perhaps by examining some of the use cases I listed in the first paragraph - particle systems, etc - and see how one would want to represent those kinds of semantic structures within Python.
Another (possibly related?) idea I think might be useful is to incorporate the concept of responsibility, authorization, delegation into the language more directly. In a (well run) business responsibility and authority are delegated in a way that gives the employee the ability to succeed, while also protecting the interests of the business owners(s) by not giving too much power to any one employee. These are good business practices and I think they could be useful concepts if implemented in a computer language in a more formal way. Cheers, Ron Adam