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 > |
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 > > > |
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. |
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 |
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. |
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 |
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? |
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. |
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. |
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. |
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 |
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. |
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. |
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 |
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 |
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 > |
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 |
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. |
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 |
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)] |
Free forum by Nabble | Edit this page |