It is useful to make a distinction between five different types of complexity in language: 1.Inventory complexity is about the number of conceptual, phonological, lexical and grammatical building blocks in use by an individual or by a particular language community. It pertains to the number of phonemes, the number of concepts (e.g., color categories, action categories, spatial relations, temporal relations, etc.), the number of lexical items (words and morphological elements), the number of grammatical categories (syntactic classes, cases, classifiers, grammatical functions and types of phrase structures), and the number of grammatical constructions. 2. Form complexity is measured in terms of statistics over the length of words and the length of utterances. Processing complexity is defined as the cognitive effort involved in parsing and producing utterances: How much memory is needed? How many processing steps are required? How much combinatorial search is unavoidable? How much ambiguity is left before semantic interpretation? Processing complexity depends on the architecture of the language processing system, the nature and complexity of the grammar, the complexity of forms, and the ecological complexity of the environment in which language users operate. 4. Learning complexity refers to the amount of uncertainty that learners face when acquiring new words or constructions. Is it always possible to uniquely guess unknown meanings and functions, or does a search space get generated? How big is this search space? 5. Population-level complexity is concerned with the properties of the evolving communal language as a whole: How much variation is there in the population with respect to the usage or knowledge of linguistic forms? Or, conversely, what is the coherence, that is, the degree of sharing? What is the resilience of particular constructions in the process of cultural transmission? How intense is language change? The central thesis of the present chapter is that human languages evolve in such a way as to minimize complexity at all these levels while providing enough expressive power to handle all the meanings relevant to the community. Minimizing complexity is necessary to keep the language viable; otherwise it would become too complex for regular usage and would no longer be learnable (Hawkins 2005).