Nothing in the design of the system architecture is specific to the languages we have used in our implementation. C++ was used to facilitate better data abstraction in the classes/structures of the architecture, but C could have also been used. Scheme was used firstly because it is a small and clean scripting language and secondly because the lisp s-expression (bracketed string) data structure allows a generic way to store complex data structures.
Other languages would be also be suitable, and we have made some progress towards providing alternative scripting languages in the style of perl/unix shell and Java etc. Ideally the compiled part and interpreted part would be in the same language. Until recently no available language has this degree of flexibility, but perhaps a future generation of Festival could accomplish this by using Java.