However, in Smalltalk everything is an object, from functions to loops to entire applications, which makes optimization difficult. In addition, the object model does not include modern enhancements such as multiple inheritance, method combination or mixins, all of which can be leveraged to maximize programmer productivity and code optimization. One other potential drawback of Smalltalk environments is the idiosyncratic nature of their interfaces. The Smalltalk GUI framework, while very powerful, was designed and built long before the current crop of modern GUIs such as Windows. Overall, current implementations of Smalltalk tend to make it fast and easy to build GUI-based applications.
Delivery is a second priority.
A unifying theme in these diverse areas has been the ability to extend the language in domain-specific ways. These features enable programmers to handle large, complex programming tasks with more flexibility, and support a high degree of optimization for speed.