
Design Principles Behind Smalltalk (1981) - devinmcgloin
http://www.cs.virginia.edu/~evans/cs655/readings/smalltalk.html
======
state
"...a language of description (programming language) that serves as an
interface between the models in the human mind and those in computing
hardware"

We do know what the models in our computing hardware look like, but do we
actually know the models in the human mind?

Don't get me wrong, I love everything about this document. But I can't help
but feel like that conceit is really dangerous. And seems common in this era
of work.

~~~
Retric
People are associate not procedural so objects do map somewhat better than
functions. Many of the hardest problems in computer science are very short
term. Navigating a car across the country is not that hard, not hitting
anything or breaking any laws in the next 10 seconds and every 10 seconds
along the way is vastly more difficult.

It's easy to calculate a trajectory to toss a ball into a hoop, it's much
harder to get a robotic arm to do so.

~~~
kensai
At a molecular level, we could argue that everything is procedural in humans
as well. Of course things get complicated at biological neural networks where
parallel processing becomes more important.

In the end, both humans and machines have to follow the laws of nature
(physics) in order to process information. There is nothing magic about it, at
a certain point of abstraction we both (all) work in the same information
processing way.

------
AnimalMuppet
Hmm. "Languages and systems that are of sound design will persist, to be
supplanted only by better ones." I wonder if the author still thinks that,
looking at the programming language landscape today. (Either he would have to
say "it didn't work out that way", or to say that C++ and Java were better
than Smalltalk.)

~~~
noblethrasher
On the other hand, the big idea behind Smalltalk, message passing (i.e.
programming _with_ computers rather just the programming _of_ computers),
keeps getting recapitulated in various forms such as Ruby, Erlang, Docker,
etc. Even C#'s LINQ, in its most powerful form, is ultimately a message
passing system (and version 4 of the language that introduced `dynamic` went
even further).

Consider that the first MVC paper concerned Smalltalk and was published
sometime in the late seventies, but only discovered by the broader programmer
community about 15 years ago. Certainly Microsoft developers only seemed to
have become aware of it in the last ten years.

Consider that both the JVM (Hotspot) and Google's V8 owe their performance to
Smalltalk hackers.

Consider that IDEs are becoming every more tightly integrated with their their
client programming languages (Roslyn+Visual Studio, Atom/VSCode+JavaScript,
VBA, Browser Dev Tools). Smalltalk was the canonical existence proof that this
was a good idea (although Sketchpad did it first).

...

Dan Ingalls (along with Alan Kay and Adele Goldberg) deserve to feel pretty
smug (although Kay was supposedly disappointed that they stopped evolving
Smalltalk because it became too useful).

~~~
hota_mazi
> On the other hand, the big idea behind Smalltalk, message passing (i.e.
> programming with computers rather just the programming of computers), keeps
> getting recapitulated in various forms such as Ruby, Erlang, Docker,

"Recapitulated"... interesting choice of words.

Yes, this approach keeps being rediscovered, becomes a fad for a bit and then
gets forgotten again. And for good reason: it leads to spaghetti designs with
a chaos of actors sending and receiving messages to each other as an
undebuggable mess.

Plus, it encourages the removal of types in programs.

It's really a poor idea in practice.

~~~
jacquesm
Message passing has its place, some of the most impressive software projects
ever built use it at their core.

That smalltalk does this at the object level is quite possibly not the most
useful thing (though it is interesting), but at other levels in an
architecture it can be an extremely powerful tool.

You can make spaghetti designs with any architecture, that's nothing to do
with message passing per-se.

------
WhitneyLand
If you had to bet, which do you think will happen first:

1) The singularity/General AI is achieved

2) The last smalltalk article to make it to HN front page gets posted

I'm going with (1).

------
tlow
I believe there is a mistake in the user interface section. They use the word
"esthetics" when they mean aesthetics which is > a set of principles
underlying and guiding the work of a particular artist or artistic movement.

The root of the word is possibly Germananic (in German: Ästhetisch) or Greek
Aisthetikos. It's not clear that there is a difference from any citable
source, however deductive reasoning suggests that escetics is concerned with
cosmetology and estheticians. The argument to be made that its the Latin
dipthong AE is simplified to E is not valid in this case as inspection of
Greek shows.

Edit: update. One given definition of esthetics is > relating to, involving,
or concerned with pure emotion and sensation as opposed to pure
intellectuality. [dictionary.com]

~~~
igouy
Just different spelling:

[https://www.merriam-webster.com/dictionary/esthetic](https://www.merriam-
webster.com/dictionary/esthetic)

[http://dictionary.cambridge.org/us/dictionary/english/aesthe...](http://dictionary.cambridge.org/us/dictionary/english/aesthetic)

~~~
tlow
I think you may be correct and what I perceived might be called emergence of
different uses.

