[Newbies] Re: Best way to implement two-dimensional array
John Almberg
jalmberg at identry.com
Tue Sep 4 22:31:47 UTC 2007
Yes, that's clear, and I do intend to initialize this big table with
code, mainly to make it easy for me to spot and fix typos. However,
it's still cool to gain a sense of the concreteness of Smalltalk
classes.
And I find myself trying out code in a Workspace to see how things
work, before encoding it in a method. I suspect interactively
tweaking a class might help me figure things out before committing it
to an initialize method.
-- John
On Sep 4, 2007, at 5:29 PM, nicolas cellier wrote:
> However, Classes and methods are Objects which have well defined
> tools to help them migrating from an image to another, even to
> another Smalltalk dialect. This ease code sharing.
>
> This is less clear for arbitrary objects...
>
> That's why I restrict myself to initialize these class vars in an
> initialize method in the class side, and loose some of the power of
> the image...
>
> But there is a better reason:
> if you construct your object with some snippets of code, say in an
> inspector or a debugger:
> MyTable at: 1 put: 30 degreesToRadians cos * 4
>
> Then your image will loose the history of construction.
> All it retains is 3.464101615137755 which is somehow less expressive.
>
> Nicolas
>
> Bert Freudenberg a écrit :
>> Seems you've made the first step to truly understanding Smalltalk :)
>> Also you must realize that the browser is just a view into that
>> live system of objects we call classes and is simply modifying
>> those live objects. You could do that in an inspector as well, but
>> the class browser is more specialized so it is easier to use for
>> that purpose.
>> Welcome to Real Objects.
>> - Bert -
>> On Sep 4, 2007, at 12:19 , John Almberg wrote:
>>> Whoa... that worked, but the implications are a bit hard to
>>> digest...
>>>
>>> So MyClass is an object in my Smalltalk image, and it can have
>>> variables that I can set interactively, and the values contained
>>> therein are now part of the class...
>>>
>>> I keep reading that classes are objects, but this is the first
>>> time I've seen something that makes me realize that they are
>>> fundamentally different than objects in other languages. I guess
>>> because they are 'live', in some sense, in the Smalltalk
>>> environment. That is, not just source code, but an instantiated
>>> object.
>>>
>>> Talk about paradigm whiplash... I'm going to have to think about
>>> this, a bit :-)
>>>
>>> Thanks!
>>>
>>> -- John
>>>
>>>> Type "MyClass", select it, press Cmd-i (or Alt-i). You get an
>>>> inspector on a class - which of course is the instance of
>>>> another class, as everything is an object (and hence an instance
>>>> of a class) in Smalltalk. Anyway, you should see a reference to
>>>> the superclass, a dictionary of all the methods, the list of
>>>> instance variables and subclasses etc. Class variables are
>>>> simply held in a Dictionary in the "classPool" instance variable
>>>> of that class. So by inspecting that and drilling down into your
>>>> class var you can modify it.
>>>>
>>>> A simpler way to get at the contents of your class var is just
>>>> selecting its name in a browser showing any method of your
>>>> class, and press Cmd-i there. That works because in the browser,
>>>> code is evaluated in the context of the selected class.
>>>>
>>>> - Bert -
>
> _______________________________________________
> Beginners mailing list
> Beginners at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Websites for On-line Collectible Dealers
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Identry, LLC
John Almberg
(631) 546-5079
jalmberg at identry.com
www.identry.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
More information about the Beginners
mailing list