OOP

ACM Queue: Schizoid Classes

Schizoid Classes, Rodney Bates

Smalltalk-80 was an important and enlightening experiment in just how far object-orientation can be taken in a programming language. It is simple, compact, and shows a rare and refreshing integrity of concept. To accomplish its goals, it introduces the idea that the variables of a class can be either class variables or instance variables, and the methods can be either class methods or instance methods. This turns the class into a mixture of two fundamentally different concepts—type and module—with very different semantics. Smalltalk manages to do this relatively cleanly.

Unfortunately, two more recent languages, C++ and Java, have taken this same distinction and turned it into a gratuitous mess.

The author is of the opinion that [t]he best-designed languages give you two abstraction tools—a module and an object type—each of which serves its own purpose reasonably well - I wonder if he is thinking about Smalltalk or about Ada...

Programming as an Experience: The Inspiration for Self

(this paper by way of lispmeister)

    Abstract: The Self system attempts to integrate intellectual and non-intellectual aspects of programming to create an overall experience. The language semantics, user interface, and implementation each help create this integrated experience. The language semantics embed the programmer in a uniform world of simple objects that can be modified without appealing to definitions of abstractions. In a similar way, the graphical interface puts the user into a uniform world of tangible objects that can be directly manipulated and changed without switching modes. The implementation strives to support the world-of-objects illusion by minimizing perceptible pauses and by providing true source-level semantics without sac rificing performance. As a side benefit, it encourages factoring. Although we see areas that fall short of the vision, on the whole, the language, interface, and im plementation conspire so that the Self programmer lives and acts in a consistent and malleable world of objects.

Featured in Sun Labs: The First Ten Years (1991-2001).

Unfortunately their website appears as a black hole if you have TCP Explicit Congestion Notification enabled. This is the default with Linux 2.6, but you can disable it with:

echo 0 > /proc/sys/net/ipv4/tcp_ecn

Functional Objects

Functional Objects. Matthias Felleisen. ECOOP 2004. slides (pdf).

In my talk, I will compare and contrast the two ideas of programming and programming language design. I will present and defend the thesis that good object-oriented programming heavily "borrows" from functional programming and that the future of object-oriented programming is to study functional programming and language design even more.

Not all that much that is new for LtU readers, but a nice overview none the less. Includes some details about the PLT Scheme approach to modules and objects.

Whiteboard with Anders Hejlsberg

Link: MSDN TV: Whiteboard with Anders Hejlsberg

(The cameras seem to be following Anders around these days).

Anders answers questions from Tech-Ed audience about C# design decisions and possible future directions of the language. A number of subjects are discussed, including AOP, multiple inheritance, closures, guaranteed dispose, etc...

I'm about 30 minutes into the hour and a half video. Quite interesting from a PL perspective. I'll enter my notes into the comments section as time permits.

XML feed