Stanza is designed around the ideal that good architecture revolves around separating concerns. Different aspects of a program should be attacked in isolation and then composed together into a complete program. The mark of a good language is the power it offers users to divide large problems into smaller ones.
Stanza’s class-less object system allows users to attack the design of the type hierarchy of their program separately from the design of what methods each type should support.
Stanza’s coroutine system allows users to attack the control flow of an algorithm separately from its data dependencies.
Stanza’s syntax extension system allows users to attack the design of the behaviour and features of their framework separately from the design of its syntax.
Stanza’s optional type system allows users to attack the design of the runtime behaviour and semantics of their program before attacking the static relationships between the types in their program.