Follow the Blue Book - what does that mean?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Follow the Blue Book - what does that mean?

James Ladd
A few contributors have asked what does it mean to follow the Blue Book so I thought I would elaborate/clarify.

For the first implementation and release of Redline we need to put a stake in the ground and say "this is the flavor of Smalltalk-80
you will get". The flavor chosen is that defined by the book "Smalltalk-80 the language and its implementation" otherwise known
as the "Blue Book". What does this mean? It means that Redline will have all the classes and the methods on those classes as
defined by the "Blue Book'. However, graphical classes are not included at this time.

While this is a succinct set of classes and methods there will be places where the implementation is not satisfactory.
For example, when dealing with single byte characters rather than unicode etc. In these cases we need to bring the implementation
into the now and what anyone on the JVM would reasonably expect.

To bridge this sort of "gap" we are looking to the corresponding implementation of the "Blue Book" classes and method in the
Pharo Smalltalk implementation. While we are not copying every class and method in Pharo, only those that match the "Blue Book",
we can learn a lot from that implementation.

So, given the Class X in the Blue Book with the method 'crank' we would create the Class X in Redline and define the method
'crank'. We would then look at the Pharo implementation to see if there is a corresponding Class X with the method 'crank'.
We then learn from this implementation and copy it where it makes sense, keeping in mind we want to be closer to the
"Blue Book" than we want to be to Pharo.  In some cases you may have to implement the method as defined by the text of
the "Blue Book."

Please let me know if you have questions?

- James.



Reply | Threaded
Open this post in threaded view
|

Re: Follow the Blue Book - what does that mean?

steve.rees
The Blue Book is a good start, but there are some obvious omissions wrt a modern Smalltalk. What about exceptions? Assuming block>>ensure: works correctly, ANSI-compliant exceptions can be implemented on top of it.

Steve

On Tuesday, 1 January 2013 03:32:32 UTC, jamesl wrote:
A few contributors have asked what does it mean to follow the Blue Book so I thought I would elaborate/clarify.

For the first implementation and release of Redline we need to put a stake in the ground and say "this is the flavor of Smalltalk-80
you will get". The flavor chosen is that defined by the book "Smalltalk-80 the language and its implementation" otherwise known
as the "Blue Book". What does this mean? It means that Redline will have all the classes and the methods on those classes as
defined by the "Blue Book'. However, graphical classes are not included at this time.

While this is a succinct set of classes and methods there will be places where the implementation is not satisfactory.
For example, when dealing with single byte characters rather than unicode etc. In these cases we need to bring the implementation
into the now and what anyone on the JVM would reasonably expect.

To bridge this sort of "gap" we are looking to the corresponding implementation of the "Blue Book" classes and method in the
Pharo Smalltalk implementation. While we are not copying every class and method in Pharo, only those that match the "Blue Book",
we can learn a lot from that implementation.

So, given the Class X in the Blue Book with the method 'crank' we would create the Class X in Redline and define the method
'crank'. We would then look at the Pharo implementation to see if there is a corresponding Class X with the method 'crank'.
We then learn from this implementation and copy it where it makes sense, keeping in mind we want to be closer to the
"Blue Book" than we want to be to Pharo.  In some cases you may have to implement the method as defined by the text of
the "Blue Book."

Please let me know if you have questions?

- James.



Reply | Threaded
Open this post in threaded view
|

Re: Follow the Blue Book - what does that mean?

James Ladd
That is a good example of something that isn't in the Blue Book but should be added to Redline. Hopefully while implementing Block from the Blue Book's interface definition people will look at Pharos impl and ask about the extra methods - and potentially implement them as we'll. 
This is the intended process.

Sent from Hyperspace.

On 18/01/2013, at 5:33 AM, [hidden email] wrote:

The Blue Book is a good start, but there are some obvious omissions wrt a modern Smalltalk. What about exceptions? Assuming block>>ensure: works correctly, ANSI-compliant exceptions can be implemented on top of it.

Steve

On Tuesday, 1 January 2013 03:32:32 UTC, jamesl wrote:
A few contributors have asked what does it mean to follow the Blue Book so I thought I would elaborate/clarify.

For the first implementation and release of Redline we need to put a stake in the ground and say "this is the flavor of Smalltalk-80
you will get". The flavor chosen is that defined by the book "Smalltalk-80 the language and its implementation" otherwise known
as the "Blue Book". What does this mean? It means that Redline will have all the classes and the methods on those classes as
defined by the "Blue Book'. However, graphical classes are not included at this time.

While this is a succinct set of classes and methods there will be places where the implementation is not satisfactory.
For example, when dealing with single byte characters rather than unicode etc. In these cases we need to bring the implementation
into the now and what anyone on the JVM would reasonably expect.

To bridge this sort of "gap" we are looking to the corresponding implementation of the "Blue Book" classes and method in the
Pharo Smalltalk implementation. While we are not copying every class and method in Pharo, only those that match the "Blue Book",
we can learn a lot from that implementation.

So, given the Class X in the Blue Book with the method 'crank' we would create the Class X in Redline and define the method
'crank'. We would then look at the Pharo implementation to see if there is a corresponding Class X with the method 'crank'.
We then learn from this implementation and copy it where it makes sense, keeping in mind we want to be closer to the
"Blue Book" than we want to be to Pharo.  In some cases you may have to implement the method as defined by the text of
the "Blue Book."

Please let me know if you have questions?

- James.