Abstract
This talk takes a look at object-oriented programming language design from a location outside the mainstream, namely the Scandinavian tradition going from the first object-oriented language SIMULA, through Beta which takes unification to an extreme, to gbeta which generalizes Beta in many ways. A range of underlying issues are considered, including the relation to the structure of human thinking and natural language, the dynamic semantics of the language, and the static analysis supported by its type system. It is our position that it is unimportant whether or not classes and entities model phenomena in the real world, but crucial that they allow for the style of thinking that evolved in creatures interacting with the real world. We also claim that the mainstream style of expressing behaviors involving communication among objects, i.e., data flow, gives rise to a convoluted relation between the program source and the actual behavior. We illustrate a significantly different way to express such behaviors, based on the motto that the data flow should follow the direction of reading. Conversely, when the emphasis is on a static description of a non-trivial entity rather than on the dynamics of object communication, we claim that the premier abstraction devices are support for refinement and combination, e.g., by subclassing and by method combination. We illustrate how this idea can be used for structure as well as behavior, and how intensely it pervades the fabric of gbeta programs. One issue which has been controversial for many years is that of block structure, i.e., general nesting of declarations. We motivate why it makes sense to insist that a type depends on its context, and how this dependency gives rise to some effects that may be surprising from a mainstream point of view. The developments in this secret valley of programming language design did actually give rise to a small mountain stream of ideas that flowed out of the valley and into the main stream in various ways over the years. We hope to illustrate that the exploration of such a somewhat esoteric position in the language design space may give rise to some fresh ideas for the rest of the world to think about now and then.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ernst, E. (2010). Secret Valley. In: D’Hondt, T. (eds) ECOOP 2010 – Object-Oriented Programming. ECOOP 2010. Lecture Notes in Computer Science, vol 6183. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-14107-2_18
Download citation
DOI: https://doi.org/10.1007/978-3-642-14107-2_18
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-14106-5
Online ISBN: 978-3-642-14107-2
eBook Packages: Computer ScienceComputer Science (R0)