Alan,
Agreed. The name is not nearly so important as the fundamentals of a solid Smalltalk system. Focusing on the latter serves everyone: the children for whom all this was started; the adults who will set them up with something they can use; and other developers wanting to work in Smalltalk.
If we do create a ViewPoints Smalltalk, or whatever it gets named, then we should do it right. Fix the gratuitous incompatibilities with other dialects, clean up the look and (far more important) the feel of the GUI, and arrange for the toys and the experiments to be built on top of vs. into the core language and environment. However, that is good advice whether the names changes or not.
Bill
==================================== Alan Lovejoy <squeak-dev.sourcery@...> wrote:
Squeak is not the most professional-sounding name that could have been chosen. One very important purpose of a name is marketing, and the name "Squeak" doesn't do that very well in a few rather important markets. Of course, if you're marketing to children (and those who educate them,) then Squeak is not at all a bad name.
But that's all water under the bridge at this point. Changing the name only, in the absence of any other substantive changes, would at best be ignored as a shameless (and not well-motivated) marketing ploy. At worst, it would be seen as an act of desperation.
Change Squeak so that it deserves a new name. Then the new name will be perceived as having been earned, and so will serve as an effective marketing tool to advertise the new, improved "Open Source Smalltalk."
--Alan
Wilhelm K. Schwab, Ph.D. University of Florida Department of Anesthesiology PO Box 100254 Gainesville, FL 32610-0254
Email: bschwab@anest.ufl.edu Tel: (352) 846-1285 FAX: (352) 392-7029
On Thu, Mar 6, 2008 at 2:41 AM, Bill Schwab BSchwab@anest.ufl.edu wrote:
If we do create a ViewPoints Smalltalk, or whatever it gets named, then we should do it right. Fix the gratuitous incompatibilities with other dialects, <snip>
Gratuitous incompatibilities? As somebody who's only every used Squeak, what are they?
Gulik.
Underscore for assignment!
Brace notation for dynamic arrays!
On Wed, Mar 5, 2008 at 2:02 PM, Michael van der Gulik mikevdg@gmail.com wrote:
On Thu, Mar 6, 2008 at 2:41 AM, Bill Schwab BSchwab@anest.ufl.edu wrote:
If we do create a ViewPoints Smalltalk, or whatever it gets named, then we should do it right. Fix the gratuitous incompatibilities with other dialects, <snip>
Gratuitous incompatibilities? As somebody who's only every used Squeak, what are they?
Gulik.
-- http://people.squeakfoundation.org/person/mikevdg http://gulik.pbwiki.com/
See also guidelines for Seaside, which cares about cross-dialect portability: http://www.seaside.st/community/conventions
On Wed, Mar 5, 2008 at 2:23 PM, David Mitchell david.mitchell@gmail.com wrote:
Underscore for assignment!
Brace notation for dynamic arrays!
On Wed, Mar 5, 2008 at 2:02 PM, Michael van der Gulik mikevdg@gmail.com wrote:
On Thu, Mar 6, 2008 at 2:41 AM, Bill Schwab BSchwab@anest.ufl.edu wrote:
If we do create a ViewPoints Smalltalk, or whatever it gets named, then we should do it right. Fix the gratuitous incompatibilities with other dialects, <snip>
Gratuitous incompatibilities? As somebody who's only every used Squeak, what are they?
Gulik.
-- http://people.squeakfoundation.org/person/mikevdg http://gulik.pbwiki.com/
See also guidelines for Seaside, which cares about cross-dialect portability: http://www.seaside.st/community/conventions
Many of these guidelines are encoded in automatic Lint-Tests:
http://source.lukas-renggli.ch/slime
Lukas
"David" == David Mitchell david.mitchell@gmail.com writes:
David> Underscore for assignment!
On this point, you could argue that it's the *other* smalltalks that have chosen to be gratuitously incompatible, not Squeak, since this choice derives all the way back from the mothership, Smalltalk80.
"Randal L. Schwartz" merlyn@stonehenge.com wrote in message news:86pru8olck.fsf@blue.stonehenge.com...
"David" == David Mitchell david.mitchell@gmail.com writes:
David> Underscore for assignment!
On this point, you could argue that it's the *other* smalltalks that have chosen to be gratuitously incompatible, not Squeak, since this choice derives all the way back from the mothership, Smalltalk80.
True. But then you could argue that Squeak has chosen to be deviously incompatible by replacing the left arrow with an underscore, and yet pretending that no change has been made.
Which is the greater sin, to make a change, and make the change obvious; or to make a change, and attempt to mask the fact that it has happened?
These assignment discussions are most amusing, and I am sure will remain so for many years to come ;)
Cheers, Andy
-- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 merlyn@stonehenge.com 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!
Andrew Tween wrote:
These assignment discussions are most amusing, and I am sure will remain so for many years to come ;)
Since you enjoy them, I will add a few comments. The change from left arrow to underscore was done when moving from the draft ASCII standard (1963) to the final one (1968). Unfortunately even in the early 1980s there was still a lot of equipment being sold compatible with the draft version. This was particularly true on anything from DEC or Xerox. So it was natural that Smalltalk-80's notion of ASCII matched Xerox's.
When Digitalk released their first product in 1985 they introduced the ideas of ":=" for assignment. Though the PC did have a left arrow character, it used the exact same code as ESC and that would have caused a lot of confusion. In addition they were trying really hard to sell to Pascal programmers (C was not yet as popular at that time) with nearly all examples in their very nice manual including the Pascal version beside the Smalltalk one. Given the changes they had made they decided to call their product "Methods". By their second product they had cleared things up with Xerox and so it was caleld "Smalltalk V". This one was graphical and could have used anything they wanted for assignment, but they kept the ":=" for compatibility with their previous product.
Of course, there is nothing wrong in letting stuff from Pascal (or C) creep into Smalltalk. The colon before block argument names, for example, came unchanged from Logo. But neither do I mind being different.
-- Jecel
On Wed, Mar 5, 2008 at 10:23 PM, David Mitchell david.mitchell@gmail.com wrote:
Brace notation for dynamic arrays!
So instead of:
dictionary := { $a -> 1. $b -> 2. $c -> 3 } asDictionary.
I need to type:
dictionary := Dictionary new add: $a -> 1; add: $b -> 2; add: $c -> 3; yourself.
? In my opinion the other dialects should adopt this or propose another way of doing it. No concise syntax for dynamically creating a collection seems a problem to me, and easy to remedy in a language where one has access to the reader/compiler. So why would it be bad to do so?
Jason Johnson wrote:
On Wed, Mar 5, 2008 at 10:23 PM, David Mitchell david.mitchell@gmail.com wrote:
Brace notation for dynamic arrays!
So instead of:
dictionary := { $a -> 1. $b -> 2. $c -> 3 } asDictionary.
I need to type:
dictionary := Dictionary new add: $a -> 1; add: $b -> 2; add: $c -> 3; yourself.
? In my opinion the other dialects should adopt this or propose another way of doing it.
Interesting that, given yout three replies, we seem to disagree on everything but the usefulness of the brace syntax! :-P
I'm also very much in favor of the brace syntax. Personally, I think a lot in terms of "list of things to work on", and just seeing the list is much simpler than having to parse a "Array with: a with: b with: c" method. Granted, this is an extreme case but I mean, all I want to see is a,b,c and yet I see 17 (out of 20) extraneous alphabetic characters.
Not to mention that brace syntax helps keeping methods short by making some line breaks useless (e.g. in the previous example I'd write the #with:with:with: call on 4 line!).
If you want to start interesting discussion on ansi-smalltalk@lists.openskills.org (the was-ANSI-Smalltalk-now-STEP-project mailing list), you could try your hands at writing a specification for this extension, at http://smalltalk.gnu.org/step/syntax-extensions-and-corrections-non-literal-...
See also http://smalltalk.gnu.org/step/step-specification-and-workflow for what is part of a STEP (Smalltalk Enhancement Proposal). In this case you don't even need a reference implementation because Squeak and GNU Smalltalk already implement the brace syntax, and VW has it in a separate package (see also http://www.cincomsmalltalk.com/publicRepository/BraceConstructor.html for more info).
Paolo
On Thu, 15 May 2008 09:42:38 +0200 Paolo Bonzini bonzini@gnu.org wrote:
Jason Johnson wrote:
On Wed, Mar 5, 2008 at 10:23 PM, David Mitchell david.mitchell@gmail.com wrote:
Brace notation for dynamic arrays!
So instead of:
dictionary := { $a -> 1. $b -> 2. $c -> 3 } asDictionary.
I need to type:
dictionary := Dictionary new add: $a -> 1; add: $b -> 2; add: $c -> 3; yourself.
? In my opinion the other dialects should adopt this or propose another way of doing it.
Here's another way of doing it. See the attached change set (released under the MIT license; both lines of it :-) ).
It lets you do:
'one',, 'two',, 'three' "an OrderedCollection('one' 'two' 'three')"
($a -> 1),, ($b -> 2),, ($c -> 3) "a Dictionary($a->1 $b->2 $c->3 )"
Gulik.
'one',, 'two',, 'three' "an OrderedCollection('one' 'two' 'three')"
($a -> 1),, ($b -> 2),, ($c -> 3) "a Dictionary($a->1 $b->2 $c->3 )"
Sort of... what about a method that just does "^{ a. b. c }" but "a" can be a Collection? You cannot rewrite it as "^a,, b,, c" and you need #with:with:with:.
My point is that braces are just a shortcut for Array>>#with:with:with: -- they have nothing to do with fancy polymorphism.
Paolo
Why not just implement your own #asDictionary message on SequencableCollection, if it's that much of an issue?
asDictionary "Answer a Dictionary with receivers elements. Assumes all elements are associations" | dict | dict := Dictionary new. self do: [:each | dict add: each]. ^dict
That will do what you're asking.
John.
Jason Johnson wrote:
On Wed, Mar 5, 2008 at 10:23 PM, David Mitchell david.mitchell@gmail.com wrote:
Brace notation for dynamic arrays!
So instead of:
dictionary := { $a -> 1. $b -> 2. $c -> 3 } asDictionary.
I need to type:
dictionary := Dictionary new add: $a -> 1; add: $b -> 2; add: $c -> 3; yourself.
? In my opinion the other dialects should adopt this or propose another way of doing it. No concise syntax for dynamically creating a collection seems a problem to me, and easy to remedy in a language where one has access to the reader/compiler. So why would it be bad to do so?
John: that was not the question at all ;)
Folks: if you continue this thread, can you *please* rename it appropriately?
Thanks,
- Bert -
On 20.05.2008, at 12:28, John Thornborrow wrote:
Why not just implement your own #asDictionary message on SequencableCollection, if it's that much of an issue?
asDictionary "Answer a Dictionary with receivers elements. Assumes all elements are associations" | dict | dict := Dictionary new. self do: [:each | dict add: each]. ^dict
That will do what you're asking.
John.
Jason Johnson wrote:
On Wed, Mar 5, 2008 at 10:23 PM, David Mitchell david.mitchell@gmail.com wrote:
Brace notation for dynamic arrays!
So instead of: dictionary := { $a -> 1. $b -> 2. $c -> 3 } asDictionary. I need to type: dictionary := Dictionary new add: $a -> 1; add: $b -> 2; add: $c -> 3; yourself. ? In my opinion the other dialects should adopt this or propose another way of doing it. No concise syntax for dynamically creating a collection seems a problem to me, and easy to remedy in a language where one has access to the reader/compiler. So why would it be bad to do so?
-- John Thornborrow http://www.pinesoft.co.uk
This email is from Pinesoft Limited. Its contents are confidential to the intended recipient(s) at the email address(es) to which it has been addressed. It may not be disclosed to or used by anyone other than the addressee(s), nor may it be copied in anyway. If received in error, please contact the sender, then delete it from your system. Although this email and attachments are believed to be free of virus, or any other defect which might affect any computer or IT system into which they are received and opened, it is the responsibility of the recipient to ensure that they are virus free and no responsibility is accepted by Pinesoft for any loss or damage arising in any way from receipt or use thereof.
Pinesoft Limited are registered in England, Registered number: 2914825. Registered office: 266-268 High Street, Waltham Cross, Herts, EN8 7EA
squeak-dev@lists.squeakfoundation.org