Live data from Hacker News

Design Principles Behind Smalltalk (1981)

cs.virginia.edu

11–13 of 13 posts

Re: Design Principles Behind Smalltalk (1981)

#11

> The principle of good design can be restated for languages: > Uniform Metaphor: A language should be designed around a powerful metaphor that can be uniformly applied in all areas. A key statement for our budding language designers on HN. However they do go on to state that LISP is about linked structures, and APL is about arrays, which is wrong really - or at least does not do full justice to the ideas behind both…

I think this is a fair assessment. I agree that Smalltalk is by far not a complete solution to the problem of building and maintaining complex system but "only" an attempt.

I found that message passing is an elegant approach to have interoperability on a very basic level. But when protocols and interactions between objects get more complex, it becomes more difficult retain control and comprehension of the evolving system, thus fundamentally better approaches and methods are needed than what is present in a typical Smalltalk system.

You might be interested in watching Alan Kay's seminar on object-oriented programming, in which he sketches some ideas on how to modularize an OO system, notably, using a kind of specification language to describe the functions/needs of components and letting the underlying system figure out how to hook them up and deliver messages automatically (as opposed to the direct message passing style in traditional Smalltalks). The relevant part can be found here [1], but I found the entire talk worth watching, since a whole set of issues with OOP and Smalltalk (difficulties in finding and reusing components, weak generality) is being touched upon.

Unfortunately, as far as I know, none of the critical ideas have been crystallized into a new kind of Smalltalk - which would be more focused on working on sets of components instead of individual objects/classes (or paraphrasing Alan Kay, making "tissues").

[1] https://www.youtube.com/watch?v=QjJaFG63Hlo&t=5775s

Re: Design Principles Behind Smalltalk (1981)

#12
post #6

> The purpose of the Smalltalk project is to provide computer support for the creative spirit in everyone. I have the sense that Bjarne Stroustrup and James Gosling were unaware of this document, or if they were, disagreed with it. It’s a shame they looked more to Simula for inspiration. Back in the day, programming in Java, I always had the distinct feeling that the compiler was more important than me. Too much of m…

> Too much of my time was not spent creating. It was spent making the compiler happy.

I’ve seen this happen to some colleagues, and it has happened to me as well, not only with java.

It’s really… a skill issue. In most cases the user hadn’t read the documentation well if at all, or is trying to write in language X while thinking in language Y. It’s really your issue if you’re misusing the language and the compiler.

Re: Design Principles Behind Smalltalk (1981)

#13

> The principle of good design can be restated for languages: > Uniform Metaphor: A language should be designed around a powerful metaphor that can be uniformly applied in all areas. A key statement for our budding language designers on HN. However they do go on to state that LISP is about linked structures, and APL is about arrays, which is wrong really - or at least does not do full justice to the ideas behind both…

I think this is a fair assessment. I agree that Smalltalk is by far not a complete solution to the problem of building and maintaining complex system but "only" an attempt. I found that message passing is an elegant approach to have interoperability on a very basic level. But when protocols and interactions between objects get more complex, it becomes more difficult retain control and comprehension of the evolving sy…

Bookmarking this comment
Post reply on HN