Ousterhout's dichotomy

These applications typically employ complex algorithms and data structures and require high performance.

Ousterhout claims that scripts tend to be short and are often written by less sophisticated programmers.

Prototypical examples of scripting languages include Python, AppleScript, C shell, DOS batch files, and Tcl.

This is the proposition that you should use *two* languages for a large software system: one, such as C or C++, for manipulating the complex internal data structures where performance is key, and another, such as Tcl, for writing small-ish scripts that tie together the C pieces and are used for extensions.Critics believe that the dichotomy is highly arbitrary, and refer to it as Ousterhout's fallacy or Ousterhout's false dichotomy.

[4] While static-versus-dynamic typing, data structure complexity, and dependent versus stand-alone might be said to be unrelated features, the usual critique of Ousterhout's dichotomy is of its distinction of compiling versus interpreting.