Squeak Oversight Board minutes – 02/21/12

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

Squeak Oversight Board minutes – 02/21/12

Chris Cunnington

Attending: Chris Muller, Bert Freudenberg, Levente Uzonyi, Jecel Assumpacao Jr., Chris Cunnington, Craig Latta (guest)

- Colin posted a list of ideas on the SOB mailing list outlining loose plans for OmniBrowser, Filesystem as a replacement for FileDirectory, Environments/namespaces and their uses for modularity, an extensible core image and the tools required, using Mason with Jenkins to build images

- Craig Latta joined the meeting as a guest to talk about Spoon. He will be releasing a new history image soon

- Jecel will not be running for the SOB again to concentrate on his Smalltalk fork called (provisionally) NeoSmalltalk. It allows several images to run on a single vm and work in concert

- All these conversations, on way or another, related to the use of namespaces as a tool to create modularity

- Chris M. and Chris C. are both going to STIC/Smalltalk Directions next month. Chris M. is presenting.

- Chris C. will have a Jenkins app on his server after Smalltalk Directions to create an image foundry, an R&D gallery. The intent is to create a companion to the Community Driven Development Model with its get-it-right-the-first-time, "live to tape" process of image development.



Reply | Threaded
Open this post in threaded view
|

Jecel is not running this year (was: Squeak Oversight Board minutes - 02/21/12)

Jecel Assumpcao Jr
Chris Cunnington wrote on Wed, 22 Feb 2012 10:16:41 -0500
> - Jecel will not be running for the SOB again to concentrate on his Smalltalk fork
> called (provisionally) NeoSmalltalk. It allows several images to run on a single vm
> and work in concert

Below is a *very* long version of this, but you don't have to read it
because the short version is: my plan is to work on getting Squeak 4.3
to run on the SiliconSqueak processor during the first half of this year
and then work on a very simple Smalltalk to run side by side with Squeak
in the second half of 2012. This might cause some conflict of interest,
so I think it would be a bad idea for me to be on the board. Being part
of the board for the past three years has been a very positive
experience and if it turns out (as is likely) that there are no
conflicts of interest then I would be happy to run again in 2013.

Anyone curious about this project might find this presentation from a
year ago interesting (though the simple drawings don't make much sense
without the narration):

http://www.merlintec.com/download/jecel1cwlcr.pdf (1MB)

Now for the very long version:

John Maloney invited me to the Squeak community a little before it
became public. I had previously been a part of the Smalltalk and Self
communities having started building Smalltalk hardware in 1984. Though
my contributions to Squeak have been very small, I feel my participation
has often helped bring a historical perspective to the discussions (this
was particularly useful during the relicencing effort).

Part of the community wanted to use Squeak as just a starting point for
something that might turn out very different. Alan Kay said so in his
1997 OOPSLA keynote talk. And certainly if you look at what is going on
at VPRI or what Dan Ingalls has done in the Lively Kernel you can get a
good feel for what they were talking about. But there was a large part
of the community that just wanted Squeak to be a free alternative to
VisualWorks.

Around 1994 I had dropped the hardware side of my project since PCs were
advancing so quickly (the Be and NeXT people felt the same, among many
others at the time). But by 1998 I felt I could have a much better
performance/cost ratio with a design optimized for Smalltalk. FPGAs had
advanced enough that you could fit a whole processor inside them and
they had become cheap enough so you could use them in an actual product
rather than just the prototype.

Sun had killed off the Self community by shutting down the servers used
for downloading the software and papers as well as for the mailing
lists. So I proposed to the Squeak community a roadmap to add all the
neat technology I had been working on in Self to Squeak:

- a new event system to make Squeak into a nice and secure OS
- a modular alternative to images
- a simpler base model with a compatibility layer for running all the
old stuff

The reaction was roughly "if I wanted to program in Self then I would
use Self. I want Squeak to be Smalltalk-80". I had been using my
university's computers to run Self up to that point and didn't have a PC
fast enough to make Squeak practical. So my choice was to either buy the
fastest PC available for Squeak or a Sun Ultra 5 for Self, and I did the
latter. I also created a new "self-interest" mailing list on eGroups
(now YahooGroups) and was able to ressurect the Self community
(currently being lead by Russell Allen). I continued to participate in
the Squeak community, but my project was not related to it.

A lot of people complain about how many years I have been working on my
designs with no concrete results. They are partly right to do so, but
when you compare to one a single person with practically no financing
has done with what, for example Transmeta took five years to do with a
large and well financed team I don't think it is as bad as it initially
seems.

The main Smalltalk processor was:
- Tachyon (1998-2001): four slot MOVE architecture with large external
cache
- Plurion (2001-2003): multiple stack machines with three level stacks
- Neo32 (2003-2006): multiple stack machines with dual stacks
- RISC42 (2006-2008): 32 bit RISC with 16 bit instructions optimized for
adaptive compilation
- SiliconSqueak (2008-2010): bytecode machine with 32 bit microcode
- SiliconSqueak (2010-now): bytecode machine with 16 bit microcode and
ALU Matrix

In parallel with this, I had been working on a much smaller processor
(an alternative to the Atmel ATMega used in the popular Arduino boards,
for example) for a terminal for truck drivers that a client wanted to
sell:

- Oliver (2001-2003): patched MISC Forth processor for object
orientation
- dietST (2003): very reduced Smalltalk processor to fit in smallest
FPGA
- Neo16(2003-2006): simple stack machine with dual stacks

In 2007 I started a master's project at the local university and the
pace of the project became even slower. In 2008 Merik Voswinkel was
proposing the "SqueakPhone" as an alternative to Apple's closed iPhone
and we decided to join forces. Some of the people already working with
him had already invested a lot in Squeak and asked me if my hardware
couldn't be modified to run that instead of my own Neo Smalltalk
(previously Self/R and Merlin OS before that). I had already
investigated the idea of a Squeak processor back in 2004 and decided
that the result would be good enough. We could probably make some
interesting products with Squeak as it is plus Etoys or Scratch and then
we could move on to more advanced stuff. While the SqueakVM is large and
awkward compared to some others I had worked on (Neo32 is a good
example), this really doesn't make any difference to the end user. We
could run Squeak on the Strongtalk or Self VMs or run Self on top of the
Squeak VM and the language level would be the only one to make an
impression.

As part of the Squeak community, I had watched Ian Piumarta fail twice
to get the community to adopt his JITs. Henrik Gedenryd failed to get
modules adopted and Anthony Hannan didn't get any takers for this
closures nor his new bytecodes. And I had failed in 2005 to get the
community to participate in the new OLPC project. But in 2008 I saw the
community welcome Eliot Miranda's new Cog effort and the board's
discussion to base Squeak 4 on Spoon (changed to Squeak 5 as Squeak 4
was redefined to be a license change instead of a technical one) and
thought that perhaps the time had come to move Squeak forward.

Now don't get me wrong - I am against moving forward by breaking a lot
of stuff. And I think we have made a commitment to the Etoys users and
can't simply decide to stop supporting their needs. It only seems you
can't have it both ways when you are focused on the details of day to
day development. If you step back and look at the big picture then you
might find a solution.

Let me give you an example: though I was really excited when the Mac
came out and still love it, knowing everything I know today I feel it
was a huge mistake that nearly killed the company. If they had instead
created an Apple IV with roughly the same features but capable of
running the old stuff inside of virtual Apple IIs, each in its own
window, then they would have been far more successful.

Just wanting to have both progress and access to the old stuff is not
enough. Having watched a few talks about the future of Pharo, it seems
that they want this (both a really stable free alternative to
VisualWorks for serious business applications and a research platform
for their students) but I have not yet seen a plan to achieve this.

My own solution is to run different systems on the same platform (the
Squeak VM) and have a standard inter image communication system so an
application can use Squeak, Pharo, Cuis, Spoon, OpenQwaq, OpenCobalt,
Scratch, Etoys, Newspeak and others at the same time. That would allow
us to change one as radically as we want while not breaking anything
since all the old stuff would continue to be available.

Most, if not all, of the work needed for this already exists in
scattered pieces. For example: we would need to be able to show objects
that live in different images on the same screen. Like in Nebraska and
several odd projects from Japan that I can't remember the name of right
now.

Anyway, in such an environment it would be possible to keep all the
current stuff running and have Squeak change as little as people want. I
can keep using Celeste to read and write my emails, for example. At the
same time I will be free to throw out classes, globals and textual
syntax, replace the image with modules and do anything I feel is
important without upsettting anyone. The previous idea of slow and
steady changes to Squeak had the problem that, as I always like to say,
you can't add simplicity, only complexity.

-- Jecel


Reply | Threaded
Open this post in threaded view
|

project names (was: Jecel is not running this year)

Jecel Assumpcao Jr
In reply to this post by Chris Cunnington
Jecel Assumpcao Jr. wrote on Wed, 22 Feb 2012 17:35:36 -0300
> Most, if not all, of the work needed for this already exists in
> scattered pieces. For example: we would need to be able to show objects
> that live in different images on the same screen. Like in Nebraska and
> several odd projects from Japan that I can't remember the name of right
> now.

Wow, Google proved to be completely useless for this. The only way I
found out the names of the projects I was thinking of was by downloading
the full archived logs of the #squeak channel on IRC and going through
every .jp URL ever mentioned there:

http://swikis.ddo.jp/SeeThroughTalk

http://swikis.ddo.jp/NetMorph

-- Jecel


Reply | Threaded
Open this post in threaded view
|

Re: Jecel is not running this year (was: Squeak Oversight Board minutes - 02/21/12)

David T. Lewis
In reply to this post by Chris Cunnington
On Wed, Feb 22, 2012 at 05:35:36PM -0300, Jecel Assumpcao Jr. wrote:

> Chris Cunnington wrote on Wed, 22 Feb 2012 10:16:41 -0500
> > - Jecel will not be running for the SOB again to concentrate on his Smalltalk fork
> > called (provisionally) NeoSmalltalk. It allows several images to run on a single vm
> > and work in concert
>
> Below is a *very* long version of this, but you don't have to read it
> because the short version is: my plan is to work on getting Squeak 4.3
> to run on the SiliconSqueak processor during the first half of this year
> and then work on a very simple Smalltalk to run side by side with Squeak
> in the second half of 2012. This might cause some conflict of interest,
> so I think it would be a bad idea for me to be on the board. Being part
> of the board for the past three years has been a very positive
> experience and if it turns out (as is likely) that there are no
> conflicts of interest then I would be happy to run again in 2013.

Jacel,

Thank you for serving on the board and I hope that you will do so
again in the future. I for one am not worried about any conflicts of
interest with your various projects. And thanks also for the "long
version" of your story, it is very interesting reading.

Dave


Reply | Threaded
Open this post in threaded view
|

Re: Jecel is not running this year (was: Squeak Oversight Board minutes - 02/21/12)

Hannes Hirzel
Jecel

I'd like as well to thank you for your work all these years and in
particular for this report looking back 28 years. Your historical
perspective is very valuable and I hope that the work you are now
going to focus on will be successful.

You say:

" I you can't add simplicity, only complexity."

So to have something simple you have to start from scratch.

I am looking forward to your work on a
"a very simple Smalltalk to run side by side with Squeak in the second
half of 2012"


--Hannes

On 2/23/12, David T. Lewis <[hidden email]> wrote:

> On Wed, Feb 22, 2012 at 05:35:36PM -0300, Jecel Assumpcao Jr. wrote:
>> Chris Cunnington wrote on Wed, 22 Feb 2012 10:16:41 -0500
>> > - Jecel will not be running for the SOB again to concentrate on his
>> > Smalltalk fork
>> > called (provisionally) NeoSmalltalk. It allows several images to run on
>> > a single vm
>> > and work in concert
>>
>> Below is a *very* long version of this, but you don't have to read it
>> because the short version is: my plan is to work on getting Squeak 4.3
>> to run on the SiliconSqueak processor during the first half of this year
>> and then work on a very simple Smalltalk to run side by side with Squeak
>> in the second half of 2012. This might cause some conflict of interest,
>> so I think it would be a bad idea for me to be on the board. Being part
>> of the board for the past three years has been a very positive
>> experience and if it turns out (as is likely) that there are no
>> conflicts of interest then I would be happy to run again in 2013.
>
> Jacel,
>
> Thank you for serving on the board and I hope that you will do so
> again in the future. I for one am not worried about any conflicts of
> interest with your various projects. And thanks also for the "long
> version" of your story, it is very interesting reading.
>
> Dave
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Jecel is not running this year (was: Squeak Oversight Board minutes - 02/21/12)

espin
In reply to this post by Chris Cunnington

Jecel,
thank you a lot for your historical report. If you will organize your projects to be open and you will be willing to get some help, I would be very interested to help with your vision of a system projected in the future without forgetting the past!

Bye
Enrico

On Feb 22, 2012 8:38 PM, "Jecel Assumpcao Jr." <[hidden email]> wrote:
Chris Cunnington wrote on Wed, 22 Feb 2012 10:16:41 -0500
> - Jecel will not be running for the SOB again to concentrate on his Smalltalk fork
> called (provisionally) NeoSmalltalk. It allows several images to run on a single vm
> and work in concert

Below is a *very* long version of this, but you don't have to read it
because the short version is: my plan is to work on getting Squeak 4.3
to run on the SiliconSqueak processor during the first half of this year
and then work on a very simple Smalltalk to run side by side with Squeak
in the second half of 2012. This might cause some conflict of interest,
so I think it would be a bad idea for me to be on the board. Being part
of the board for the past three years has been a very positive
experience and if it turns out (as is likely) that there are no
conflicts of interest then I would be happy to run again in 2013.

Anyone curious about this project might find this presentation from a
year ago interesting (though the simple drawings don't make much sense
without the narration):

http://www.merlintec.com/download/jecel1cwlcr.pdf (1MB)

Now for the very long version:

John Maloney invited me to the Squeak community a little before it
became public. I had previously been a part of the Smalltalk and Self
communities having started building Smalltalk hardware in 1984. Though
my contributions to Squeak have been very small, I feel my participation
has often helped bring a historical perspective to the discussions (this
was particularly useful during the relicencing effort).

Part of the community wanted to use Squeak as just a starting point for
something that might turn out very different. Alan Kay said so in his
1997 OOPSLA keynote talk. And certainly if you look at what is going on
at VPRI or what Dan Ingalls has done in the Lively Kernel you can get a
good feel for what they were talking about. But there was a large part
of the community that just wanted Squeak to be a free alternative to
VisualWorks.

Around 1994 I had dropped the hardware side of my project since PCs were
advancing so quickly (the Be and NeXT people felt the same, among many
others at the time). But by 1998 I felt I could have a much better
performance/cost ratio with a design optimized for Smalltalk. FPGAs had
advanced enough that you could fit a whole processor inside them and
they had become cheap enough so you could use them in an actual product
rather than just the prototype.

Sun had killed off the Self community by shutting down the servers used
for downloading the software and papers as well as for the mailing
lists. So I proposed to the Squeak community a roadmap to add all the
neat technology I had been working on in Self to Squeak:

- a new event system to make Squeak into a nice and secure OS
- a modular alternative to images
- a simpler base model with a compatibility layer for running all the
old stuff

The reaction was roughly "if I wanted to program in Self then I would
use Self. I want Squeak to be Smalltalk-80". I had been using my
university's computers to run Self up to that point and didn't have a PC
fast enough to make Squeak practical. So my choice was to either buy the
fastest PC available for Squeak or a Sun Ultra 5 for Self, and I did the
latter. I also created a new "self-interest" mailing list on eGroups
(now YahooGroups) and was able to ressurect the Self community
(currently being lead by Russell Allen). I continued to participate in
the Squeak community, but my project was not related to it.

A lot of people complain about how many years I have been working on my
designs with no concrete results. They are partly right to do so, but
when you compare to one a single person with practically no financing
has done with what, for example Transmeta took five years to do with a
large and well financed team I don't think it is as bad as it initially
seems.

The main Smalltalk processor was:
- Tachyon (1998-2001): four slot MOVE architecture with large external
cache
- Plurion (2001-2003): multiple stack machines with three level stacks
- Neo32 (2003-2006): multiple stack machines with dual stacks
- RISC42 (2006-2008): 32 bit RISC with 16 bit instructions optimized for
adaptive compilation
- SiliconSqueak (2008-2010): bytecode machine with 32 bit microcode
- SiliconSqueak (2010-now): bytecode machine with 16 bit microcode and
ALU Matrix

In parallel with this, I had been working on a much smaller processor
(an alternative to the Atmel ATMega used in the popular Arduino boards,
for example) for a terminal for truck drivers that a client wanted to
sell:

- Oliver (2001-2003): patched MISC Forth processor for object
orientation
- dietST (2003): very reduced Smalltalk processor to fit in smallest
FPGA
- Neo16(2003-2006): simple stack machine with dual stacks

In 2007 I started a master's project at the local university and the
pace of the project became even slower. In 2008 Merik Voswinkel was
proposing the "SqueakPhone" as an alternative to Apple's closed iPhone
and we decided to join forces. Some of the people already working with
him had already invested a lot in Squeak and asked me if my hardware
couldn't be modified to run that instead of my own Neo Smalltalk
(previously Self/R and Merlin OS before that). I had already
investigated the idea of a Squeak processor back in 2004 and decided
that the result would be good enough. We could probably make some
interesting products with Squeak as it is plus Etoys or Scratch and then
we could move on to more advanced stuff. While the SqueakVM is large and
awkward compared to some others I had worked on (Neo32 is a good
example), this really doesn't make any difference to the end user. We
could run Squeak on the Strongtalk or Self VMs or run Self on top of the
Squeak VM and the language level would be the only one to make an
impression.

As part of the Squeak community, I had watched Ian Piumarta fail twice
to get the community to adopt his JITs. Henrik Gedenryd failed to get
modules adopted and Anthony Hannan didn't get any takers for this
closures nor his new bytecodes. And I had failed in 2005 to get the
community to participate in the new OLPC project. But in 2008 I saw the
community welcome Eliot Miranda's new Cog effort and the board's
discussion to base Squeak 4 on Spoon (changed to Squeak 5 as Squeak 4
was redefined to be a license change instead of a technical one) and
thought that perhaps the time had come to move Squeak forward.

Now don't get me wrong - I am against moving forward by breaking a lot
of stuff. And I think we have made a commitment to the Etoys users and
can't simply decide to stop supporting their needs. It only seems you
can't have it both ways when you are focused on the details of day to
day development. If you step back and look at the big picture then you
might find a solution.

Let me give you an example: though I was really excited when the Mac
came out and still love it, knowing everything I know today I feel it
was a huge mistake that nearly killed the company. If they had instead
created an Apple IV with roughly the same features but capable of
running the old stuff inside of virtual Apple IIs, each in its own
window, then they would have been far more successful.

Just wanting to have both progress and access to the old stuff is not
enough. Having watched a few talks about the future of Pharo, it seems
that they want this (both a really stable free alternative to
VisualWorks for serious business applications and a research platform
for their students) but I have not yet seen a plan to achieve this.

My own solution is to run different systems on the same platform (the
Squeak VM) and have a standard inter image communication system so an
application can use Squeak, Pharo, Cuis, Spoon, OpenQwaq, OpenCobalt,
Scratch, Etoys, Newspeak and others at the same time. That would allow
us to change one as radically as we want while not breaking anything
since all the old stuff would continue to be available.

Most, if not all, of the work needed for this already exists in
scattered pieces. For example: we would need to be able to show objects
that live in different images on the same screen. Like in Nebraska and
several odd projects from Japan that I can't remember the name of right
now.

Anyway, in such an environment it would be possible to keep all the
current stuff running and have Squeak change as little as people want. I
can keep using Celeste to read and write my emails, for example. At the
same time I will be free to throw out classes, globals and textual
syntax, replace the image with modules and do anything I feel is
important without upsettting anyone. The previous idea of slow and
steady changes to Squeak had the problem that, as I always like to say,
you can't add simplicity, only complexity.

-- Jecel




Reply | Threaded
Open this post in threaded view
|

Re: Jecel is not running this year (was: Squeak Oversight Board minutes - 02/21/12)

Jecel Assumpcao Jr
Thanks to Enrico, Hannes and David for your kind words.

Enrico Spinielli wrote:

> If you will organize your projects to be open and you will be willing to get some help,
> I would be very interested to help with your vision of a system projected in the future
> without forgetting the past!

The project was fully Open Source between 1997 and 2008 (though so
poorly documented that it might as well have been closed), but now is
partly Open Source and we still have to figure out which parts will be
what given the large overlap between the commercial venture and my PhD
project. Curiously, while it was Open Source it couldn't be considered
Free Software since in the 1990s I came up with a concept similar to
Apple's App Store but with "pay per use" as in Brad Cox's
"Superdistribution" instead of "pay to own".

http://www.wired.com/wired/archive/2.09/superdis.html

Having to pay to run software violates freedom 0, though not 1, 2 and 3:

http://www.gnu.org/philosophy/free-sw.html

It does not, however, violate any of the 10 terms of the Open Source
Defintion:

http://www.opensource.org/osd.html

Basically, it would be great if people could make their living by
working on Smalltalk. I am trying to figure out a way to achieve this
without secrets and restrictions. Back in the 1980s and early 1990s I
gave the DRM issue a lot of thought and decided against trying to find a
technical solution for an ethical problem.

Hannes Hirzel wrote:

> You say:
>
> " I you can't add simplicity, only complexity."
>
> So to have something simple you have to start from scratch.

Exactly. If you take Unix and add X11 and then QT and the KDE you might
get something that looks simple, but it really isn't and once in a while
the underlying complexity will show through. Contrast this with BeOS,
for example. And I think that they limited how simply they could make it
by basing their work on C++.

Even while playing with Little Smalltalk 3 (100KB image, 40KB VM and
Smalltalk-76 class model) or 4 (92KB image, 89KB VM and Smalltalk-80
model) I like to think about how much we have learned since these
systems were created and how much smaller and simpler they could be.

Just a simple example to make this discussion more concrete: in the
Squeak VM we have the "push literal" bytecode that will take an object
reference stored in the method object and save that on the stack. That
reference can be to *any* object in the whole image, but the compiler
will only allow us to generate code that points to a small set of
objects that have a literal syntax defined for them: arrays, numbers,
strings, characters, booleans and nil. What if we could just drag any
object and drop it into the source code? The compiler could be far
simpler - all it would need to do would be to copy the reference from
the source text to the method object instead of knowing how to parse
half a dozen text notations. Of course, the complexity would have just
moved elsewhere instead of being eliminated because if the compiler
doesn't know how to make numbers then some other part of the system has
to be able to do it.

The point is that doing it from scratch allows us to explore
alternatives that are not available while just adding to the current
system.

> I am looking forward to your work on a
> "a very simple Smalltalk to run side by side with Squeak in the second
> half of 2012"

For that we have to define a standard way to communicate between
different images (TeaTime is a way to keep identical images in sync, and
so doesn't count). That could be rST, Spoon's Other or something similar
(Colin Putney has proposed a specialized one for remote
debugging/development). With a little care, it would be possible to have
an application that would run half in Squeak 1.6 and half in Squeak 4.3
or else half in Spoon and half in Newspeak.

-- Jecel


Reply | Threaded
Open this post in threaded view
|

Re: Jecel is not running this year (was: Squeak Oversight Board minutes - 02/21/12)

Karl Ramberg
In reply to this post by espin
On Thu, Feb 23, 2012 at 8:43 PM, Jecel Assumpcao Jr.
<[hidden email]> wrote:

> Thanks to Enrico, Hannes and David for your kind words.
>
> Enrico Spinielli wrote:
>
>> If you will organize your projects to be open and you will be willing to get some help,
>> I would be very interested to help with your vision of a system projected in the future
>> without forgetting the past!
>
> The project was fully Open Source between 1997 and 2008 (though so
> poorly documented that it might as well have been closed), but now is
> partly Open Source and we still have to figure out which parts will be
> what given the large overlap between the commercial venture and my PhD
> project. Curiously, while it was Open Source it couldn't be considered
> Free Software since in the 1990s I came up with a concept similar to
> Apple's App Store but with "pay per use" as in Brad Cox's
> "Superdistribution" instead of "pay to own".
>
> http://www.wired.com/wired/archive/2.09/superdis.html
>
> Having to pay to run software violates freedom 0, though not 1, 2 and 3:
>
> http://www.gnu.org/philosophy/free-sw.html
>
> It does not, however, violate any of the 10 terms of the Open Source
> Defintion:
>
> http://www.opensource.org/osd.html
>
> Basically, it would be great if people could make their living by
> working on Smalltalk. I am trying to figure out a way to achieve this
> without secrets and restrictions. Back in the 1980s and early 1990s I
> gave the DRM issue a lot of thought and decided against trying to find a
> technical solution for an ethical problem.
>
> Hannes Hirzel wrote:
>
>> You say:
>>
>> " I you can't add simplicity, only complexity."
>>
>> So to have something simple you have to start from scratch.
>
> Exactly. If you take Unix and add X11 and then QT and the KDE you might
> get something that looks simple, but it really isn't and once in a while
> the underlying complexity will show through. Contrast this with BeOS,
> for example. And I think that they limited how simply they could make it
> by basing their work on C++.
>
> Even while playing with Little Smalltalk 3 (100KB image, 40KB VM and
> Smalltalk-76 class model) or 4 (92KB image, 89KB VM and Smalltalk-80
> model) I like to think about how much we have learned since these
> systems were created and how much smaller and simpler they could be.
>
> Just a simple example to make this discussion more concrete: in the
> Squeak VM we have the "push literal" bytecode that will take an object
> reference stored in the method object and save that on the stack. That
> reference can be to *any* object in the whole image, but the compiler
> will only allow us to generate code that points to a small set of
> objects that have a literal syntax defined for them: arrays, numbers,
> strings, characters, booleans and nil. What if we could just drag any
> object and drop it into the source code? The compiler could be far
> simpler - all it would need to do would be to copy the reference from
> the source text to the method object instead of knowing how to parse
> half a dozen text notations. Of course, the complexity would have just
> moved elsewhere instead of being eliminated because if the compiler
> doesn't know how to make numbers then some other part of the system has
> to be able to do it.
>
> The point is that doing it from scratch allows us to explore
> alternatives that are not available while just adding to the current
> system.
>
>> I am looking forward to your work on a
>> "a very simple Smalltalk to run side by side with Squeak in the second
>> half of 2012"
>
> For that we have to define a standard way to communicate between
> different images (TeaTime is a way to keep identical images in sync, and
> so doesn't count). That could be rST, Spoon's Other or something similar
> (Colin Putney has proposed a specialized one for remote
> debugging/development). With a little care, it would be possible to have
> an application that would run half in Squeak 1.6 and half in Squeak 4.3
> or else half in Spoon and half in Newspeak.
>
This would be cool. And maybe confusing ;-)

Karl

Reply | Threaded
Open this post in threaded view
|

Re: Jecel is not running this year (was: Squeak Oversight Board minutes - 02/21/12)

Casey Ransberger-2
In reply to this post by Chris Cunnington
Top-post:

Bummer! I'm excited about your hardware work, silicon isn't something that's fast and easy, so I've been fine with waiting. I've learned just enough about this stuff to realize how enormous what you're doing really is, and I commend you for seeing the work through.

FWIW, I don't buy your conflict of interest argument though;) and I think you should run again anyway.

Thanks for serving on the board, especially with regard to your work in the relicensing effort, and for all of your thoughtful comments both on the list and elsewhere. You bring an ocean of perspective to this community.

Remind me to bother you again about making an Apple IIgs from scratch:)

Don't leave town!

On Wed, Feb 22, 2012 at 12:35 PM, Jecel Assumpcao Jr. <[hidden email]> wrote:
Chris Cunnington wrote on Wed, 22 Feb 2012 10:16:41 -0500
> - Jecel will not be running for the SOB again to concentrate on his Smalltalk fork
> called (provisionally) NeoSmalltalk. It allows several images to run on a single vm
> and work in concert

Below is a *very* long version of this, but you don't have to read it
because the short version is: my plan is to work on getting Squeak 4.3
to run on the SiliconSqueak processor during the first half of this year
and then work on a very simple Smalltalk to run side by side with Squeak
in the second half of 2012. This might cause some conflict of interest,
so I think it would be a bad idea for me to be on the board. Being part
of the board for the past three years has been a very positive
experience and if it turns out (as is likely) that there are no
conflicts of interest then I would be happy to run again in 2013.

Anyone curious about this project might find this presentation from a
year ago interesting (though the simple drawings don't make much sense
without the narration):

http://www.merlintec.com/download/jecel1cwlcr.pdf (1MB)

Now for the very long version:

John Maloney invited me to the Squeak community a little before it
became public. I had previously been a part of the Smalltalk and Self
communities having started building Smalltalk hardware in 1984. Though
my contributions to Squeak have been very small, I feel my participation
has often helped bring a historical perspective to the discussions (this
was particularly useful during the relicencing effort).

Part of the community wanted to use Squeak as just a starting point for
something that might turn out very different. Alan Kay said so in his
1997 OOPSLA keynote talk. And certainly if you look at what is going on
at VPRI or what Dan Ingalls has done in the Lively Kernel you can get a
good feel for what they were talking about. But there was a large part
of the community that just wanted Squeak to be a free alternative to
VisualWorks.

Around 1994 I had dropped the hardware side of my project since PCs were
advancing so quickly (the Be and NeXT people felt the same, among many
others at the time). But by 1998 I felt I could have a much better
performance/cost ratio with a design optimized for Smalltalk. FPGAs had
advanced enough that you could fit a whole processor inside them and
they had become cheap enough so you could use them in an actual product
rather than just the prototype.

Sun had killed off the Self community by shutting down the servers used
for downloading the software and papers as well as for the mailing
lists. So I proposed to the Squeak community a roadmap to add all the
neat technology I had been working on in Self to Squeak:

- a new event system to make Squeak into a nice and secure OS
- a modular alternative to images
- a simpler base model with a compatibility layer for running all the
old stuff

The reaction was roughly "if I wanted to program in Self then I would
use Self. I want Squeak to be Smalltalk-80". I had been using my
university's computers to run Self up to that point and didn't have a PC
fast enough to make Squeak practical. So my choice was to either buy the
fastest PC available for Squeak or a Sun Ultra 5 for Self, and I did the
latter. I also created a new "self-interest" mailing list on eGroups
(now YahooGroups) and was able to ressurect the Self community
(currently being lead by Russell Allen). I continued to participate in
the Squeak community, but my project was not related to it.

A lot of people complain about how many years I have been working on my
designs with no concrete results. They are partly right to do so, but
when you compare to one a single person with practically no financing
has done with what, for example Transmeta took five years to do with a
large and well financed team I don't think it is as bad as it initially
seems.

The main Smalltalk processor was:
- Tachyon (1998-2001): four slot MOVE architecture with large external
cache
- Plurion (2001-2003): multiple stack machines with three level stacks
- Neo32 (2003-2006): multiple stack machines with dual stacks
- RISC42 (2006-2008): 32 bit RISC with 16 bit instructions optimized for
adaptive compilation
- SiliconSqueak (2008-2010): bytecode machine with 32 bit microcode
- SiliconSqueak (2010-now): bytecode machine with 16 bit microcode and
ALU Matrix

In parallel with this, I had been working on a much smaller processor
(an alternative to the Atmel ATMega used in the popular Arduino boards,
for example) for a terminal for truck drivers that a client wanted to
sell:

- Oliver (2001-2003): patched MISC Forth processor for object
orientation
- dietST (2003): very reduced Smalltalk processor to fit in smallest
FPGA
- Neo16(2003-2006): simple stack machine with dual stacks

In 2007 I started a master's project at the local university and the
pace of the project became even slower. In 2008 Merik Voswinkel was
proposing the "SqueakPhone" as an alternative to Apple's closed iPhone
and we decided to join forces. Some of the people already working with
him had already invested a lot in Squeak and asked me if my hardware
couldn't be modified to run that instead of my own Neo Smalltalk
(previously Self/R and Merlin OS before that). I had already
investigated the idea of a Squeak processor back in 2004 and decided
that the result would be good enough. We could probably make some
interesting products with Squeak as it is plus Etoys or Scratch and then
we could move on to more advanced stuff. While the SqueakVM is large and
awkward compared to some others I had worked on (Neo32 is a good
example), this really doesn't make any difference to the end user. We
could run Squeak on the Strongtalk or Self VMs or run Self on top of the
Squeak VM and the language level would be the only one to make an
impression.

As part of the Squeak community, I had watched Ian Piumarta fail twice
to get the community to adopt his JITs. Henrik Gedenryd failed to get
modules adopted and Anthony Hannan didn't get any takers for this
closures nor his new bytecodes. And I had failed in 2005 to get the
community to participate in the new OLPC project. But in 2008 I saw the
community welcome Eliot Miranda's new Cog effort and the board's
discussion to base Squeak 4 on Spoon (changed to Squeak 5 as Squeak 4
was redefined to be a license change instead of a technical one) and
thought that perhaps the time had come to move Squeak forward.

Now don't get me wrong - I am against moving forward by breaking a lot
of stuff. And I think we have made a commitment to the Etoys users and
can't simply decide to stop supporting their needs. It only seems you
can't have it both ways when you are focused on the details of day to
day development. If you step back and look at the big picture then you
might find a solution.

Let me give you an example: though I was really excited when the Mac
came out and still love it, knowing everything I know today I feel it
was a huge mistake that nearly killed the company. If they had instead
created an Apple IV with roughly the same features but capable of
running the old stuff inside of virtual Apple IIs, each in its own
window, then they would have been far more successful.

Just wanting to have both progress and access to the old stuff is not
enough. Having watched a few talks about the future of Pharo, it seems
that they want this (both a really stable free alternative to
VisualWorks for serious business applications and a research platform
for their students) but I have not yet seen a plan to achieve this.

My own solution is to run different systems on the same platform (the
Squeak VM) and have a standard inter image communication system so an
application can use Squeak, Pharo, Cuis, Spoon, OpenQwaq, OpenCobalt,
Scratch, Etoys, Newspeak and others at the same time. That would allow
us to change one as radically as we want while not breaking anything
since all the old stuff would continue to be available.

Most, if not all, of the work needed for this already exists in
scattered pieces. For example: we would need to be able to show objects
that live in different images on the same screen. Like in Nebraska and
several odd projects from Japan that I can't remember the name of right
now.

Anyway, in such an environment it would be possible to keep all the
current stuff running and have Squeak change as little as people want. I
can keep using Celeste to read and write my emails, for example. At the
same time I will be free to throw out classes, globals and textual
syntax, replace the image with modules and do anything I feel is
important without upsettting anyone. The previous idea of slow and
steady changes to Squeak had the problem that, as I always like to say,
you can't add simplicity, only complexity.

-- Jecel





--
Casey Ransberger