Comparison

Strings is an evolutionary approach to existing software design methodologies. The table below shows some of the key differences between the various methodologies in use today and how Strings extends them.

Methodology Description Applications
Vertical Application Programming All functionality contained within a single monolithic application. All state is global to the application. Not scalable, not reusable. Can be globally optimized for simple applications.
Modular Programming Separation of concerns into functions. Functions expose both interface and implementation. State managed outside of functions. Not scalable. Minimal reuse. Can be globally optimized for simple applications.
Object Oriented Programming Implementations hidden behind well known interfaces. State managed by individual objects. Tightly coupled at the interface level. Tight coupling of objects limits reuse. High overhead and limited scalability. Difficult to make global optimizations.
Strings Interfaces, implementations and state are hidden providing complete separation of internal implementation and external relationships. Loose coupling enables high degree of reuse. Highly efficient. Highly scalable. Automatic global optimizations.