Knowing when you need a new control structure
You need a new control structure when it addresses one or more major programming pain points. Often, pain points arise when people start writing software in support of a new class of computer hardware, or for a new application domain. Awareness or knowledge of an application domain's pain points may or may not exist at language design time, but more often, the awareness of pain points is generated from early substantial experiences attempting to write software for that domain.
Pain points are often due to complexity, frequent and pernicious bugs, code duplication, or several other famous bad smells or antipatterns. Some code smells are described in Refactoring: Improving the Design of Existing Code, by Martin Fowler. Antipatterns are described at antipatterns.com and in several books referenced on that site.
Individual programmers or programming projects may be able to reduce their code smells or avoid antipatterns by performing...