Wonderful Smalltalk!

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

Wonderful Smalltalk!

Lars Finsen
Hi,
I have a hobby project that I've been planning to automatise a little  
and I've been struggling for some 7-8 months in my spare time to make  
any usable code in C++. All the time I have been fiddling a little  
with Smalltalk, but concentrated on C++ because of some annoying bugs  
in vW7.4.1., mainly some malfunctions in the debugger.

However, last week I decided to transfer my project to Smalltalk, and  
to my great surprise I found I could produce usable results after  
only 3 days! And I can keep on evolving and refining the system while  
it's in use. The debugger makes debugging real easy, although I have  
missed the malfunctioning breakpoint function occasionally. (Does it  
work in another version?)

Smalltalk is the mother of all object-oriented systems, and its  
coherent and logical design makes it easy to handle even rather  
intricate data structures. And besides it's such fun that I've been  
forced to restrict the time I'm spending with it each day, in order  
to get any other work or chores done, so to speak. Let alone  
relaxation and exercise...

Anyway, I'm impressed!

LEF

Reply | Threaded
Open this post in threaded view
|

Re: Wonderful Smalltalk!

jWarrior
Lars Finsen wrote:

> Hi,
> I have a hobby project that I've been planning to automatise a little
> and I've been struggling for some 7-8 months in my spare time to make
> any usable code in C++. All the time I have been fiddling a little
> with Smalltalk, but concentrated on C++ because of some annoying bugs
> in vW7.4.1., mainly some malfunctions in the debugger.
>
> However, last week I decided to transfer my project to Smalltalk, and
> to my great surprise I found I could produce usable results after only
> 3 days! And I can keep on evolving and refining the system while it's
> in use. The debugger makes debugging real easy, although I have missed
> the malfunctioning breakpoint function occasionally. (Does it work in
> another version?)
>
> Smalltalk is the mother of all object-oriented systems, and its
> coherent and logical design makes it easy to handle even rather
> intricate data structures. And besides it's such fun that I've been
> forced to restrict the time I'm spending with it each day, in order to
> get any other work or chores done, so to speak. Let alone relaxation
> and exercise...
>
> Anyway, I'm impressed!
>
> LEF
>
Welcome to the club. The excitement is just beginning. The more you use
it, the cooler it gets. There are only about two things I don't like
about Smalltalk, and I can't remember what they are.

Reply | Threaded
Open this post in threaded view
|

Re: Wonderful Smalltalk!

James Robertson-7
In reply to this post by Lars Finsen
Can you explain what you mean by "malfunctioning breakpoint" ?


At 04:26 PM 7/4/2007, you wrote:

>Hi,
>I have a hobby project that I've been planning to automatise a little
>and I've been struggling for some 7-8 months in my spare time to make
>any usable code in C++. All the time I have been fiddling a little
>with Smalltalk, but concentrated on C++ because of some annoying bugs
>in vW7.4.1., mainly some malfunctions in the debugger.
>
>However, last week I decided to transfer my project to Smalltalk, and
>to my great surprise I found I could produce usable results after
>only 3 days! And I can keep on evolving and refining the system while
>it's in use. The debugger makes debugging real easy, although I have
>missed the malfunctioning breakpoint function occasionally. (Does it
>work in another version?)
>
>Smalltalk is the mother of all object-oriented systems, and its
>coherent and logical design makes it easy to handle even rather
>intricate data structures. And besides it's such fun that I've been
>forced to restrict the time I'm spending with it each day, in order
>to get any other work or chores done, so to speak. Let alone
>relaxation and exercise...
>
>Anyway, I'm impressed!
>
>LEF

<Talk Small and Carry a Big Class Library>
James Robertson, Product Manager, Cincom Smalltalk
http://www.cincomsmalltalk.com/blog/blogView

Reply | Threaded
Open this post in threaded view
|

Re: Wonderful Smalltalk!

Janko Mivšek
In reply to this post by Lars Finsen
Hi Lars,

Be careful, you can be seduced for entire life as I am :)

Best regards
Janko

Lars Finsen wrote:

> Hi,
> I have a hobby project that I've been planning to automatise a little
> and I've been struggling for some 7-8 months in my spare time to make
> any usable code in C++. All the time I have been fiddling a little with
> Smalltalk, but concentrated on C++ because of some annoying bugs in
> vW7.4.1., mainly some malfunctions in the debugger.
>
> However, last week I decided to transfer my project to Smalltalk, and to
> my great surprise I found I could produce usable results after only 3
> days! And I can keep on evolving and refining the system while it's in
> use. The debugger makes debugging real easy, although I have missed the
> malfunctioning breakpoint function occasionally. (Does it work in
> another version?)
>
> Smalltalk is the mother of all object-oriented systems, and its coherent
> and logical design makes it easy to handle even rather intricate data
> structures. And besides it's such fun that I've been forced to restrict
> the time I'm spending with it each day, in order to get any other work
> or chores done, so to speak. Let alone relaxation and exercise...
>
> Anyway, I'm impressed!
>
> LEF
>
>

--
Janko Mivšek
AIDA/Web
Smalltalk Web Application Server
http://www.aidaweb.si

Reply | Threaded
Open this post in threaded view
|

Re: Wonderful Smalltalk!

Lars Finsen
In reply to this post by James Robertson-7

Den 4. jul. 2007 kl. 22.36 skrev James Robertson:

> Can you explain what you mean by "malfunctioning breakpoint" ?

When I tried to insert a breakpoint, the debugger window went blank  
and became impossible to close. I have two such blank debugger  
windows in the background now. But they don't disturb me so much  
(though I would like some advice on how to close them), and I find I  
mostly don't need breakpoints as there are other ways to make the  
debugger concentrate on critical code, by digging the other bits down  
in methods, for example.

I wonder if the bug is a fault with the 7.4.1. system, or with my  
installation.

LEF

Reply | Threaded
Open this post in threaded view
|

RE: Wonderful Smalltalk!

Stew MacLean
To close the dead windows try:

ApplicationWindow allInstances do:
        [: window | window controller closeAndUnschedule].

You'll get a dialog after the windows close. Select open new
VisualLauncher.

I'd been programming for quite some time before I discovered Smalltalk.

My only regret is not starting sooner (and that was 15 years ago).

Enjoy!

Stewart



>-----Original Message-----
>From: Lars Finsen [mailto:[hidden email]]
>Sent: 5 July 2007 8:50 a.m.
>To: [hidden email]
>Subject: Re: Wonderful Smalltalk!
>
>
>Den 4. jul. 2007 kl. 22.36 skrev James Robertson:
>
>> Can you explain what you mean by "malfunctioning breakpoint" ?
>
>When I tried to insert a breakpoint, the debugger window went blank
>and became impossible to close. I have two such blank debugger
>windows in the background now. But they don't disturb me so much
>(though I would like some advice on how to close them), and I find I
>mostly don't need breakpoints as there are other ways to make the
>debugger concentrate on critical code, by digging the other bits down
>in methods, for example.
>
>I wonder if the bug is a fault with the 7.4.1. system, or with my
>installation.
>
>LEF



Reply | Threaded
Open this post in threaded view
|

Re: Wonderful Smalltalk!

Dennis smith-4
In reply to this post by Lars Finsen


Lars Finsen wrote:

>
> Den 4. jul. 2007 kl. 22.36 skrev James Robertson:
>
>> Can you explain what you mean by "malfunctioning breakpoint" ?
>
> When I tried to insert a breakpoint, the debugger window went blank
> and became impossible to close. I have two such blank debugger windows
> in the background now. But they don't disturb me so much (though I
> would like some advice on how to close them), and I find I mostly
> don't need breakpoints as there are other ways to make the debugger
> concentrate on critical code, by digging the other bits down in
> methods, for example.
>
> I wonder if the bug is a fault with the 7.4.1. system, or with my
> installation.
There are some situations when the code and the debugger wait on some
global semaphore where this can occur.
The only one I am sure of right now is the one where you try and stop
off the end of a block -- and the block in fact
says
    'someString' asSymbol
this will freeze every time.  This is one example of the debugger
waiting on a lock that the debugged code has.

In general these are not easy to come up with unless you have lots of
processes that wait on things, in which case
it can occur a bit.

>
> LEF
>

--
Dennis Smith                         +1 416.798.7948
Cherniak Software Development Corporation   Fax: +1 416.798.0948
509-2001 Sheppard Avenue East        [hidden email]
Toronto, ON M2J 4Z8              sip:[hidden email]
Canada         http://www.CherniakSoftware.com
Entrance off Yorkland Blvd south of Sheppard Ave east of the DVP

Reply | Threaded
Open this post in threaded view
|

Re: Wonderful Smalltalk!

Dennis smith-4
In reply to this post by Stew MacLean


Stewart MacLean wrote:
To close the dead windows try:

ApplicationWindow allInstances do: 
	[: window | window controller closeAndUnschedule].

You'll get a dialog after the windows close. Select open new
VisualLauncher.
  
We have a little app which will display all windows and let you manipulate them -- its a bit dependent on some of
our base code, so not easy to make it available -- but its not difficult to create something like that.
I'd been programming for quite some time before I discovered Smalltalk.

My only regret is not starting sooner (and that was 15 years ago).
  
I started programming around 1968 -- Fortran/Assembler/PL1/Pascal/Snobol/Algol/C/C++/... and finally Smalltalk.
I would never go back thank you -- other than when I have to fix something :(
Enjoy!

Stewart



  
-----Original Message-----
From: Lars Finsen [[hidden email]]
Sent: 5 July 2007 8:50 a.m.
To: [hidden email]
Subject: Re: Wonderful Smalltalk!


Den 4. jul. 2007 kl. 22.36 skrev James Robertson:

    
Can you explain what you mean by "malfunctioning breakpoint" ?
      
When I tried to insert a breakpoint, the debugger window went blank
and became impossible to close. I have two such blank debugger
windows in the background now. But they don't disturb me so much
(though I would like some advice on how to close them), and I find I
mostly don't need breakpoints as there are other ways to make the
debugger concentrate on critical code, by digging the other bits down
in methods, for example.

I wonder if the bug is a fault with the 7.4.1. system, or with my
installation.

LEF
    



  

-- 
Dennis Smith                 		         +1 416.798.7948
Cherniak Software Development Corporation   Fax: +1 416.798.0948
509-2001 Sheppard Avenue East        [hidden email]
Toronto, ON M2J 4Z8              [hidden email]
Canada			         http://www.CherniakSoftware.com
Entrance off Yorkland Blvd south of Sheppard Ave east of the DVP
Reply | Threaded
Open this post in threaded view
|

Re: Wonderful Smalltalk!

Dennis smith-4
In reply to this post by jWarrior
Gee -- you see this kind of post and everyone jumps on it immediately :)

Donald MacQueen wrote:

> Lars Finsen wrote:
>> Hi,
>> I have a hobby project that I've been planning to automatise a little
>> and I've been struggling for some 7-8 months in my spare time to make
>> any usable code in C++. All the time I have been fiddling a little
>> with Smalltalk, but concentrated on C++ because of some annoying bugs
>> in vW7.4.1., mainly some malfunctions in the debugger.
>>
>> However, last week I decided to transfer my project to Smalltalk, and
>> to my great surprise I found I could produce usable results after
>> only 3 days! And I can keep on evolving and refining the system while
>> it's in use. The debugger makes debugging real easy, although I have
>> missed the malfunctioning breakpoint function occasionally. (Does it
>> work in another version?)
>>
>> Smalltalk is the mother of all object-oriented systems, and its
>> coherent and logical design makes it easy to handle even rather
>> intricate data structures. And besides it's such fun that I've been
>> forced to restrict the time I'm spending with it each day, in order
>> to get any other work or chores done, so to speak. Let alone
>> relaxation and exercise...
>>
>> Anyway, I'm impressed!
>>
>> LEF
>>
> Welcome to the club. The excitement is just beginning. The more you
> use it, the cooler it gets. There are only about two things I don't
> like about Smalltalk, and I can't remember what they are.
>

--
Dennis Smith                         +1 416.798.7948
Cherniak Software Development Corporation   Fax: +1 416.798.0948
509-2001 Sheppard Avenue East        [hidden email]
Toronto, ON M2J 4Z8              sip:[hidden email]
Canada         http://www.CherniakSoftware.com
Entrance off Yorkland Blvd south of Sheppard Ave east of the DVP

Reply | Threaded
Open this post in threaded view
|

Re: Wonderful Smalltalk!

Dennis smith-4
In reply to this post by Dennis smith-4

Den 4. jul. 2007 kl. 23.18 skrev Dennis Smith:

> We have a little app which will display all windows and let you  
> manipulate them -- its a bit dependent on some of
> our base code, so not easy to make it available -- but its not  
> difficult to create something like that.

Okay, I might get around to learn doing this kind of stuff sooner
than I'd expect as well. Meanwhile Stewart's little script seems to
have cleaned up well enough, thanks for that.

> I started programming around 1968 -- Fortran/Assembler/PL1/Pascal/
> Snobol/Algol/C/C++/... and finally Smalltalk.

I was a professional programmer 1985-88. Mostly in Fortran, but C was
being used some near the end. The UNIX operative system was what I
liked about it. Have been dabbling some in Pascal since then to fill
my occasional automation needs. It was only last year that I decided
to computerise some of my home projects seriously and remembered
having been impressed by the design of Smalltalk, which I read about
in BYTE magazine in the early 80s.

> Gee -- you see this kind of post and everyone jumps on it  
> immediately :)

Way to attract attention, I guess.

LEF

Reply | Threaded
Open this post in threaded view
|

RE: Wonderful Smalltalk!

Terry Raymond
In reply to this post by Lars Finsen
Lars

As breakpoints work in most situations, we need specific
information about the problem you encountered, i.e. what
class and method you are inserting the breakpoint into.

Keep in mind, that there are system methods that you cannot
put a simple breakpoint into because it will cause the system
to break. However, if you feel you need to put a breakpoint
in a commonly used method you can use a conditional breakpoint
that is triggered only when you want it to be. Additionally,
in some places I don't use breakpoints but I use watchpoints
instead. You can create a watchpoint that prints the stack
trace so you can determine how you got to a particular point.

You can find some of this described in the documentation.

Another useful tip is while you are in the debugger you
can use a temp probe, meaning it will only affect the
method context on the stack. Once the context exits the
probe disappears.

Terry
 
===========================================================
Terry Raymond
Crafted Smalltalk
80 Lazywood Ln.
Tiverton, RI  02878
(401) 624-4517      [hidden email]
<http://www.craftedsmalltalk.com>
===========================================================

> -----Original Message-----
> From: Lars Finsen [mailto:[hidden email]]
> Sent: Wednesday, July 04, 2007 4:50 PM
> To: [hidden email]
> Subject: Re: Wonderful Smalltalk!
>
>
> Den 4. jul. 2007 kl. 22.36 skrev James Robertson:
>
> > Can you explain what you mean by "malfunctioning breakpoint" ?
>
> When I tried to insert a breakpoint, the debugger window went blank
> and became impossible to close. I have two such blank debugger
> windows in the background now. But they don't disturb me so much
> (though I would like some advice on how to close them), and I find I
> mostly don't need breakpoints as there are other ways to make the
> debugger concentrate on critical code, by digging the other bits down
> in methods, for example.
>
> I wonder if the bug is a fault with the 7.4.1. system, or with my
> installation.
>
> LEF

Reply | Threaded
Open this post in threaded view
|

Re: Wonderful Smalltalk!

Dennis smith-4


Terry Raymond wrote:
Lars

As breakpoints work in most situations, we need specific
information about the problem you encountered, i.e. what
class and method you are inserting the breakpoint into.

Keep in mind, that there are system methods that you cannot
put a simple breakpoint into because it will cause the system
to break. However, if you feel you need to put a breakpoint
in a commonly used method you can use a conditional breakpoint
that is triggered only when you want it to be. Additionally,
in some places I don't use breakpoints but I use watchpoints
instead. You can create a watchpoint that prints the stack
trace so you can determine how you got to a particular point.
  
I often do things like
    WindowSensor new ctrlDown
as a break.  This works if its not a deep-down system method, but can freeze if its something
that the View or Controller hierarchy uses since it will break too when the debugger window opens.
For such system methods, I sometimes use a first-time-only flag (using a global variable) along with
some other condition.
You can find some of this described in the documentation.

Another useful tip is while you are in the debugger you
can use a temp probe, meaning it will only affect the
method context on the stack. Once the context exits the
probe disappears.

Terry
 
===========================================================
Terry Raymond
Crafted Smalltalk
80 Lazywood Ln.
Tiverton, RI  02878
(401) 624-4517      [hidden email]
<http://www.craftedsmalltalk.com>
===========================================================

  
-----Original Message-----
From: Lars Finsen [[hidden email]]
Sent: Wednesday, July 04, 2007 4:50 PM
To: [hidden email]
Subject: Re: Wonderful Smalltalk!


Den 4. jul. 2007 kl. 22.36 skrev James Robertson:

    
Can you explain what you mean by "malfunctioning breakpoint" ?
      
When I tried to insert a breakpoint, the debugger window went blank
and became impossible to close. I have two such blank debugger
windows in the background now. But they don't disturb me so much
(though I would like some advice on how to close them), and I find I
mostly don't need breakpoints as there are other ways to make the
debugger concentrate on critical code, by digging the other bits down
in methods, for example.

I wonder if the bug is a fault with the 7.4.1. system, or with my
installation.

LEF
    

  

-- 
Dennis Smith                 		         +1 416.798.7948
Cherniak Software Development Corporation   Fax: +1 416.798.0948
509-2001 Sheppard Avenue East        [hidden email]
Toronto, ON M2J 4Z8              <a class="moz-txt-link-freetext" href="sip:dennis@CherniakSoftware.com">sip:dennis@...
Canada			         http://www.CherniakSoftware.com
Entrance off Yorkland Blvd south of Sheppard Ave east of the DVP
Reply | Threaded
Open this post in threaded view
|

Re: Wonderful Smalltalk!

Travis Griggs-3
On Jul 5, 2007, at 9:13, Dennis Smith wrote:

 I often do things like
    WindowSensor new ctrlDown
as a break.  This works if its not a deep-down system method, but can freeze if its something
that the View or Controller hierarchy uses since it will break too when the debugger window opens.

You can use the more direct 'InputState default ctrlDown' as well.

--
Travis Griggs
Objologist
My Other Machine runs OSX. But then... so does this one.