Traits or not Traits that is the question

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

Re: Guaging community opinion (was Re: Complexity and starting over on the JVM)

Ken Causey-3
On Tue, 2008-02-05 at 14:57 -0300, Edgar J. De Cleene wrote:

>
>
> El 2/5/08 11:18 AM, "Ken Causey" <[hidden email]> escribió:
>
> > because the current release
> > management schemes don't well-support removing something readily
> ????
>
> I have some Mantis reports going forward and backward, so it's unfair say
> this.
> I send about having <- some time ago, and in this days reply to Yoshiki
> saying if some is against his proposal.
> No mails until now.
>
> Edgar
No, I think you misunderstand me, or likely I was simply not clear.
There are many ideas that seem great conceptually and even seem
reasonable in the short term once implemented but that later cause
concern.  I'm referring to being able to actually incorporate a feature
in such a way that the community can try it out readily and easily and
yet be able to refuse it in some reasonable time period (weeks at
least).  While an implementation in a bug report is a great thing, it
clearly is not sufficient.  Take the recent example of Traits and the
changes to the Class system utilizing Traits.  The issue is still open
on these and yet how long have then been in released images?

Ken



signature.asc (196 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Complexity and starting over on the JVM

Damien Pollet
In reply to this post by Paul D. Fernhout
On 05/02/2008, Paul D. Fernhout <[hidden email]> wrote:
> pile of sticks since C code can be so brittle. Objective-C is an improvement
> in that regard.

Since you bring the subject, the GNUstep project recently announced a
new Objective-C runtime:
- announcement https://mail.gna.org/public/etoile-discuss/2007-11/msg00001.html
- code http://svn.gna.org/svn/etoile/branches/libobjc_tr/

The runtime was designed with flexibility in mind (not unlike COLA),
and the object model is based on prototypes, so compiling Smalltalk
for this runtime would be really simple. Also the GNUstep libraries
(UI in particular) run on windows, mac, and linux.

--
Damien Pollet
type less, do more [ | ] http://people.untyped.org/damien.pollet

Reply | Threaded
Open this post in threaded view
|

Re: Complexity and starting over on the JVM (was Re: Traits or not...)

Dan Ingalls
In reply to this post by Michael Haupt-3
Hi guys -

[Just caught up with Squeak mail and this thread]

Michael Haupt <[hidden email]>  wrote...

>Hi Paul,
>
>On Feb 4, 2008 11:44 PM, Paul D. Fernhout <[hidden email]> wrote:
>> As impressive as it was for Dan Ingalls to make that version of Squeak, and
>> then Pavel to decompile the result into source, so what? What is the license
>> of it all (either origins or decompiled version)?
>
>unclear. It's not officially released, there is no licensing statement.

I'm actually nearly done with this process.  I'm in a ridiculous discussion about the name.  I had proposed JSqueak and got "push-back", as they say, from the trademark folks.  It appears that, if I'm willing to call it 'Idaho' or 'Potato' or something, then we're good to go.  It's clear Sun is happy to let it go and I am too.

>(Isn't it a true nuisance that, instead of caring about software and
>complaining about and fixing bugs, we end up having to care about
>legal stuff and complaining about and fixing licensing issues these
>days?)
>
>> How well factored is it?
>
>It's very nice code, and nicely modularised into just 8 classes and 1
>interface: the Squeak interface defines constants. The Main and
>Starter classes are wrappers to get everything running. Then there are
>SqueakVM and SqueakPrimitiveHandler for execution, Screen and BitBlt
>for displaying, and SqueakImage and SqueakObject for representing
>living things.
>
>> Does it have nay hope to be supported by a community?
>
>See above. Since it's not officially released, it's a problem. I'd be
>in that community, for sure.

I will fix that problem.

> > Does it take advantage of the Java/JVM platform, including threading and multi-processor support?
>
>No; apart from garbage collection, it does not take advantage of the
>JVM platform.
>
>> Or interoperate easily back and forth with Java libraries like Jython can?
>
>That is not supported, but should be possible through primitives.
>Object conversion may be challenging, though.
>
>> Also, that version is (to my understanding) defining its own objects, not
>> using Java/JVM's objects, so there is a performances hit as well as other
>> layers of complexity and interoperability issues
>
>You are right there. Then again, the difference for objects is larger
>for Java and Squeak than for Java and Groovy - the latter's objects
>are deliberately Java objects, and the entire object model of Groovy
>has been designed with the Java object model in mind. SqueakOnJava is
>"just" a Squeak implementation on top of the JVM, with an approach as
>simple as possible.
>
>> To me, that example just shows again everything wrong with the Squeak
>> development process and why it is so frustrating to deal with it
>
>I really would not put it that way. I don't believe SqueakOnJava was
>intended to be the next big thing in Squeak progress; I rather believe
>it was a case study, or a feasibility study. In other words,
>SqueakOnJava, as I see it, is simply not part of the "Squeak
>development process" (whatever that may be).

Actually, it was neither:  I felt I needed to learn Java and the Java tools, so I picked the most fun thing I could think of to do.  I tried to make it really small and yet reasonably performant.  The simplicity should make it relatively easy to morph into something that integrates more closely with Java objects but that was not my focus.  It was more important to me to retain enumeration and mutation than to hook up to Java.

        - Dan

Reply | Threaded
Open this post in threaded view
|

Re: Complexity and starting over on the JVM (was Re: Traits or not...)

Michael Haupt-3
In reply to this post by Michael Haupt-3
Hi Dan,

On Feb 5, 2008 7:37 PM, Dan Ingalls <[hidden email]> wrote:
> I'm actually nearly done with this process.  I'm in a ridiculous discussion about the name.  I had proposed JSqueak and got "push-back", as they say, from the trademark folks.  It appears that, if I'm willing to call it 'Idaho' or 'Potato' or something, then we're good to go.  It's clear Sun is happy to let it go and I am too.

that is extremely good news, thanks for sharing it! :-)

> Actually, it was neither:  I felt I needed to learn Java and the Java tools, so I picked the most fun thing I could think of to do.  I tried to make it really small and yet reasonably performant.  The simplicity should make it relatively easy to morph into something that integrates more closely with Java objects but that was not my focus.  It was more important to me to retain enumeration and mutation than to hook up to Java.

Some students of ours have been working on devising a kind of JIT
compiler (generating actual Java methods from Squeak CompiledMethod
instances, and calling the generated methods instead of interpreting
Squeak bytecodes) last summer semester. There was trouble with the
Squeak/Java interface, and also with the fact that debugging the image
from the outside is not the easiest thing to do... anyway, they made
quite a step, and I'm definitely intending to pursue this further.

Best,

Michael

Reply | Threaded
Open this post in threaded view
|

Re: Complexity and starting over on the JVM (was Re: Traits or not...)

Bert Freudenberg
In reply to this post by Dan Ingalls
On Feb 5, 2008, at 19:37 , Dan Ingalls wrote:
>
> I'm actually nearly done with this process.  I'm in a ridiculous  
> discussion about the name.  I had proposed JSqueak and got "push-
> back", as they say, from the trademark folks.  It appears that, if  
> I'm willing to call it 'Idaho' or 'Potato' or something, then we're  
> good to go.  It's clear Sun is happy to let it go and I am too.

Did you try "Piglet"? ;)

- Bert -



Reply | Threaded
Open this post in threaded view
|

Re: Complexity and starting over on the JVM

Paul D. Fernhout
In reply to this post by keith1y
Keith-

As I pointed out, I wrote such code for Squeak ten or so years ago. The
problem isn't making the change. The problem isn't people being too "busy"
to put a few lines of code in the mainstream image changing a few classes
and then running a script while having lunch. If it was, in sometime over
the course of *ten years* someone would have found a few minutes to remove a
needless incompatibility Squeak has with just about every other dialect of
Smalltalk in the universe -- this strange us of underscore perhaps the
single biggest syntactic reason you can't easily exchange code with other
Smalltalks.

IMHO the issue includes the process and community norms whereby such changes
get adopted and mainstreamed to remove a *pointless* incompatibility with
the rest of the world (while still leaving it open to experts to do things
differently). And I use the underscore issue as an *example*; it's just one
of many. Namespaces was another big one. Stuff like a left click brings up a
menu lots of times is another (just plain bad GUI design by any modern
standard of expectations for 99% of people, with there being practically
zero benefit to doing things the current way, if anyone can easily even
*explain* how it works consistently).

I'm all for diversity. The problem is, to have a vibrant free software
community, you want diversity more at the edges than the core. That's what
Python has. Or what C has. And if you have diversity at the core, you want
some way to manage it well (like Igor suggests).

It is my hope a redesign on a common platform, leveraging that standard,
might push Squeak in positive new directions. I've already spent
person-months coding that from another direction, trying to make Python more
Squeak-like (which it its own limits).

While I've long been interested in this issue (new versions of Squeak) I
started this topic in response to a major maintainer and Squeak contributor
and booster and Squeak foundation board member saying some really tough
things to hear.

Again, he said: "I can tell you that I will ***never** maintain Squeak
anymore and I'm really thinking about what I will do. Because I think that I
did a lot for smalltalk in general the last 10 years and may be this is the
time to do something else to get a large breath of fresh air."

I am putting on the table what I think is a big set of issues (complexity
management) and one possible solution (a rebuild from scratch), thought of
course there are others (what Igor proposes with loading multiple versions
of code will likely be the future, and to an extent Les Tyrrell's OASIS
worked in that direction).

Over the last dozen or so years, I've seen lots of changes fall by the
wayside with Squeak. Lots of questionable stuff get frozen. Although I'll
freely admit I am not longer a current Squeak user for pretty much five
years or so (beyond fooling with it now and then every few new releases,
usually giving up after a couple of crashes when I stress test it and it
falls over).

In general, I don't think it is productive on open source / free software
mailing lists to say "if you want X, do it yourself". The reason for that is
that feedback from users who do testing and even potential users is often
very useful in thinking about the evolution of a system -- and not all users
or potential users have the same level of skill or available time or
commitment to do something. This is where that line of response can lead IMHO:
  "Mitch Kapor's Weekend at Bernie's [How Chandler wnet wrong]"
http://whydoeseverythingsuck.com/2008/01/mitch-kapors-weekend-at-bernies.html
"The Chandler interface design lead responded. Because I don't want this to
be personal I will refer to her as DL. DL responded to that statement with
the following: "Thank you Hank for articulating this. I think this may be at
the core of issues you are running into. [Note: *its my* issue] ... Think of
it this way. If you have a tool and you can't predict what the behavior of
that tool will be, it will *never* be useful. ... And so I issued a
challenge to the entire OSAF team. I challenged anyone to explain to me what
the "View" menu did. No takers. It's so complicated even the designers
couldn't explain it. ... If you let the fact that no one could explain a
core menu bar function sink in, you might get a clue as to why, despite what
had to be 10 to 20 million dollars of Mitch's money invested, Chandler
still, well, sucked."

Now Squeak isn't in that position overall, but *areas* of it are, IMHO. And
these are often the first areas a Squeak newbie encounters. And a big part
of that is in relation to not focusing on taming complexity IMHO. And that's
the reason someone like that board member is so frustrated IMHO. And I'm not
convinced those problems can be fixed by submitting a few patches. For a few
reasons, including, one key person who is/was taking in such patches is
talking about throwing in the towel over how that process isn't working out.

Anyway, I did post some code (but in Java). :-) And it was written months
ago towards such an effort.

All the best.

And by the way, how would you feel if when you posted "I just discovered on
Mac OS X 10.5 Leopard that the unix vm (3.9-8/3.9-10) uses leopards  X11
support rather than the quartz interface." or "When using the latest
XML-Support/YAXO with universes it is sending the image into an
un-interruptible state when it tries to parse the xml returned form the
server." someone replies that you were ranting and just fix it yourself?

Frankly, I wish I *was* ranting, and I could fix it just by myself. :-)

--Paul Fernhout

Keith Hodges wrote:

>> And yes, in a new Squeak, backarrow assign should be the first thing to be
>> removed from the default image IMHO. :-)
>>
>> --Paul Fernhout
>>
>>  
> Dear Paul,
>
> you are ranting.
>
> The reason this has not happened is that people are busy.  I have been
> wanting to do this for two years and just havent had time.
> Since squeak is open source, if you want something doing... you are as
> much invited to improve things as anyone else is.
>
> In the time you have spent writing your long emails you could have
> tweaked the parser to enable underscores in methods and variables, AND
> still have it available for assignment. Some packages like
> Poststress/Gloop already make similar tweaks.
>
> Since you care about it so much, I look forward to seeing what you come
> up with
>
> cheers
>
> Keith

Reply | Threaded
Open this post in threaded view
|

Re: Complexity and starting over on the JVM

Sean Heber
I feel a little out of place commenting, as I am even less than a  
newbie when it comes to Squeak/Smalltalk.  In fact, I've only started  
Squeak a few times, poked around, and closed it in disgust and/or  
utter-confusion after a time due to the overwhelming complexity (and,  
IMO, ugliness) of the UI that hits like a brick to the face when  
first starting an image.

So why am I here and why do I care?  I love the core principals of  
Smallktalk (and Seaside!) so much that I've been subscribed to the  
list for awhile just reading and watching and waiting for some sign  
of... I dunno... social growth?

As an outsider looking in, what I see is a relatively closed  
community of uber-experts who enjoy their exclusive membership in an  
exclusive club.  Looking past the UI and other complexities and  
shunning the (much larger) outside world of file-based development  
feels like an unspoken hazing ritual that newbies are asked to just  
accept blindly in order to join.

I have a hard time playing with Squeak because it feels so isolated  
by design.  I want to make apps that fit in with my other apps.  Can  
I use Squeak to make an OSX app that looks and acts like an OSX app,  
for example?  I honestly don't know because from what I've seen,  
Squeak seems to want to be only about Squeak.  And, IMO, the core  
community reflects that same insular attitude.  (Or vice-versa?)

Just what *is* Squeak for, in the end?

l8r
Sean


On Feb 5, 2008, at 8:23 PM, Paul D. Fernhout wrote:

> Keith-
>
> As I pointed out, I wrote such code for Squeak ten or so years ago.  
> The
> problem isn't making the change. The problem isn't people being too  
> "busy"
> to put a few lines of code in the mainstream image changing a few  
> classes
> and then running a script while having lunch. If it was, in  
> sometime over
> the course of *ten years* someone would have found a few minutes to  
> remove a
> needless incompatibility Squeak has with just about every other  
> dialect of
> Smalltalk in the universe -- this strange us of underscore perhaps the
> single biggest syntactic reason you can't easily exchange code with  
> other
> Smalltalks.
>
> IMHO the issue includes the process and community norms whereby  
> such changes
> get adopted and mainstreamed to remove a *pointless*  
> incompatibility with
> the rest of the world (while still leaving it open to experts to do  
> things
> differently). And I use the underscore issue as an *example*; it's  
> just one
> of many. Namespaces was another big one. Stuff like a left click  
> brings up a
> menu lots of times is another (just plain bad GUI design by any modern
> standard of expectations for 99% of people, with there being  
> practically
> zero benefit to doing things the current way, if anyone can easily  
> even
> *explain* how it works consistently).
>
> I'm all for diversity. The problem is, to have a vibrant free software
> community, you want diversity more at the edges than the core.  
> That's what
> Python has. Or what C has. And if you have diversity at the core,  
> you want
> some way to manage it well (like Igor suggests).
>
> It is my hope a redesign on a common platform, leveraging that  
> standard,
> might push Squeak in positive new directions. I've already spent
> person-months coding that from another direction, trying to make  
> Python more
> Squeak-like (which it its own limits).
>
> While I've long been interested in this issue (new versions of  
> Squeak) I
> started this topic in response to a major maintainer and Squeak  
> contributor
> and booster and Squeak foundation board member saying some really  
> tough
> things to hear.
>
> Again, he said: "I can tell you that I will ***never** maintain Squeak
> anymore and I'm really thinking about what I will do. Because I  
> think that I
> did a lot for smalltalk in general the last 10 years and may be  
> this is the
> time to do something else to get a large breath of fresh air."
>
> I am putting on the table what I think is a big set of issues  
> (complexity
> management) and one possible solution (a rebuild from scratch),  
> thought of
> course there are others (what Igor proposes with loading multiple  
> versions
> of code will likely be the future, and to an extent Les Tyrrell's  
> OASIS
> worked in that direction).
>
> Over the last dozen or so years, I've seen lots of changes fall by the
> wayside with Squeak. Lots of questionable stuff get frozen.  
> Although I'll
> freely admit I am not longer a current Squeak user for pretty much  
> five
> years or so (beyond fooling with it now and then every few new  
> releases,
> usually giving up after a couple of crashes when I stress test it  
> and it
> falls over).
>
> In general, I don't think it is productive on open source / free  
> software
> mailing lists to say "if you want X, do it yourself". The reason  
> for that is
> that feedback from users who do testing and even potential users is  
> often
> very useful in thinking about the evolution of a system -- and not  
> all users
> or potential users have the same level of skill or available time or
> commitment to do something. This is where that line of response can  
> lead IMHO:
>   "Mitch Kapor's Weekend at Bernie's [How Chandler wnet wrong]"
> http://whydoeseverythingsuck.com/2008/01/mitch-kapors-weekend-at- 
> bernies.html
> "The Chandler interface design lead responded. Because I don't want  
> this to
> be personal I will refer to her as DL. DL responded to that  
> statement with
> the following: "Thank you Hank for articulating this. I think this  
> may be at
> the core of issues you are running into. [Note: *its my* issue] ...  
> Think of
> it this way. If you have a tool and you can't predict what the  
> behavior of
> that tool will be, it will *never* be useful. ... And so I issued a
> challenge to the entire OSAF team. I challenged anyone to explain  
> to me what
> the "View" menu did. No takers. It's so complicated even the designers
> couldn't explain it. ... If you let the fact that no one could  
> explain a
> core menu bar function sink in, you might get a clue as to why,  
> despite what
> had to be 10 to 20 million dollars of Mitch's money invested, Chandler
> still, well, sucked."
>
> Now Squeak isn't in that position overall, but *areas* of it are,  
> IMHO. And
> these are often the first areas a Squeak newbie encounters. And a  
> big part
> of that is in relation to not focusing on taming complexity IMHO.  
> And that's
> the reason someone like that board member is so frustrated IMHO.  
> And I'm not
> convinced those problems can be fixed by submitting a few patches.  
> For a few
> reasons, including, one key person who is/was taking in such  
> patches is
> talking about throwing in the towel over how that process isn't  
> working out.
>
> Anyway, I did post some code (but in Java). :-) And it was written  
> months
> ago towards such an effort.
>
> All the best.
>
> And by the way, how would you feel if when you posted "I just  
> discovered on
> Mac OS X 10.5 Leopard that the unix vm (3.9-8/3.9-10) uses  
> leopards  X11
> support rather than the quartz interface." or "When using the latest
> XML-Support/YAXO with universes it is sending the image into an
> un-interruptible state when it tries to parse the xml returned form  
> the
> server." someone replies that you were ranting and just fix it  
> yourself?
>
> Frankly, I wish I *was* ranting, and I could fix it just by  
> myself. :-)
>
> --Paul Fernhout
>
> Keith Hodges wrote:
>>> And yes, in a new Squeak, backarrow assign should be the first  
>>> thing to be
>>> removed from the default image IMHO. :-)
>>>
>>> --Paul Fernhout
>>>
>>>
>> Dear Paul,
>>
>> you are ranting.
>>
>> The reason this has not happened is that people are busy.  I have  
>> been
>> wanting to do this for two years and just havent had time.
>> Since squeak is open source, if you want something doing... you  
>> are as
>> much invited to improve things as anyone else is.
>>
>> In the time you have spent writing your long emails you could have
>> tweaked the parser to enable underscores in methods and variables,  
>> AND
>> still have it available for assignment. Some packages like
>> Poststress/Gloop already make similar tweaks.
>>
>> Since you care about it so much, I look forward to seeing what you  
>> come
>> up with
>>
>> cheers
>>
>> Keith
>


Reply | Threaded
Open this post in threaded view
|

Re: Complexity and starting over on the JVM

Tapple Gao
On Tue, Feb 05, 2008 at 09:06:58PM -0600, Sean Heber wrote:

> I feel a little out of place commenting, as I am even less than a newbie
> when it comes to Squeak/Smalltalk.  In fact, I've only started Squeak a few
> times, poked around, and closed it in disgust and/or utter-confusion after
> a time due to the overwhelming complexity (and, IMO, ugliness) of the UI
> that hits like a brick to the face when first starting an image.
>
> So why am I here and why do I care?  I love the core principals of
> Smallktalk (and Seaside!) so much that I've been subscribed to the list for
> awhile just reading and watching and waiting for some sign of... I dunno...
> social growth?

If you like the idea but not the look of Squeak, try some of the
more professional-looking Smalltalks. Seaside runs on most of
them.

> As an outsider looking in, what I see is a relatively closed community of
> uber-experts who enjoy their exclusive membership in an exclusive club.  
> Looking past the UI and other complexities and shunning the (much larger)
> outside world of file-based development feels like an unspoken hazing
> ritual that newbies are asked to just accept blindly in order to join.

I find that this mailing list is a pretty poor reflection of the
attitudes of actual squeak users, due to the perpetual flaming
about {license, traits, namespaces, UI} by those who are *NOT*
doing anything about it. Come visit the IRC channel #squeak on
freenode to talk to actual users who like working on squeak,
chatting about most anything, and making new users feel welcome.

> I have a hard time playing with Squeak because it feels so isolated by
> design.  I want to make apps that fit in with my other apps.  Can I use
> Squeak to make an OSX app that looks and acts like an OSX app, for example?

You are correct here. Squeak is a very self-contained system,
and it is intentionally very portable and platform-independent
(more so than any other system I've seen, for sure). If you want
to do native Mac apps in smalltalk, maybe try Ambrai Smalltalk.

>  I honestly don't know because from what I've seen, Squeak seems to want to
> be only about Squeak.  And, IMO, the core community reflects that same
> insular attitude.  (Or vice-versa?)

Come to #squeak. You'll get a much better perspective.

> Just what *is* Squeak for, in the end?

I'd say it is for building applications, building tools, and
having fun, and having the support of a community that has been
collectively doing so for 35 years. There aren't many
communities with as many smart people as squeak has, with as
much thought expended on how the system and users work together.

--
Matthew Fulmer -- http://mtfulmer.wordpress.com/
Help improve Squeak Documentation: http://wiki.squeak.org/squeak/808

Reply | Threaded
Open this post in threaded view
|

Re: Complexity and starting over on the JVM

Igor Stasenko
On 06/02/2008, Matthew Fulmer <[hidden email]> wrote:
> There aren't many
> communities with as many smart people as squeak has, with as
> much thought expended on how the system and users work together.
>
A big +1
Want to add, that i never met before so friendly community as squeak is.

--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: Complexity and starting over on the JVM

Laurence Rozier
In reply to this post by Tapple Gao


On Feb 5, 2008 10:58 PM, Matthew Fulmer <[hidden email]> wrote:
On Tue, Feb 05, 2008 at 09:06:58PM -0600, Sean Heber wrote:
> I feel a little out of place commenting, as I am even less than a newbie
> when it comes to Squeak/Smalltalk.  In fact, I've only started Squeak a few
> times, poked around, and closed it in disgust and/or utter-confusion after
> a time due to the overwhelming complexity (and, IMO, ugliness) of the UI
> that hits like a brick to the face when first starting an image.
>
> So why am I here and why do I care?  I love the core principals of
> Smallktalk (and Seaside!) so much that I've been subscribed to the list for
> awhile just reading and watching and waiting for some sign of... I dunno...
> social growth?

If you like the idea but not the look of Squeak, try some of the
more professional-looking Smalltalks. Seaside runs on most of
them.

> As an outsider looking in, what I see is a relatively closed community of
> uber-experts who enjoy their exclusive membership in an exclusive club.
> Looking past the UI and other complexities and shunning the (much larger)
> outside world of file-based development feels like an unspoken hazing
> ritual that newbies are asked to just accept blindly in order to join.

I find that this mailing list is a pretty poor reflection of the
attitudes of actual squeak users, due to the perpetual flaming
about {license, traits, namespaces, UI} by those who are *NOT*
doing anything about it. Come visit the IRC channel #squeak on
freenode to talk to actual users who like working on squeak,
chatting about most anything, and making new users feel welcome.

Sure this list isn't perfect, but people have been generally respectful and dialog is an important part of the process. Based on the Squeak Community page, this list is a key part of the community and is open to everyone. Feedback *is* doing something - there exists a broad spectrum of actual Squeak developers most of whom will never contribute to the core. Squeak has inherited Smalltalk challenges and added a few of it's own. Some of these have been around for a long time and are significant but in spite of them the community survives and attracts people like Sean. That he was motivated to speak up and felt comfortable enough to do so is a testimony to the goodness that exists here. Showing him that other facets of the community exist is great, but we/he can handle talking about the problems too.

Cheers,

Laurence
 


> I have a hard time playing with Squeak because it feels so isolated by
> design.  I want to make apps that fit in with my other apps.  Can I use
> Squeak to make an OSX app that looks and acts like an OSX app, for example?

You are correct here. Squeak is a very self-contained system,
and it is intentionally very portable and platform-independent
(more so than any other system I've seen, for sure). If you want
to do native Mac apps in smalltalk, maybe try Ambrai Smalltalk.

>  I honestly don't know because from what I've seen, Squeak seems to want to
> be only about Squeak.  And, IMO, the core community reflects that same
> insular attitude.  (Or vice-versa?)

Come to #squeak. You'll get a much better perspective.

> Just what *is* Squeak for, in the end?

I'd say it is for building applications, building tools, and
having fun, and having the support of a community that has been
collectively doing so for 35 years. There aren't many
communities with as many smart people as squeak has, with as
much thought expended on how the system and users work together.

--
Matthew Fulmer -- http://mtfulmer.wordpress.com/
Help improve Squeak Documentation: http://wiki.squeak.org/squeak/808




Reply | Threaded
Open this post in threaded view
|

Re: Complexity and starting over on the JVM (was Re: Traits or not...)

stephane ducasse
In reply to this post by Dan Ingalls
Hi Dan

>> I'm actually nearly done with this process.  I'm in a ridiculous  
>> discussion about the name.  I had proposed JSqueak and got "push-
>> back", as they say, from the trademark folks.  It appears that, if  
>> I'm willing to call it 'Idaho' or 'Potato' or something, then we're  
>> good to go.  It's clear Sun is happy to let it go and I am too.

Excellent. So the problem is squeak in the name? Call it Zork or a  
bean eating animal like Squirrel and we get done.

Stef

Reply | Threaded
Open this post in threaded view
|

Re: Complexity and starting over on the JVM (was Re: Traits or not...)

Andreas.Raab
In reply to this post by Dan Ingalls
Dan Ingalls wrote:
> I'm actually nearly done with this process.  I'm in a ridiculous discussion about the name.  I had proposed JSqueak and got "push-back", as they say, from the trademark folks.  It appears that, if I'm willing to call it 'Idaho' or 'Potato' or something, then we're good to go.  It's clear Sun is happy to let it go and I am too.

Call it Plonk (meaning a smack on the head of the legal types ;-)

Cheers,
   - Andreas

Reply | Threaded
Open this post in threaded view
|

Re: Complexity and starting over on the JVM (was Re: Traits or not...)

Michael Haupt-3
Hi Andreas,

On Feb 6, 2008 8:34 AM, Andreas Raab <[hidden email]> wrote:
> Call it Plonk (meaning a smack on the head of the legal types ;-)

uh... wouldn't that be a more hollow sound, something along the lines
of a deep and resonating DONNNNNNNNNNNNNNNG. But of course you cannot
name a decent piece of software like that.

scnr,

Michael

Reply | Threaded
Open this post in threaded view
|

Re: Assignment arrow (Re: Complexity and starting over on the JVM)

Yoshiki Ohshima-2
In reply to this post by Edgar J. De Cleene
> Any against having the Yoshiki modifications in the next Squeak image ?

  Well, I might.

  What font to use and how much bigger image people would tolerate is
a question.  We have different fonts of different sizes in the image
but how many new glyphs for each font would we add to the image?

  - Just up-arrow and left-arrow for accuny?
  - perhaps some more arrows?
  - get glyphs from Dejavu and provide it in the image?
  - replace BitStream with Dejavu?
  - Or, we declare that we will be using some external font mechanism?

-- Yoshiki

Reply | Threaded
Open this post in threaded view
|

Re: Complexity and starting over on the JVM (was Re: Traits or not...)

keith1y
In reply to this post by stephane ducasse
stephane ducasse wrote:

> Hi Dan
>
>>> I'm actually nearly done with this process.  I'm in a ridiculous
>>> discussion about the name.  I had proposed JSqueak and got
>>> "push-back", as they say, from the trademark folks.  It appears
>>> that, if I'm willing to call it 'Idaho' or 'Potato' or something,
>>> then we're good to go.  It's clear Sun is happy to let it go and I
>>> am too.
>
> Excellent. So the problem is squeak in the name? Call it Zork or a
> bean eating animal like Squirrel and we get done.
>
> Stef
>
>
Can someone exlpain why there is a trademark problem with naming
something "Squeakish"

Keith


Reply | Threaded
Open this post in threaded view
|

Re: Complexity and starting over on the JVM (ideas)

Paul D. Fernhout
In reply to this post by Bergel, Alexandre
Wow, Athena looks cool! I'd tried to leverage SmallWorld but not got past
the image being binary. I had wanted completely to build from source.

If Athena and Spoon and Dan's project and a few other projects and people
could get together somehow, then we might have something even greater, and
not several people working mostly on their own. But coming up with a shared
vision might be hard?

Here are some ideas for Java<-->Smalltalk interoperability. Not necessarily
stuff you might want to do with Athena (for memory reasons), but I put it
here for future reference (including a possible future reply to Dan). This
is just a sketch, and assumes an ideal of ignoring memory use for ease of
implementation, debugging, and minimizing complexity.

Here is an idea for using native Java/JVM objects for Smalltalk objects
instead of implementing them on top of the JVM as bytes. Smalltalk method
dispatching would be handled specially (above Java) but the instances
themselves would be Java objects and use the Java garbage collector.

Have a Java class "SmalltalkProxy" which supports one method like
"processMessage". That function takes an argument of a
"SmalltalkMessageAndStackFrame" which essentially stores the information in
a message and then, if the message is processed, some stack information.
This SmalltalkProxy class has only two fields -- the proxied Java/JVM
"Object" and a boolean "became" flag.

The "processMessage" function is essentially an elaboration of the code I
posted at the beginning of this thread. It knows how to look at the proxy
and decide how to send the message to it. There are at least three
dispatching cases for a message. If the proxied object is a plain Java
object, a function gets called if one matches the message pattern. If the
Java object has a "processMessage" method, it gets called. If the object is
a Java/JVM class "SmalltalkInstance" class instance, then Smalltalk-ish
dispatching happens, and the message can also be used as a stack frame item.
(This merging messages and stack frames is a departure from typical
implementations and implies a big performance hit.)

For design simplicity and run-time extensibility, that "SmalltalkInstance"
class might have a few fields even if they were not usually all used. They
might be:
* class (usually a reference to another "SmalltalkInstance")
* dictionary of instance variables (not an array since I don't want to
bother for recompiles in keeping things up to date, and for debugging we can
have symbols as selectors not indexes)
* dictionary of locally overridden methods (for prototype support)
* array of Java/JVM objects
* array of binary data

Obviously, that expanded structure might be what is tried at first, and then
optimizations of all that might be made later.

Swapping object identities is handled at the proxy level -- the two proxied
objects are just exchanged. So you can see the Proxy level is acting a bit
like an object table.

"Becomes" might be handled by changing the became field to true and then
changing the proxy to the new object. After that, the dispatching will work
differently and just be passed onto the new object without further processing.

One can also merge the Smalltalk and the SmalltalkInstance class, but
swapping then becomes a matter of exchanging the embedded Java objects.
However, then directly proxied Java objects can no longer easily have their
identities swapped (it would require directly replacing all references in
all Smalltalk instance objects). But that might be OK -- you'd just get an
exception that Java objects cannot support "become".

Calling into Smalltalk from Java I haven't thought through. I know Jython
does it but I have not looked at that. I suspect you could intercept an
exception and do something. I'm assuming exceptions could go up the message
stack, but I admit that throwing them across intervening Java function calls
within the method stack could be problematical -- the message stack might
need to be annotated somehow in those cases before calling the function,
another performance hit.

Now, this approach has a higher memory cost. And it also has a loss of
runtime performance for Smalltalk code. But I think if you merged in support
for Scala (a JVM language which is typed and fast) to compile bottleneck
code from Smalltalk->Scala->JVM, the hybrid mix might be pretty fast.
Equivalent to the successful CPython/C mix. Or that would be my hope at least.

I might even throw Jython into the mix too. :-) Here is a Smalltalk-like
parser in Jython:
http://patapata.svn.sourceforge.net/viewvc/patapata/tags/PataPata_v204/Pointrel/smalltalkToPython.py?revision=315&view=markup
that could be elaborated on for bootstrapping into a pure
Smalltalk-in-Smalltalk-on-the-JVM compiler.

One could then build tools within this Squeak-like environment which support
Smalltalk, Scala, Java, and Jython in an Eclipse-like way (maybe even
pulling in Eclipse components entirely -- it's just Java right?), but using
an RDF-like (or Pointrel-ish) approach for storing content instead of files.
And the image would be written out by the proxies as Smalltalk source
code,making for a slower loading and writing process, but an understandable
image. SO it's a polyglot system. :-) I wrote on that in 1996 (was that
really twelve years ago?
   "Squeak and the Babel of programming languages"
to Squeak list. Would be nice to finally see it happen on a free platform.

Anyway, just outlining some ideas. Not sure if they will work out in
practice. :-)

--Paul Fernhout

Bergel, Alexandre wrote:

>> Does it have nay hope to be supported by a community? Does it take
>> advantage
>> of the Java/JVM platform, including threading and multi-processor
>> support?
>> Or interoperate easily back and forth with Java libraries like Jython
>> can?
>
> I haven't looked at deeply, but I strongly suspect that no interaction
> is actually possible with Java.
>
> I am currently working on this.
> http://bergel.eu/athena for more info


Reply | Threaded
Open this post in threaded view
|

Re: Complexity and starting over on the JVM (was Re: Traits or not...)

Laurence Rozier
In reply to this post by keith1y


On Feb 6, 2008 6:05 AM, Keith Hodges <[hidden email]> wrote:
stephane ducasse wrote:
> Hi Dan
>
>>> I'm actually nearly done with this process.  I'm in a ridiculous
>>> discussion about the name.  I had proposed JSqueak and got
>>> "push-back", as they say, from the trademark folks.  It appears
>>> that, if I'm willing to call it 'Idaho' or 'Potato' or something,
>>> then we're good to go.  It's clear Sun is happy to let it go and I
>>> am too.
>
> Excellent. So the problem is squeak in the name? Call it Zork or a
> bean eating animal like Squirrel and we get done.
>
> Stef
>
>
Can someone exlpain why there is a trademark problem with naming
something "Squeakish"

Given that Squeak's legal status is still being clarified and Disney's role is part of the discussion, making a strong case for why Sun isn't putting themselves at risk would be expensive at best. Disney has a reputation for very effective and aggressive protection of their IP - lawyers everywhere tread very carefully around them. A Sun IP attorney who wants to keep her job has to push back on a research project that could potentially(no matter how remote) step on the lion's tail.

HTH,

Laurence

P.S.
That HP, a Sun competitor is also part of the Squeak IP discussion only adds to the cost of legal analysis. This is yet another reason why it would be so valuable for the visible projects to establish an unambiguous definition of what Squeak is. Even a bare-bones VM and image that required lots of work to build anything useful from would be better than what we have now.



Keith





Reply | Threaded
Open this post in threaded view
|

Re: Complexity and starting over on the JVM (was Re: Traits or not...)

Dan Ingalls
Laurence Rozier <[hidden email]>  wrote...

>Given that Squeak's legal status is still being clarified and Disney's role is part of the discussion, making a strong case for why Sun isn't putting themselves at risk would be expensive at best. Disney has a reputation for very effective and aggressive protection of their IP - lawyers everywhere tread very carefully around them. A Sun IP attorney who wants to keep her job has to push back on a research project that could potentially(no matter how remote) step on the lion's tail.

Exactly.  In spite of my cynical description, their concern is perfectly appropriate, and I'm happy to go along with it just to get the thing out.

        - Dan

Reply | Threaded
Open this post in threaded view
|

Re: Assignment arrow (Re: Complexity and starting over on the JVM)

Randal L. Schwartz
In reply to this post by Edgar J. De Cleene
>>>>> "Edgar" == Edgar J De Cleene <[hidden email]> writes:

Edgar> Any against having the Yoshiki modifications in the next Squeak image ?

I do.  It's an trivial unnecessary *incompatibility* being introduced in an
era when cross-compatibility with Cincom and Gemstone would be more useful.

--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<[hidden email]> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!

Reply | Threaded
Open this post in threaded view
|

Re: Complexity and starting over on the JVM (ideas)

Bergel, Alexandre
In reply to this post by Paul D. Fernhout
> Wow, Athena looks cool! I'd tried to leverage SmallWorld but not  
> got past
> the image being binary. I had wanted completely to build from source.

Source code of classes in SmallWorld may be easily extracted. Would  
be easier to do it with Athena however, mainly because I fixed few bugs.

> If Athena and Spoon and Dan's project and a few other projects and  
> people
> could get together somehow, then we might have something even  
> greater, and
> not several people working mostly on their own. But coming up with  
> a shared
> vision might be hard?

In my opinion, the key of success for JRuby, Rhino, JScheme, Jython  
is to enable interaction with Java. When Dan will release its source,  
I might port Athena on his VM. But again, interaction with Java is  
crucial.

> Here is an idea for using native Java/JVM objects for Smalltalk  
> objects
> instead of implementing them on top of the JVM as bytes. Smalltalk  
> method
> dispatching would be handled specially (above Java) but the instances
> themselves would be Java objects and use the Java garbage collector.

This is pretty much the same way Jython, JRuby and Rhino have.

> The "processMessage" function is essentially an elaboration of the  
> code I
> posted at the beginning of this thread. It knows how to look at the  
> proxy
> and decide how to send the message to it. There are at least three
> dispatching cases for a message. If the proxied object is a plain Java
> object, a function gets called if one matches the message pattern.  
> If the
> Java object has a "processMessage" method, it gets called. If the  
> object is
> a Java/JVM class "SmalltalkInstance" class instance, then Smalltalk-
> ish
> dispatching happens, and the message can also be used as a stack  
> frame item.
> (This merging messages and stack frames is a departure from typical
> implementations and implies a big performance hit.)

This strategy makes sense. This is what is employed in most  
dynamically typed languages for JVM.


> For design simplicity and run-time extensibility, that  
> "SmalltalkInstance"
> class might have a few fields even if they were not usually all  
> used. They
> might be:
> * class (usually a reference to another "SmalltalkInstance")
> * dictionary of instance variables (not an array since I don't want to
> bother for recompiles in keeping things up to date, and for  
> debugging we can
> have symbols as selectors not indexes)

Are you sure that this dictionary is compatible with an efficient  
lookup ?

> * dictionary of locally overridden methods (for prototype support)

Why?

> * array of Java/JVM objects
> * array of binary data

What those arrays are for?


> Swapping object identities is handled at the proxy level -- the two  
> proxied
> objects are just exchanged. So you can see the Proxy level is  
> acting a bit
> like an object table.

Is the swapping related to implement "become:"?
Why would you need this? Since you relying on the Java memory model,  
only Java object that have been "proxyied" may be involved in a  
become operation right? Any motivation for this?

> "Becomes" might be handled by changing the became field to true and  
> then
> changing the proxy to the new object. After that, the dispatching  
> will work
> differently and just be passed onto the new object without further  
> processing.

As far as I can tell, most other languages do not provide become. In  
Smalltalk, become is mainly used to do some update in case of changes  
in class definition. Why do you want to keep it if this Smalltal on  
JVM will be file-based ?

> Calling into Smalltalk from Java I haven't thought through. I know  
> Jython
> does it but I have not looked at that. I suspect you could  
> intercept an
> exception and do something. I'm assuming exceptions could go up the  
> message
> stack, but I admit that throwing them across intervening Java  
> function calls
> within the method stack could be problematical -- the message stack  
> might
> need to be annotated somehow in those cases before calling the  
> function,
> another performance hit.

You're right. An exception thrown in a different world may be  
problematic.

> Now, this approach has a higher memory cost. And it also has a loss of
> runtime performance for Smalltalk code. But I think if you merged  
> in support
> for Scala (a JVM language which is typed and fast) to compile  
> bottleneck
> code from Smalltalk->Scala->JVM, the hybrid mix might be pretty fast.
> Equivalent to the successful CPython/C mix. Or that would be my  
> hope at least.

I feel that to tackle the performance issue, having a bytecode  
translator Smalltalk -> Java would be an acceptable approach.

> Anyway, just outlining some ideas. Not sure if they will work out in
> practice. :-)

Thanks for your intervention Paul,

Regards,
Alexandre

>
> Bergel, Alexandre wrote:
>>> Does it have nay hope to be supported by a community? Does it take
>>> advantage
>>> of the Java/JVM platform, including threading and multi-processor
>>> support?
>>> Or interoperate easily back and forth with Java libraries like  
>>> Jython
>>> can?
>>
>> I haven't looked at deeply, but I strongly suspect that no  
>> interaction
>> is actually possible with Java.
>>
>> I am currently working on this.
>> http://bergel.eu/athena for more info
>
>

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




1234567