You might find this list of Kay's talks interesting:
823 karma · joined February 26, 2014
You might find this list of Kay's talks interesting:
In a little more detail: the Smalltalk MVC (model-view-controller) GUI had an overlapping windows scheme, but only the topmost window is active. Since it is topmost, it isn't partially covered by any of the others and updating it is trivial. Clicking any other window brings it to the top and only then is it updated.
Switching between windows was a lightweight operation which gave Bill the wrong impression that even background windows were being updated. That would have required clipping graphics operations by arbitrary shapes, which Smalltalk didn't do.
Bill spent a while figuring out how to do that and as a side effect could easily implement non rectangular windows, like the rounded corners that Steve Jobs wanted.
The April 1982 issue of Byte magazine had a very detailed article about the Xerox Star: "Designing the Star User Interface" by Dr. David Canfield Smith, Charles Irby, Ralph Kimball, B
It was later released as the purple book without part 4 for people interested in learning Smalltalk-80 but not in implementing it.
The link for the blue book is from Stéphane's collection which includes many other books, including ones that some people might find easier to learn from:
Smalltalk-76 introduced a fixed syntax and does have a bit of precedence: unary > binary > keywords. All binary messages have the same priority, which given that you can define new ones avoids a lot of complexity at the cost of a few extra parenthesis.
It is not hard to say what is unique about C: it and Forth are the only high level languages with seamless access to memory. If other languages offer it at all, like PEEK and POKE and Basic, it is far more awkward and interrupts your flow. That might be a good thing - the ESPOL compiler mentioned in the talk would print a big fat warning "YOU MUST KNOW WHAT YOU ARE DOING!" after any line in your code doing C-like tricks.
Note that they took out 7 patents on the PC AT (286). When their attempt to take back control via the PS/2 in 1987 failed, they spent the 1990s getting chipset makers and clone makers to license their patents. Had they tried this in the 1980s the industry might have gone in a different direction.
In Self 1 and 2 we also used dynamic compilation and we got adaptive compilation in Self 3. This moved from Sun to Animorphic for the Strongtalk project and got bought by Sun to become the Java HotSpot technology.
JIT was very popular among Japanese car manufacturers and the term was borrowed for Java. Note that Java only had simple interpreters in its first few years so we are talking the late 1990s here.
Except that by the time the 68020 came out Unix and C were king and C's dirty hack solution to modularity (#include .h files) was now considered good enough. Intel and National kept full backwards compatibility (to this day, in the case of Intel) but Motorola quietly dropped the stuff from the 68030.
http://popolony2k.com.br/xtras/programming/asm/nemesis-lones...
Intel was indeed worried about the laptop market when the Crusoe came out, but quickly adopted the voltage and frequency scaling into their own processors negating some of Transmeta's key technical advantages.
Meanwhile, IBM changed directions as a third party fab (they dropped bulk CMOS to focus on SiliconOnInsulator) leaving Transmeta without a product to sell until they could find a new fab and design their next generation product for that.
This is just a start - there is quite a bit to improve on that list.
I am trying to compile list of the many different Smalltalk implementations:
https://archive.org/details/byte-magazine-1985-05-rescan/pag...
For a short while in the 1990s Smalltalk V/Win was available at no cost with the name Smalltalk Express.
Arcnet was a token bus (like IEEE 802.4 from General Motors' MAP) and not a token ring (like IEEE 802.5 from IBM's Zurich research).
"The Wheel Of Reincarnation" described by Ivan Sutherland is closely related, but is based on the idea that computing history is more like a spiral than a straight line, so the future is more similar to the past than to the present.
There are non messaging parts in Smalltalk-80, like assignment. The Self variant of Smalltalk goes quite a bit further in using message passing for everything.
- Send: prepares a message to be sent and negotiates with the receiver
- Accept: negotiates with the sender
- Queue: can save accepted messages to be handled later
- Receive: deals with queued messages
- Protocol: can associated the selector in a message with executable code
- Execution: knows how to used system resources to actually do what the message asked
The default metaobjects are 100% compatible with Smalltalk-80 base level code but his thesis show several interesting alternatives.
It was the commercial shuttles, called ChipIgnite, that have had space left over.
for (size_t i = length; i-- > 0 ; ) ...
that several other people posted would not execute for index 0. Shouldn't it be this instead? for (size_t i = length; --i > 0 ; ) ...My guess is that the performance would be very close to an ARM or x86 with the same silicon area.