The assignment character in 3.9 and onward

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

Re: The assignment character in 3.9 and onward

Ralph Johnson
On 6/8/06, Klaus D. Witzel <[hidden email]> wrote:
> On Thu, 08 Jun 2006 13:33:55 +0200, Lic. Edgar J. De Cleene wrote:
> >
> > I wonder why not use <- , two characters as := , but closer to original
> > idea.

This is a bad idea, because you would be different from other
Smalltalks for no good reason.  The right solution is to make the
editor smarter.  That way you get compatibility AND a good user
interface.

-Ralph Johnson

Reply | Threaded
Open this post in threaded view
|

Re: The assignment character in 3.9 and onward

Duncan Mak-2
On 6/8/06, Ralph Johnson <[hidden email]> wrote:
On 6/8/06, Klaus D. Witzel <[hidden email]> wrote:
> On Thu, 08 Jun 2006 13:33:55 +0200, Lic. Edgar J. De Cleene wrote:
> >
> > I wonder why not use <- , two characters as := , but closer to original
> > idea.

This is a bad idea, because you would be different from other
Smalltalks for no good reason.  The right solution is to make the
editor smarter.  That way you get compatibility AND a good user
interface.

I agree 100%.

I'm surprised that no one mentioned it, but for me, a big reason why I missed having the good ol' left arrow is because := just takes so many keys to type.

I've been working on a patch to add a new keyboard shortcut to ParagraphEditor to allow control-= to insert assignment. For now, I'll definitely make it insert ':=', because that's the way things are going.

Duncan.


Reply | Threaded
Open this post in threaded view
|

Re: The assignment character in 3.9 and onward

Klaus D. Witzel
Ah. Seems that just another misunderstanding slipped into the thread.  
Please correct me, such that at least this one is crystal clear:

My understanding of Edgar's question/suggestion was that, instead of ':=',  
the Squeak community (can) choose to use '<-'.

This (':=' versus: '<-') has nothing to do with ((underline versus:  
single_keystroke_left_arrow) versus: ':='), at least this is my position.

/Klaus

(0.5 * OT) I strongly believe that one or the other Squeaker will make a  
change set which allows her / him to change Squeak assignment  
character(s)+glyph(s) just the way they want. This is what Smalltalk is  
about: don't like it? change it!

On Thu, 08 Jun 2006 17:40:01 +0200, Duncan Mak <[hidden email]> wrote:

> On 6/8/06, Ralph Johnson <[hidden email]> wrote:
>>
>> On 6/8/06, Klaus D. Witzel <[hidden email]> wrote:
>> > On Thu, 08 Jun 2006 13:33:55 +0200, Lic. Edgar J. De Cleene wrote:
>> > >
>> > > I wonder why not use <- , two characters as := , but closer to
>> original
>> > > idea.
>>
>> This is a bad idea, because you would be different from other
>> Smalltalks for no good reason.  The right solution is to make the
>> editor smarter.  That way you get compatibility AND a good user
>> interface.
>
>
> I agree 100%.
>
> I'm surprised that no one mentioned it, but for me, a big reason why I
> missed having the good ol' left arrow is because := just takes so many  
> keys
> to type.
>
> I've been working on a patch to add a new keyboard shortcut to
> ParagraphEditor to allow control-= to insert assignment. For now, I'll
> definitely make it insert ':=', because that's the way things are going.
>
> Duncan.



Reply | Threaded
Open this post in threaded view
|

Re: The assignment character in 3.9 and onward

Janko Mivšek
In reply to this post by Ralph Johnson
Dear Squeakers,

As a newcomer to Squeak, slowly coming from other Smalltalk and a
supporter of as much unified Smalltalk world as possible, I strongly
hope that you will choose := for an assignment operator (or one of
them). Some reasons:

- consistence with other Smalltalks,
- consistence with other languages,
- lower barrier of entry for newcomers.

Best regards
Janko

Ralph Johnson wrote:

> On 6/8/06, Klaus D. Witzel <[hidden email]> wrote:
>> On Thu, 08 Jun 2006 13:33:55 +0200, Lic. Edgar J. De Cleene wrote:
>> >
>> > I wonder why not use <- , two characters as := , but closer to original
>> > idea.
>
> This is a bad idea, because you would be different from other
> Smalltalks for no good reason.  The right solution is to make the
> editor smarter.  That way you get compatibility AND a good user
> interface.
>
> -Ralph Johnson
>

Reply | Threaded
Open this post in threaded view
|

Re: The assignment character in 3.9 and onward

Jecel Assumpcao Jr
In reply to this post by Duncan Mak-2
Duncan Mak wrote on Thu, 8 Jun 2006 11:40:01 -0400
> I'm surprised that no one mentioned it, but for me, a big reason why I missed
> having the good ol' left arrow is because := just takes so many keys to type.

Exactly - there are two entirely separate issues relating to the
assignment character: how to type it and how it is displayed by the
various hardware/software combinations.

I would just like to take a small detour into the history of character
sets for those who keep complaining that Squeak "hijacked" the underline
character. As we can see in
http://homepages.cwi.nl/~dik/english/codes/stand.html there was no
underline character in the 1963 proposal for ASCII. In 1965 the up and
left arrows were replaced by the now familiar caret and underline
characters, but by then the uppercase-only older version was already in
use in printers and popular teletype terminals. It is easy to say that
when Xerox PARC was founded this was already ancient history and they
should have adopted the final version of ASCII but things don't easily
change that fast - at the computer center where I worked in 1982 all our
teletypes still had no lowercase, caret nor underline characters. And
this is why we call a method #helpWithTopic: instead of
#help_with_topic: like many other languages.

It is interesting that the original IBM PC video hardware did include
characters for all four arrows, with 16r18 as the up arrow and 16r1B as
the left arrow. So when Digitalk introduced their Methods text based
system in 1985 they could have used these. But they would have been very
awkward to type (specially with the left arrow having the same character
code as ESC) and since their target audience was Pascal programmers (all
examples in the first part of their manual include the Pascal equivalent
of the Smalltalk code) they decided to change the assignment to
something that would be more familiar to them and would look good when
printed on the ASCII dot matrix printers of the time.

Now we have Unicode and several nice arrows to choose from while letting
the underline be just an underline. Certainly it is far from trivial to
make this change without messing up old code but I think it would be
worth the effort. But even if this is done there still wouldn't be a
good way to type in these characters, so Duncan's proposed patch would
be very important.

-- Jecel

Reply | Threaded
Open this post in threaded view
|

Re: The assignment character in 3.9 and onward

dpharris
In reply to this post by Duncan Mak-2
Esthetically I would like to see assignment *displayed* as a
left-arrow.  This is the original Smalltalk usage, and I think it is
elegant.  Just because technology limits this use, is not a reason to
reject it or prevent it.  However, we should support ANSI standards.  
Therefore, this should be made a preference, defaulting to ANSI.  I
think the argument it is more similar to other languages is a non-starter.

Practically, more than one form of entry should be acceptable, and again
should be included in the preferences.  Whether this be in an editor, or
in the parser is arguable and good arguments have been made.  Underline
should probably be defaulted off, to allow the use in file names, etc.

As for off line storage of code, I would agree that we should support
ANSI standard, as it would allow the greatest reuse in different
Smalltalks.

David



Jecel Assumpcao Jr wrote:

>Duncan Mak wrote on Thu, 8 Jun 2006 11:40:01 -0400
>  
>
>>I'm surprised that no one mentioned it, but for me, a big reason why I missed
>>having the good ol' left arrow is because := just takes so many keys to type.
>>    
>>
>
>Exactly - there are two entirely separate issues relating to the
>assignment character: how to type it and how it is displayed by the
>various hardware/software combinations.
>
>I would just like to take a small detour into the history of character
>sets for those who keep complaining that Squeak "hijacked" the underline
>character. As we can see in
>http://homepages.cwi.nl/~dik/english/codes/stand.html there was no
>underline character in the 1963 proposal for ASCII. In 1965 the up and
>left arrows were replaced by the now familiar caret and underline
>characters, but by then the uppercase-only older version was already in
>use in printers and popular teletype terminals. It is easy to say that
>when Xerox PARC was founded this was already ancient history and they
>should have adopted the final version of ASCII but things don't easily
>change that fast - at the computer center where I worked in 1982 all our
>teletypes still had no lowercase, caret nor underline characters. And
>this is why we call a method #helpWithTopic: instead of
>#help_with_topic: like many other languages.
>
>It is interesting that the original IBM PC video hardware did include
>characters for all four arrows, with 16r18 as the up arrow and 16r1B as
>the left arrow. So when Digitalk introduced their Methods text based
>system in 1985 they could have used these. But they would have been very
>awkward to type (specially with the left arrow having the same character
>code as ESC) and since their target audience was Pascal programmers (all
>examples in the first part of their manual include the Pascal equivalent
>of the Smalltalk code) they decided to change the assignment to
>something that would be more familiar to them and would look good when
>printed on the ASCII dot matrix printers of the time.
>
>Now we have Unicode and several nice arrows to choose from while letting
>the underline be just an underline. Certainly it is far from trivial to
>make this change without messing up old code but I think it would be
>worth the effort. But even if this is done there still wouldn't be a
>good way to type in these characters, so Duncan's proposed patch would
>be very important.
>
>-- Jecel
>
>
>
>  
>



Reply | Threaded
Open this post in threaded view
|

Re: The assignment character in 3.9 and onward

Schwab,Wilhelm K
In reply to this post by Duncan Mak-2
Ralph,

=============================
> I do not see it that way at all.  Squeak's handling/abuse of
underscores
> has been a pain to me for a long time, and I am apparently not alone.
> Please note that I am proposing a solution that would let you type _
for
> assignment.  However, I am convinced that it was a mistake to allow
what
> should be an editor macro to get built into the compiler and tarnish
the
> sources.

You didn't answer his question.  He wanted to know why it was a pain.
He already knew that someone thought it was a pain.  He argued that it
was not a pain because you could easily convert from one form to
another, and he wanted to know why his argument was wrong.
=============================

I didn't avoid the question: I redirected it, if that.  My point is
clear, and I stated clearly.  The mistake is abusing the underscore, and
doing so in the compiler/sources rather than the editor.




=============================
The use of an equal
sign for assignment is really stupid and one of the arbitrary and
unintuitive communication choices that programmers have made.  := is a
little better, but not much.  Left arrow makes it obvious that a value
is moving from the right to the left.
=============================

I don't care what glyph people want to use, as long as it is not a
character that should be left free for use elsewhere.  By all means, use
unicode to add a proper back arrow if you wish.

Bill



Wilhelm K. Schwab, Ph.D.
University of Florida
Department of Anesthesiology
PO Box 100254
Gainesville, FL 32610-0254

Email: [hidden email]
Tel: (352) 846-1285
FAX: (352) 392-7029


Reply | Threaded
Open this post in threaded view
|

Re: The assignment character in 3.9 and onward

Schwab,Wilhelm K
In reply to this post by Duncan Mak-2
Ralph,

=========================
> On Thu, 08 Jun 2006 13:33:55 +0200, Lic. Edgar J. De Cleene wrote:
> >
> > I wonder why not use <- , two characters as := , but closer to
original
> > idea.

This is a bad idea, because you would be different from other
Smalltalks for no good reason.  The right solution is to make the
editor smarter.  That way you get compatibility AND a good user
interface.
=========================

FWIW, that is precisely what I have been saying all along.

Bill




Wilhelm K. Schwab, Ph.D.
University of Florida
Department of Anesthesiology
PO Box 100254
Gainesville, FL 32610-0254

Email: [hidden email]
Tel: (352) 846-1285
FAX: (352) 392-7029


Reply | Threaded
Open this post in threaded view
|

Re: The assignment character in 3.9 and onward

Wolfgang Helbig-2
In reply to this post by Duncan Mak-2
Squeakers,

>*yes*, the "pascalish" ":=" assignment is ANSI and it should be used as

It stems from Algol 60. And Algol 60 inherited it from mathematics, where it is
used to "define" something. Algol 60 was not only used as a programming language
but also as a mathematical notation to describe algorithms concisely and
unambiguously.

As a mathematical notation Algol 60 used strange symbols. So something that
resembles a little "v" is the boolean "or" operator. These symbols were employed
regardless of the limitations imposed by keyboards and display devices.

Nowadays Smalltalk offers all the flexibility needed. The scanner in my image,
that originated from Squeak 1.18, does not accept ":=" any more. I simply do not
need it. In the tradition of mathematics and Algol 60 I have the human reader in
mind when composing a method, and if a computer program cannot cope with my
preferences, I prefer to adapt the program to my taste instead of adapting my
taste to the limitations of some "standards".

Regards,
Wolfgang
--
Weniger, aber besser.


Reply | Threaded
Open this post in threaded view
|

Re: The assignment character in 3.9 and onward

stéphane ducasse-2
In reply to this post by Klaus D. Witzel
It would be nice to consider that lot of people are migrating back  
and forth code between
VW, Dolphin, Squeak. But apparently nobody cares of them....

Stef

Using := is not an aesthetic reason. We have much better reason to be  
incompatible.

Reply | Threaded
Open this post in threaded view
|

Re: The assignment character in 3.9 and onward

David T. Lewis
In reply to this post by Wolfgang Helbig-2
Wolfgang,

Thanks for this explanation. It's good to know the background.

On Fri, Jun 09, 2006 at 08:33:10AM +0200, Wolfgang Helbig wrote:

> Squeakers,
>
> >*yes*, the "pascalish" ":=" assignment is ANSI and it should be used as
>
> It stems from Algol 60. And Algol 60 inherited it from mathematics, where it is
> used to "define" something. Algol 60 was not only used as a programming language
> but also as a mathematical notation to describe algorithms concisely and
> unambiguously.
>
> As a mathematical notation Algol 60 used strange symbols. So something that
> resembles a little "v" is the boolean "or" operator. These symbols were employed
> regardless of the limitations imposed by keyboards and display devices.
>
> Nowadays Smalltalk offers all the flexibility needed. The scanner in my image,
> that originated from Squeak 1.18, does not accept ":=" any more. I simply do not
> need it. In the tradition of mathematics and Algol 60 I have the human reader in
> mind when composing a method, and if a computer program cannot cope with my
> preferences, I prefer to adapt the program to my taste instead of adapting my
> taste to the limitations of some "standards".

Reply | Threaded
Open this post in threaded view
|

Re: The assignment character in 3.9 and onward

Klaus D. Witzel
In reply to this post by stéphane ducasse-2
On Fri, 09 Jun 2006 11:14:57 +0200, stéphane ducasse wrote:

> It would be nice to consider that lot of people are migrating back and  
> forth code between
> VW, Dolphin, Squeak. But apparently nobody cares of them....

This should be the easiest one, Preferences fileOutUsesAnsiAssignment:  
true. And then, on the fileOut/fileIn context menus:

...fileOut (Squeak)
...fileOut (Ansi)

...fileIn (Squeak)
...fileIn (Ansi)

The above might look as if it where code bloat but then, for example, the  
cr lf conventions also suffer from code bloat.

/Klaus

> Stef
>
> Using := is not an aesthetic reason. We have much better reason to be  
> incompatible.

:) But the same can be said for

Using <- is not an aesthetic reason. We have much better reason to be  
incompatible.


12