Every project, including software development projects, needs an identity. It needs a definition of its boundaries. It has to be clear about what is inside it and what is outside of it.
Without such a definition, the project would try to be too many things for many people, and as a result, its products would not be really useful for anyone.
A project’s identity makes it easier and faster to make design and trade-off decisions.
Given the above trite introduction, and given that there is a list of goals for the PyGuile project, a list of non-goals is needed as well and here it is.
- Theoretical academic purity – attempt to convert every data type from Guile to Python and vice versa, and to support the whole range of values assumed by each data type.
- Ability to mix code snippets from both Scheme and Python in the same source code file.
- Invocation of machine language libraries (static or DLLs) – for this purpose, there are already existing tools (SWIG and PerlXS).
- Framework for making it easy to add support for interoperation with yet another scripting language.
There are also some goals, which are low priority and I do not plan to shed tears if they prove to be impossible to achieve without significant effort:
- Thread-safety
- Tail recursion support