Overall goal

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

Overall goal

Srinivas JONNALAGADDA
James,

        An arguably central question is: how true is Redline expected to be to the Blue Book?  I have two motivations in asking this question.

(1) Should you be open to implementing traits/mix-ins, there are other - and better - ways of designing the class library(*).  This can be done even while ensuring that the outward effect on the typical Smalltalk programmer is reasonably small.

(2) Smalltalk-80 class hierarchy has far too many violations of Liskov Substitution Principle.  For a silly example, try:

| n |
n := 42.
n at: 1 put: 'Hello'.
Transcript show: (n at: 1).

The above throws an error in Pharo, saying `Instances of SmallInteger are not indexable.'.  [Incidentally, this works in Redline, since there is an ArrayList in every object!!]

        Clojure is certainly very much in the Lisp tradition, but has designed its own top-level functions, special forms and libraries to both suit the JVM and make Lisp modern.  Yet, tens of thousands of Lisp programmers have adopted it, despite those departures.  There is a similar opportunity for Redline today!  I am very interested in your views in this regard.  Thanks.

-- |0|0|

____
(*) Examples include separation of ordering relationship (which, in turn, has an impact on the implementation of collections) and the possibility of having read-only vs. read-write protocols (please note that read-only does not imply immutability, which is an altogether larger subject!).
Reply | Threaded
Open this post in threaded view
|

Re: Overall goal

James Ladd
|0|0|,

Redline is expected to be true to the class library and protocols defined by the
Blue Book. The implementation may vary. This is in line with #1 below.
However, first priority would be getting the Runtime done, covered in tests and
only then looking at how to improve its implementation.

First and foremost Redline is to be a 'Smalltalk' - that is more than the language
syntax alone. While we do not currently have an image we do want applications
written in another Smalltalk to be able to target Redline as a deployment platform
with little or no additional effort.

We may stray from the Blue Book where other more advanced libraries exist.
File support is one such area.

Getting people to adopt a Class and implement it has proven really hard,
would you like to implement one or more classes of the runtime?

- James.

On Sun, Dec 16, 2012 at 6:02 PM, Srinivas JONNALAGADDA <[hidden email]> wrote:
James,

        An arguably central question is: how true is Redline expected to be to the Blue Book?  I have two motivations in asking this question.

(1) Should you be open to implementing traits/mix-ins, there are other - and better - ways of designing the class library(*).  This can be done even while ensuring that the outward effect on the typical Smalltalk programmer is reasonably small.

(2) Smalltalk-80 class hierarchy has far too many violations of Liskov Substitution Principle.  For a silly example, try:

| n |
n := 42.
n at: 1 put: 'Hello'.
Transcript show: (n at: 1).

The above throws an error in Pharo, saying `Instances of SmallInteger are not indexable.'.  [Incidentally, this works in Redline, since there is an ArrayList in every object!!]

        Clojure is certainly very much in the Lisp tradition, but has designed its own top-level functions, special forms and libraries to both suit the JVM and make Lisp modern.  Yet, tens of thousands of Lisp programmers have adopted it, despite those departures.  There is a similar opportunity for Redline today!  I am very interested in your views in this regard.  Thanks.

-- |0|0|

____
(*) Examples include separation of ordering relationship (which, in turn, has an impact on the implementation of collections) and the possibility of having read-only vs. read-write protocols (please note that read-only does not imply immutability, which is an altogether larger subject!).

Reply | Threaded
Open this post in threaded view
|

Re: Overall goal

Brian Brown-5
On Sunday, December 16, 2012 12:53:33 AM UTC-7, jamesl wrote:

Getting people to adopt a Class and implement it has proven really hard,
would you like to implement one or more classes of the runtime?


James, is there a priority list of classes that need to be implemented?  I'd be willing to help with that.

- Brian