Programming languages that support the object-oriented perspective on programming may be divided into two groups. One group of languages originating from Simula follows the Algol tradition with respect to block structure, static name binding and compile-time type checking. Another group of languages originating from Smalltalk is more in the style of the Lisp tradition with a flat set of definitions (classes), dynamic name binding and run-time type checking. The purpose of this paper is to analyze the role of block structure in object-oriented languages. It will be demonstrated that block structure is useful from both a conceptual and technical viewpoint.