Hacker News new | past | comments | ask | show | jobs | submit login
Smalltalk 80 – Blue Book (1983) [pdf] (free.fr)
122 points by tosh on Jan 2, 2019 | hide | past | favorite | 42 comments



I have a copy of this on my bookshelf. I highly recommend reading the portion of the book about the structure of the object memory. An interesting approach that influenced much of what we have today in VMs, with one notable exception.

In Smalltalk there was no filesystem, so the canonical representation of the system was in memory at all times while the system was booted. It dumped and restored this object memory on shutdown and boot. Its structure also allowed for automated refactoring at a semantic level (objects knew who their callers were) which is something no other language I've ever used is capable of.


> Its structure also allowed for automated refactoring at a semantic level (objects knew who their callers were)

It isn't quite as magical as that. It's somewhat better than most dynamic languages when refactoring and probably had the first refactoring browser. There were versions where you can run scoped refactoring like restricting method renames to within a class hierarchy or package.

But refactoring doesn't magically work.


> In Smalltalk there was no filesystem, so the canonical representation of the system was in memory at all times while the system was booted. It dumped and restored this object memory on shutdown and boot.

There was a lot of work on virtual memory for Smalltalk, where objects could be paged in and out of memory, but i don't think it was ever in any version i actually used:

http://xenon.stanford.edu/~eswierk/misc/kaehler81/


> An interesting approach that influenced much of what we have today in VMs, with one notable exception.

What's the exception?


Maybe the stuff in the endlessvoid94's second paragraph: Its structure also allowed for automated refactoring at a semantic level (objects knew who their callers were) which is something no other language I've ever used is capable of.


I read that as the FS being the exception.


Any known links to the other books of the series? The green and the red, for instance?


You can try archive.org. If no luck I can find my links when I get back to my home computer.



You could try searching Smalltalk-80 on libgen.io. I think the other twos are both there.


What's the difference between "Smalltalk-80: The Language and its Implementation" and "Smalltalk-80: The Language"? The latter is more recent (1989 vs 1983) and seems to be a "second edition," but it's shorter (608 vs 714 pages). Did they drop a chapter or something?


It’s missing the VM implementation description at the end.


Specifically, the portion called "The Implementation" is a description of the VM written in Smalltalk itself. This is an attempt to be as complete as McCarthy's Lisp language description and implementation in Lisp.


"<-" as the assignment operator. That's cute.

I have also seen "_" as the assignment operator in some old Squeak code though.


In R, <- is the predominant assignment operator, and until 2003 it supported _ as well, for compatibility with its predecessor, S. Here’s a post about it: https://colinfay.me/r-assignment/

Modern ligatures fonts like Fira Code turn the bracket and dash into an actual arrow, which is nice!


Nice link!

FWIW, You also see <- within Haskell's do notation. Apparently F# and OCaml use it in places, too: https://en.wikipedia.org/wiki/Assignment_(computer_science)#...


Squeak used to use a font which had a left-arrow glyph where underscore would normally be.


The first ASCII draft (1963) had a left arrow and a right arrow which were later replaced by _ and ^. When Smalltalk-80 was developed, it replaced its non standard character set with ASCII but Xerox (like a few other companies) used the older version and that is what got adopted and which Squeak inherited.

Smalltalk V was developed on the PC and borrowed := from Pascal to represent assignment supposing that most of its new users would be coming from that language. This became an option for Squeak/Pharo and since using this would free the underscore (with the proper fonts) for names imported from other languages there has been a lot of pressure to rewrite all old code to eliminate the left arrow.


Ooops - I meant that left and up arrows were replaced by _ and ^. The up arrow was used to indicate return and Smalltalk V used the caret (^) for that, which was a reasonable approximation.


The _ symbol is rendered as an arrow in the Squeak environment.


Amazing book and admirable work. Need to be shared and read.


From the 6th page:

"Copyright © 1983 by Xerox Corporation

All right reserved."

If Xerox had legitimately released this to the public, surely they would have changed the copyright notice.

As far as I can tell, this is simply pirated.

From http://stephane.ducasse.free.fr/FreeBooks/ :

"I started to be fed up to see all the books I like to be out of print, so I started to contact authors and collect their old books. I would like to thanks them all and their publishers as well. If you know an author that is willing to give to the community a book, please give him my email."

I'm not sure that changes anything.


He has permission from the authors and publishers. It is not that clear in this page but it used to be more explicit at the old site where he first started posting them.


I'd rather see it pirated than lost.


I'd rather not see Hacker News get in trouble for linking to pirated material.


The chances of anyone raising a copyright claim for a 36 year old book relating to obsolete technology are quite low.


To me, it's not the chance of somebody getting in trouble that worries me, but rather the blatant disregard and disrespect for intellectual property rights.


Intellectual property rights aren't holy scriptures. Not every right should be respected and it seems dishonest to play that card. It's the same idea as law isn't moral just because it's the law. It can still be unjust and immoral, depending on the circumstances. To follow a hard line of always adhering to the law without any regard for the consequences or context can lead to bad outcomes.


To me it's the blatant regard and respect for intellectual property rights, as if they were some God-blessed rights.

And this on a forum called "_hacker_ news". What happened to "Information wants to be free"?

We're not talking about stealing some artist's latest album or pirating some fresh program. This is unmonetizable core CS lore 40 years old.

Anything after 20 years or so should get into the public domain.


That's all fine and good but Xerox is no longer in the business of selling this book and does not suffer any harm from the reproduction, neither do the authors.

It's a bit like public libraries, which also 'hurt' book sales, and there the books might even still be in print. The Smalltalk 80 Blue Book is an important part of computer history, the more copies there are of it, digital or otherwise the better.


imho letting more people read this material shows higher respect to it and its creators than letting it be forgotten.

The book is out of print and not available otherwise. No one is making money off this book.


Have you talked to your representatives about changing copyright law so that out-of-print books can legally be copied?


Wait until you discover Archive Team...


People can act without representatives too.

Remember Aaron Swartz?


It didn't work out too well for him, unfortunately.


No, but turned out OK for Rosa Parks...


I'm not sure anybody here cares, assuming we're not actively in favor of this.


> I would like to thanks them all and their publishers as well

When you get permission from the publishers, how on earth is it "piracy"??


If he got permission from the publishers, it wouldn't be piracy.

I see no evidence that he got permission from the publishers. (Thanking them doesn't imply anything.)


He is not required to prove to you - or anybody else - that he has permission, unless challenged by an author or a publisher. Lets assume he does until you have proof that he does not and even if he does not there is a pretty good fair use argument to be made for out of print books.

To me it looks as if you have an axe to grind and will stick to your mantra, even though by all the available evidence this is done by a highly respected academic and completely out in the open, if it was done illegally (as in, with the full knowledge that authors/publishers would object) this is the most stupid way to go about it. It is your claim that requires proof, not the other way around.


I didn't say he has to prove anything to me. I said I see no evidence.


It at least implies permission from the authors (and I guess the publishers, though that's less clear; though I also care about it less, personally).




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: