A Lisper asks, "Am I supposed to like Smalltalk?"

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

RE: A Lisper asks, "Am I supposed to like Smalltalk?"

Ron Teitelbaum
If you really love functions you can have one class and one method do
everything!  :)

Ron

> -----Original Message-----
> From: [hidden email] [mailto:squeak-dev-
> [hidden email]] On Behalf Of Stéphane Rollandin
> Sent: Wednesday, May 17, 2006 4:03 AM
> To: The general-purpose Squeak developers list
> Subject: Re: A Lisper asks, "Am I supposed to like Smalltalk?"
>
> Alan Lovejoy wrote:
> > Link:
> > http://i-need-closures.blogspot.com/2006/05/am-i-supposed-to-like-
> smalltalk.
> > html
> >
>
> "
> Second is the 'OOP all the way' flavor of the Smalltalk language.
> Sometimes a function is just a function, and doesn't need to be in a
> class. I prefer the options that Lisp provides, I use imperative, OO,
> and functional, depending on the problem.
> "
>
> this is now possible with LambdaMessageSend (on Squeakmap). a function
> can be just a function
>
>
> Stef
>



Reply | Threaded
Open this post in threaded view
|

RE: A Lisper asks, "Am I supposed to like Smalltalk?"

Michael Latta
In reply to this post by Gilrandir
You are correct.  I was not trying to say they are wrong for wanting things
they way they are used to.  I was instead trying to encourage them to step
out of those habits a bit more.

I work all day on Java code in Eclipse so I am quite used to that method of
working.  What I find is that the methods get longer and less modular
because there is just this long linear presentation.  I also find that most
of the time I am looking for something specific and the organization
presented in the Smalltalk browser is superior for getting from point A to
point B.  I hate tree controls because they never show enough.  Once you
expand the children of an item all its peers scroll off the screen.  On the
project I work with the number of packages and classes and methods is large
enough that linear browsing/navigation is impractical.  So I find the quick
ability to go to definitions/references (implementers/senders) to be far
more useful.  I also find that having multiple open windows lets me see as
many things at once as I like, where the Eclipse system lets me only see one
file and one region of that file at a time, unless I spawn an entire window
with all the heavy border widgets and such.  My work style is also probably
affected by having a large monitor to spread things out on (30").

Michael

 

-----Original Message-----
From: [hidden email]
[mailto:[hidden email]] On Behalf Of Viktor
Svub
Sent: Wednesday, May 17, 2006 2:02 AM
To: [hidden email]
Subject: Re: A Lisper asks, "Am I supposed to like Smalltalk?"

although i personally like the smalltalk browser style much better, i
think we shouldn't just tell 'the others' "our approach is better, so
you have to use it" ...with all the "anything is possible with
smalltalk" talk on the other hand. we sure have a lot of ways to
represent all the methods for a class in a single editable stream (chunk
format?), so why not? some people will just feel more comfortable that
way ^_^

Michael Latta wrote:
> While keeping your hands on the keyboard should in theory be more
efficient,
> I have found that the presentation/treatment of methods as separate units
of

> work has more benefit than cost.  Having all the source in one long
> scrolling text area (as in Java or C#) results in a very different coding
> style and organization that is not as productive (at least for all those I
> know have used both environments at the master level).
>
> Michael
>
>
>
> -----Original Message-----
> From: [hidden email]
> [mailto:[hidden email]] On Behalf Of Chris
> Patrick Schreiner
> Sent: Tuesday, May 16, 2006 11:40 PM
> To: The general-purpose Squeak developers list
> Subject: Re: A Lisper asks, "Am I supposed to like Smalltalk?"
>
>
>>First of all is the environment/IDE. With Lisp/Emacs/Slime, or for  
>>that matter Java/Netbeans, to write method after method, you can  
>>just type. What I saw in Squeak was a bad combination of mousing  
>>and typing. You have to click in the '--all--' window of methods,  
>>then mouse down to the editing pane, and replace text, then save,  
>>then do it again for the next method. I'm sure this is a YMMV  
>>thing, but these mini-interruptions sure wouldn't keep me in 'flow'  
>>as much as just typing.
>
>
> I totally agree with this though
>
>
>



Reply | Threaded
Open this post in threaded view
|

TMB installation tip

Simon Michael
In reply to this post by Herbert König
During installation from squeakmap, into 3.9 at least, there is a "no
installer found for package ..." error. You can work around by downloading
and installing the .mcz's from
http://kilana.unibe.ch:8888/TracingMessagesBrows/ . I believe it's just on
by default in all the usual browsers, unless you disable the traceMessages
preference.


Reply | Threaded
Open this post in threaded view
|

Re: A Lisper asks, "Am I supposed to like Smalltalk?"

Chris Muller-2
In reply to this post by Chris Patrick Schreiner
Did you notice the commentary below the main blog article?  One of the commentators pointed out that you can, in fact, easily just keep typing in methods.
 
 Instead of pressing Return/Enter and starting the next method, just press Command+a and start typing the next method.
 
 It's no slower, no less cumbersome, but it sure is simple.  The guy just didn't take the time to discover it..

----- Original Message ----
From: Chris Patrick Schreiner <[hidden email]>
To: The general-purpose Squeak developers list <[hidden email]>
Sent: Wednesday, May 17, 2006 1:41:45 AM
Subject: Re: A Lisper asks, "Am I supposed to like Smalltalk?"

> First of all is the environment/IDE. With Lisp/Emacs/Slime, or for
> that matter Java/Netbeans, to write method after method, you can
> just type. What I saw in Squeak was a bad combination of mousing
> and typing. You have to click in the '--all--' window of methods,
> then mouse down to the editing pane, and replace text, then save,
> then do it again for the next method. I'm sure this is a YMMV
> thing, but these mini-interruptions sure wouldn't keep me in 'flow'
> as much as just typing.

I totally agree with this though






Reply | Threaded
Open this post in threaded view
|

Re: A Lisper asks, "Am I supposed to like Smalltalk?"

Zulq Alam
In reply to this post by Herbert König
Herbert König wrote:
> Really try the TracingMessagesBrowser, it needs magma base additions
> and magma exceptions (don't have an image handy for correct names),
> all on SM.
>
>  
I haven't had a chance to use it in any great depth but this does look
very promising indeed, thank you.

I second Duncan's suggestion for putting it in the default 3.9 image and
if you like I can try and help but bear in mind I am still learning.









Reply | Threaded
Open this post in threaded view
|

RE: A Lisper asks, "Am I supposed to like Smalltalk?"

Ramon Leon
In reply to this post by Alan L. Lovejoy
> For example, one of the people who responded to the blog
> message said "A program is text".  But in Smalltalk, a
> program is not text, it is objects.  A program is a set of
> classes.  The classes and methods are not just represented by
> objects in Smalltalk, they *are* objects in Smalltalk.  The
> browser is an editor of classes and methods.  Yes, we can
> export classes and methods to text files, but the text files
> are not the way Smalltalk programmers think about programs.  
> The browser is how we think about programs, and the browser
> is an editor of objects that happen to be classes and
> methods.  In Smalltalk, a program is not text.
>
> -Ralph Johnson

This for me, was the biggest adjustment to make when coming to
Smalltalk, as well as the most enlightening experience.  There are no
files, only objects.  People from the outside don't understand just how
deep objects go when we say Smalltalk is object oriented, the term
object oriented is so overloaded they don't expect much difference from
Java or C#.  People expect files, text files, compiling and starting a
program, stopping a program, saving and versioning their programs files.
When they don't find these things, their guard goes up, it's an alien
environment and suddenly everything feels wrong.

They don't understand the concept of only "runtime".  When they try
Squeak, they also never play with it long enough to discover its
subtleties, things like adding classes/methods by using an existing
class/method as a template, or just overwriting the existing
class/method and knowing that because the name is different it'll add a
new one.  When I first started Squeak, for the longest time, I couldn't
figure out how to add a class, it never occurred to me that the thing
below was a template meant to be edited, I was afraid to change it
because I thought I'd break something, I was looking for the "add class"
menu option somewhere.  Subtle things like using the mouse over a pane
to control the active pane and the other hand on the keys to navigate
the current pane.  I'm actually annoyed now when not in squeak and the
mouse doesn't activate the pane it's hovering over.  Things like how
much cool stuff is in the context menu, or shift + context menu.
Reclassifying a class or method, I was so in the text mindset, it never
occurred to me that you could just pick up a class/method and move it,
with drag and drop, I actually discovered that by accident.  

Time after time I've tripped over how dam smart the browser is when I
wasn't expecting it to be, and I love it.  The Squeak browser is so
deep, yet seemingly so simply looking, it's impossible not to overlook
how cool it is unless someone actually points it out to you or you have
an extremely open mind and enjoy being totally out of your element.
Trying Squeak, is really a bad way to "get it", watching a video of an
expert Squeaker is much more likely to get someone excited about it.

  -- Ramon Leon

Reply | Threaded
Open this post in threaded view
|

Re: A Lisper asks, "Am I supposed to like Smalltalk?"

Zulq Alam
Ramon Leon wrote:
> Trying Squeak, is really a bad way to "get it", watching a video of an
> expert Squeaker is much more likely to get someone excited about it.
>
>  
Is there a secret stash of these videos somewhere?

Reply | Threaded
Open this post in threaded view
|

Re: A Lisper asks, "Am I supposed to like Smalltalk?"

Chris Muller-2
In reply to this post by Zulq Alam

> As someone who really misses the flexibility of a flat file *and* IDE
navigation could you explain the benefits to me?

 As someone who works in Java/eclipse every day, I find scrolling through the flat-files hard on my eyes and a total mess.  The other thing that flat-file people seem to like are huge scrolling lists of packages, classes, methods, whatever.  Isn't it easier to simply type a few letters of what you want and make the computer show you a narrow list of choices?
 
 > Things I can't easily do now are:

>    - Look at more than one method at the same.
 
 Two browsers, side-by-side.
 
>    - Edit more than one method at the same time.
 
 Two browsers.  Navigation within a single "text file" is just different keystrokes/mouse movements than navigation between windows, right?
 
>    - Show how code is related by spatial relation to other code.
 
 Not sure what this means..
 
 >    - Move around a class in a fuzzy way, e.g. Page Up/Down, Ctrl+End in
Windows.
 
 I assume you want to page up through the source and method declarations.  I suppose you could file-out the class..
 
 >    - Look at class declaration stuff easily (is there or could there be
a key for this?). I'd just use Ctrl+Home in Windows to get to the top of
a Java file.
 
 Command+h on the class pane.
 
>    - Jump around the class method by method Ctrl+Shift+Down/Up in
Eclipse - Squeak might be able to do this?
 
 Sure, just arrow up/down the list of methods..
 
>    - Print out a class (though I haven't even tried this in Squeak)
 
 File it out and print it.

> With regard to showing how code is related, has anyone looked into
multiple categories for methods? Less about saying what a method does
but more about what methods it's related to (so maybe not a category at
all).

VisualAge does this.  Its more complex and I don't think it added much value.






Reply | Threaded
Open this post in threaded view
|

Re: A Lisper asks, "Am I supposed to like Smalltalk?"

Chris Muller-2
In reply to this post by Zulq Alam

> As someone who really misses the flexibility of a flat file *and* IDE
navigation could you explain the benefits to me?

 As someone who works in Java/eclipse every day, I find scrolling through the flat-files hard on my eyes and a total mess.  The other thing that flat-file people seem to like are huge scrolling lists of packages, classes, methods, whatever.  Isn't it easier to simply type a few letters of what you want and make the computer show you a narrow list of choices?
 
 > Things I can't easily do now are:

>    - Look at more than one method at the same.
 
 Two browsers, side-by-side.
 
>    - Edit more than one method at the same time.
 
 Two browsers.  Navigation within a single "text file" is just different keystrokes/mouse movements than navigation between windows, right?
 
>    - Show how code is related by spatial relation to other code.
 
 Not sure what this means..
 
 >    - Move around a class in a fuzzy way, e.g. Page Up/Down, Ctrl+End in
Windows.
 
 I assume you want to page up through the source and method declarations.  I suppose you could file-out the class..
 
 >    - Look at class declaration stuff easily (is there or could there be
a key for this?). I'd just use Ctrl+Home in Windows to get to the top of
a Java file.
 
 Command+h on the class pane.
 
>    - Jump around the class method by method Ctrl+Shift+Down/Up in
Eclipse - Squeak might be able to do this?
 
 Sure, just arrow up/down the list of methods..
 
>    - Print out a class (though I haven't even tried this in Squeak)
 
 File it out and print it.

> With regard to showing how code is related, has anyone looked into
multiple categories for methods? Less about saying what a method does
but more about what methods it's related to (so maybe not a category at
all).

VisualAge does this.  Its more complex and I don't think it added much value.






Reply | Threaded
Open this post in threaded view
|

RE: A Lisper asks, "Am I supposed to like Smalltalk?"

Ramon Leon
In reply to this post by Alan L. Lovejoy
>
> Ramon Leon wrote:
> > Trying Squeak, is really a bad way to "get it", watching a
> video of an
> > expert Squeaker is much more likely to get someone excited about it.
> >
> >  
> Is there a secret stash of these videos somewhere?
>

Not that I know of, I just happen to have an extremely open mind and
enjoy being totally out of my element.  I knew Smalltalk was cool, and I
just kept digging into it till I found out why, but that's not what most
will do.

Reply | Threaded
Open this post in threaded view
|

Re: A Lisper asks, "Am I supposed to like Smalltalk?"

Trygve
In reply to this post by Chris Patrick Schreiner
At 08:40 17.05.2006, Chris Patrick Schreiner wrote:

>>First of all is the environment/IDE. With Lisp/Emacs/Slime, or for
>>that matter Java/Netbeans, to write method after method, you can
>>just type. What I saw in Squeak was a bad combination of mousing
>>and typing. You have to click in the '--all--' window of methods,
>>then mouse down to the editing pane, and replace text, then save,
>>then do it again for the next method. I'm sure this is a YMMV
>>thing, but these mini-interruptions sure wouldn't keep me in 'flow'
>>as much as just typing.
>
>I totally agree with this though

Squeak is equally convenient:
1) Do the mouse clicks to be ready for the first method.
2) Ctr-a to select all
3) Type the method code.
4) Ctr-s to accept
- repeat from 2 for next method.

Cheers
--Trygve



--

Trygve Reenskaug      mailto: [hidden email]
Morgedalsvn. 5A       http://heim.ifi.uio.no/~trygver
N-0378 Oslo           Tel: (+47) 22 49 57 27
Norway



Reply | Threaded
Open this post in threaded view
|

Re: A Lisper asks, "Am I supposed to like Smalltalk?"

Zulq Alam
In reply to this post by Chris Muller-2
Chris Muller wrote:
>> As someone who really misses the flexibility of a flat file *and* IDE
>>    
> navigation could you explain the benefits to me?
>
>  As someone who works in Java/eclipse every day, I find scrolling through the flat-files hard on my eyes and a total mess.  
In Eclipse you can either navigate using the explorer and outline *or*
you can scroll. Are you sure it's not just the Java you're finding hard
on your eyes? :-)

> The other thing that flat-file people seem to like are huge scrolling lists of packages, classes, methods, whatever.  Isn't it easier to simply type a few letters of what you want and make the computer show you a narrow list of choices?
>  
Ctrl+H brings up a rather inelegant search dialog which will show you a
list of choices, narrow depending on your criteria. So if you know what
to search for you can, if you don't know what to search for you can look
at the list in the file.

>  
>  Two browsers.  Navigation within a single "text file" is just different keystrokes/mouse movements than navigation between windows, right?
>  
I should have said two or more. It's an issue of screen real estate.
Each editor can deal with all the methods in a class. You can then have
multiple editors. A Smalltalk editor can only edit one method at a time,
i.e. you can't move away from code that does not compile and that you do
not want to save.

The tracing message browser is an improvement as you can easily switch
between related methods. If you select a different method with a dirty
editor it will open a new browser which is better but still not right.
You should be able to browse independently of the changes you are making
without forking.

>  
>  
>>    - Show how code is related by spatial relation to other code.
>>    
>  
>  Not sure what this means..
>  
A poor mans categories I guess. Put members that are related near each
other. Distance unrelated ones with additional whitespace and or comments.

>  
>  >    - Move around a class in a fuzzy way, e.g. Page Up/Down, Ctrl+End in
> Windows.
>  
>  I assume you want to page up through the source and method declarations.  I suppose you could file-out the class..
>  
It's maybe like glancing at a few of the methods in another category
with one or two key strokes. The key stroke may not get you exactly
there but it'll get you close enough. It's fuzzy because the page may
straddle one or more categories and this may be what you want. You could
even switch between a few quite easily once you get your bearings in the
file. There may not even be any logical ordering of the file but you'll
soon get your bearings anyway as above and below are easy concepts for
us to internalise.

>  
>  >    - Look at class declaration stuff easily (is there or could there be
> a key for this?). I'd just use Ctrl+Home in Windows to get to the top of
> a Java file.
>  
>  Command+h on the class pane.
>  
Thanks for the +H, helps get to the top of the editor - which I didn't
know for Squeak. In a Java file I would have used this to look at the
class declaration and first few member variables located at the top of a
file. When looking at a method, the equivalent in Squeak is one mouse
click to look at a different classes definition and *two* mouse clicks
to look at that methods class definition!

>  
>  
>>    - Jump around the class method by method Ctrl+Shift+Down/Up in
>>    
> Eclipse - Squeak might be able to do this?
>  
>  Sure, just arrow up/down the list of methods..
>  
Firstly, you have to save any changes you've made in the editor and
ensure they compile before you can do this or open another browser.

Secondly, you need to use the mouse to move the focus to the list.



Reply | Threaded
Open this post in threaded view
|

Re: A Lisper asks, "Am I supposed to like Smalltalk?"

timrowledge

On 17-May-06, at 12:04 PM, Zulq Alam wrote:


>>
> I should have said two or more. It's an issue of screen real  
> estate. Each editor can deal with all the methods in a class. You  
> can then have multiple editors. A Smalltalk editor can only edit  
> one method at a time, i.e. you can't move away from code that does  
> not compile and that you do not want to save.
So you open another browser on the same class and/or method and there  
yo uhave it. I almost always have at least 3 browsers open - one I'm  
editing in, another I can look at the older version of the same  
method or othermethods in the class and the last looking at related  
methods around the system or finding users of the class etc.

And for you youngsters out there, this works perfectly well on  
limited screen space. My first Smalltalk system had a 640 * 400  
monochrome screen. This is what *overlapping* windows were invented  
to deal with. It's virtual memory for screen space. 20 browsers of  
various sorts is common on my system and always has been. A 20"  
display just makes them bigger.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful random insult:- Life by Norman Rockwell, but screenplay by  
Stephen King.



Reply | Threaded
Open this post in threaded view
|

RE: A Lisper asks, "Am I supposed to like Smalltalk?"

Alan L. Lovejoy
In reply to this post by Zulq Alam


Zulq: "Is there a secret stash of these videos somewhere?"

Not that I know of.

Those of us "old timers" who went through the learning cure on Smalltalk
years ago no longer clearly remember what it was like, nor what the
conceptual stumbling blocks were.  We have now fully internalized the
"Smalltalk way," and don't really grok why newcomers don't instantly realize
why its so superior.

I think our attitude is wrong, even if we're "right."  We absolutely should
enable more "traditional" approaches for doing Smalltalk programming.  If
the Mountain won't come to Mohammed, then Mohammed must go to the Mountain.

--Alan



Reply | Threaded
Open this post in threaded view
|

Re: A Lisper asks, "Am I supposed to like Smalltalk?"

Stéphane Rollandin
In reply to this post by Ron Teitelbaum
Ron Teitelbaum wrote:
> If you really love functions you can have one class and one method do
> everything!  :)

hmmm... that's a puzzle ?

ok I give up ! what method ?


Stef

Reply | Threaded
Open this post in threaded view
|

RE: A Lisper asks, "Am I supposed to like Smalltalk?"

Gary Chambers
Object>>doEverything
maybe!

> -----Original Message-----
> From: [hidden email]
> [mailto:[hidden email]]On Behalf Of
> Stéphane Rollandin
> Sent: 17 May 2006 9:01 PM
> To: [hidden email]; The general-purpose Squeak developers list
> Subject: Re: A Lisper asks, "Am I supposed to like Smalltalk?"
>
>
> Ron Teitelbaum wrote:
> > If you really love functions you can have one class and one method do
> > everything!  :)
>
> hmmm... that's a puzzle ?
>
> ok I give up ! what method ?
>
>
> Stef
>


Reply | Threaded
Open this post in threaded view
|

Re: A Lisper asks, "Am I supposed to like Smalltalk?"

Colin Putney
In reply to this post by Alan L. Lovejoy

On May 17, 2006, at 3:55 PM, Alan Lovejoy wrote:

> I think our attitude is wrong, even if we're "right."  We  
> absolutely should
> enable more "traditional" approaches for doing Smalltalk  
> programming.  If
> the Mountain won't come to Mohammed, then Mohammed must go to the  
> Mountain.

I like the attitude, but I think it's really tough in practice. I see  
two problems:

1) The tools for doing "traditional" programming would have to be  
implemented by fairly adept Smalltalkers. This means that they're  
working on tools based in a paradigm they don't themselves share.  
They'd be creating tools they have no interest in using. Who's going  
to want to put effort into that, and who could do it well?

2) The reasons Smalltalk is good are basically the same as the  
reasons it's different. If we enable newcomers to retain their old  
habits and coding style, are we really doing them a service? We just  
make it that much less likely they'll learn the Smalltalk way, and  
ultimately give them no reason to use Smalltalk at all. Heck, if you  
want a more "traditional" version of Smalltalk, just use Ruby. The  
syntax is a little awkward, but otherwise, it's all there.

Colin

Reply | Threaded
Open this post in threaded view
|

RE: A Lisper asks, "Am I supposed to like Smalltalk?"

Ramon Leon
In reply to this post by Alan L. Lovejoy
> I think our attitude is wrong, even if we're "right."  We
> absolutely should enable more "traditional" approaches for
> doing Smalltalk programming.  If the Mountain won't come to
> Mohammed, then Mohammed must go to the Mountain.
>
> --Alan

But to try and use traditional approaches would be saying Smalltalk is
just another syntax, and it's so much more than that.  People should
want to come to Smalltalk, because we're so far ahead of the pack that
they can't keep up otherwise, then they'll want to learn the Smalltalk
way.

Reply | Threaded
Open this post in threaded view
|

RE: A Lisper asks, "Am I supposed to like Smalltalk?"

Ron Teitelbaum
In reply to this post by Stéphane Rollandin
Stef,

You could call it method.  Believe it or not I've seen people try to write
smalltalk this way (100 pages of code in one method), I've also seen C++
written this way.  I've asked ohh so you do C++, how many classes does your
code have and they say, "what's a class!"  :)

It was a bad joke!

Ron

> -----Original Message-----
> From: Stéphane Rollandin [mailto:[hidden email]]
> Sent: Wednesday, May 17, 2006 4:01 PM
> To: [hidden email]; The general-purpose Squeak developers list
> Subject: Re: A Lisper asks, "Am I supposed to like Smalltalk?"
>
> Ron Teitelbaum wrote:
> > If you really love functions you can have one class and one method do
> > everything!  :)
>
> hmmm... that's a puzzle ?
>
> ok I give up ! what method ?
>
>
> Stef



Reply | Threaded
Open this post in threaded view
|

re: A Lisper asks, "Am I supposed to like Smalltalk?"

ccrraaiigg
In reply to this post by Zulq Alam

 > Those of us "old timers" who went through the learning cure on
 > Smalltalk years ago...

        It really is a cure, isn't it? :)


-C

--
Craig Latta
improvisational musical informaticist
www.netjam.org
Smalltalkers do: [:it | All with: Class, (And love: it)]



1234