Loading ...
Sorry, an error occurred while loading the content.

Self (and OOP) noob says Hi!

Expand Messages
  • cgnormandin
    Hello list! I ve dabbled with Smalltalk Squeak, and GNU Smalltalk. Didn t get too far ;( OOP has been a real struggle for me. Hoping Self will change all of
    Message 1 of 11 , Jan 31, 2011
    • 0 Attachment
      Hello list!

      I've dabbled with Smalltalk Squeak, and GNU Smalltalk. Didn't get too far ;( OOP has been a real struggle for me. Hoping Self will change all of that.

      Is there a "Self by Example", or something similar? I need to get familiar with the VM, as well as the language itself. Much obliged ...
      --
      Duke
    • Casey Ransberger
      On the self website, under documentation, there s a pretty good tutorial. It d be nice to have more of that stuff. I m new to self too:)
      Message 2 of 11 , Feb 1, 2011
      • 0 Attachment
        On the self website, under documentation, there's a pretty good tutorial. It'd be nice to have more of that stuff. I'm new to self too:)

        On Jan 31, 2011, at 3:01 PM, "cgnormandin" <dukeofperl@...> wrote:

         

        Hello list!

        I've dabbled with Smalltalk Squeak, and GNU Smalltalk. Didn't get too far ;( OOP has been a real struggle for me. Hoping Self will change all of that.

        Is there a "Self by Example", or something similar? I need to get familiar with the VM, as well as the language itself. Much obliged ...
        --
        Duke

      • Russell Allen
        Hi Duke, The three main current sources of documentation are the tutorial as Casey mentioned, the manual at docs.selflanguage.org and the various papers on the
        Message 3 of 11 , Feb 1, 2011
        • 0 Attachment
          Hi Duke,
          The three main current sources of documentation are the tutorial as Casey mentioned, the manual at docs.selflanguage.org and the various papers on the website (though these can be out of date!).
          Also the wiki: https://github.com/russellallen/self/wiki
          Cheers, Russell
          On Tue, 1 Feb 2011 13:42:00 -0800, Casey Ransberger  wrote:
          
          > On the self website, under documentation, there's a pretty good > tutorial. It'd be nice to have more of that stuff. I'm new to self > too:) > > On Jan 31, 2011, at 3:01 PM, "cgnormandin" wrote: > > Hello list! > > I've dabbled with Smalltalk Squeak, and GNU Smalltalk. Didn't get > too far ;( OOP has been a real struggle for me. Hoping Self will > change all of that. > > Is there a "Self by Example", or something similar? I need to get > familiar with the VM, as well as the language itself. Much obliged ... > -- > Duke > > > > Links: > ------ > [1] mailto:dukeofperl@... > [2] > mailto:casey.obrien.r@...?subject=Re%3A%20%5Bself-interest%5D%20Self%20%28and%20OOP%29%20noob%20says%20Hi%21 > [3] > mailto:self-interest@yahoogroups.com?subject=Re%3A%20%5Bself-interest%5D%20Self%20%28and%20OOP%29%20noob%20says%20Hi%21 > [4] > http://groups.yahoo.com/group/self-interest/post;_ylc=X3oDMTJwbmkzOGx2BF9TAzk3MzU5NzE0BGdycElkAzExMTQ4MzUEZ3Jwc3BJZAMxNzA3Mjc2NzE4BG1zZ0lkAzI0ODIEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxMjk2NTk2NTQw?act=reply&messageNum=2482 > [5] > http://groups.yahoo.com/group/self-interest/post;_ylc=X3oDMTJlc2M4dmtpBF9TAzk3MzU5NzE0BGdycElkAzExMTQ4MzUEZ3Jwc3BJZAMxNzA3Mjc2NzE4BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTI5NjU5NjU0MA-- > [6] > http://groups.yahoo.com/group/self-interest/message/2481;_ylc=X3oDMTM0Z2Jwa29sBF9TAzk3MzU5NzE0BGdycElkAzExMTQ4MzUEZ3Jwc3BJZAMxNzA3Mjc2NzE4BG1zZ0lkAzI0ODIEc2VjA2Z0cgRzbGsDdnRwYwRzdGltZQMxMjk2NTk2NTQwBHRwY0lkAzI0ODE- > [7] > http://groups.yahoo.com/group/self-interest/members;_ylc=X3oDMTJmc2NxdHZiBF9TAzk3MzU5NzE0BGdycElkAzExMTQ4MzUEZ3Jwc3BJZAMxNzA3Mjc2NzE4BHNlYwN2dGwEc2xrA3ZtYnJzBHN0aW1lAzEyOTY1OTY1NDA-?o=6 > [8] > http://groups.yahoo.com/group/self-interest;_ylc=X3oDMTJlam1wZGRoBF9TAzk3MzU5NzE0BGdycElkAzExMTQ4MzUEZ3Jwc3BJZAMxNzA3Mjc2NzE4BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTI5NjU5NjU0MA-- > [9] > http://global.ard.yahoo.com/SIG=15ouj81ok/M=493064.14543979.14365478.13298430/D=groups/S=1707276718:MKP1/Y=YAHOO/EXP=1296603741/L=2640ce78-2e4c-11e0-9fc1-e77e8b226c08/B=7gwSXEwNPV0-/J=1296596541537708/K=Jsjvc_YSgEGEVnoeRGVBVg/A=6060255/R=0/SIG=1194m4keh/*http://us.toolbar.yahoo.com/?.cpdl=grpj > [10] > http://global.ard.yahoo.com/SIG=15o3k601d/M=493064.14543977.14365476.10835568/D=groups/S=1707276718:MKP1/Y=YAHOO/EXP=1296603741/L=2640ce78-2e4c-11e0-9fc1-e77e8b226c08/B=7wwSXEwNPV0-/J=1296596541537708/K=Jsjvc_YSgEGEVnoeRGVBVg/A=6260316/R=0/SIG=11bc8n8gt/*http://custom.yahoo.com/fibromyalgiazone/ > [11] > http://groups.yahoo.com/;_ylc=X3oDMTJkNWk0ZWRwBF9TAzk3NDc2NTkwBGdycElkAzExMTQ4MzUEZ3Jwc3BJZAMxNzA3Mjc2NzE4BHNlYwNmdHIEc2xrA2dmcARzdGltZQMxMjk2NTk2NTQw > [12] mailto:self-interest-traditional@yahoogroups.com?subject=Change > Delivery Format: Traditional > [13] mailto:self-interest-digest@yahoogroups.com?subject=Email > Delivery: Digest > [14] > mailto:self-interest-unsubscribe@yahoogroups.com?subject=Unsubscribe > [15] http://docs.yahoo.com/info/terms/
        • Duke Normandin
          ... You bet! I say that and am reading it. However, I d like to follow along with the examples shown, like in:
          Message 4 of 11 , Feb 1, 2011
          • 0 Attachment
            On Tue, 1 Feb 2011, Casey Ransberger wrote:

            >
            > On Jan 31, 2011, at 3:01 PM, "cgnormandin" <dukeofperl@...> wrote:
            >
            > > Hello list!
            > >
            > >
            > > I've dabbled with Smalltalk Squeak, and GNU Smalltalk. Didn't get
            > > too far ;( OOP has been a real struggle for me. Hoping Self will
            > > change all of that.
            > >
            > > Is there a "Self by Example", or something similar? I need to get
            > > familiar with the VM, as well as the language itself. Much obliged
            >
            > On the self website, under documentation, there's a pretty good
            > tutorial. It'd be nice to have more of that stuff. I'm new to self
            > too:)

            You bet! I say that and am reading it. However, I'd like to follow
            along with the examples shown, like in:

            http://selflanguage.org/_static/tutorial/Tutorial/Language/ObjectsAndSlots/ExamplesOfSlots.html

            Take the first image on that page - how do I get _that_ to happen. Is
            there a page that documents- step-by-step - how this bank account
            example is put together? Otherwise, I bring up the Self VM, and now I
            have no clue what to do next.
            --
            Duke
          • Duke Normandin
            On Wed, 2 Feb 2011, Russell Allen wrote: Hello Russell ... ... The Manual looks good, but I think that it would have to come _after_ the tutorial. Not sure
            Message 5 of 11 , Feb 1, 2011
            • 0 Attachment
              On Wed, 2 Feb 2011, Russell Allen wrote:

              Hello Russell ...

              > The three main current sources of documentation are the
              > tutorial as Casey mentioned, the manual at docs.selflanguage.org and the
              > various papers on the website (though these can be out of date!).
              >
              > Also
              > the wiki: https://github.com/russellallen/self/wiki [1]

              The Manual looks good, but I think that it would have to come _after_
              the tutorial. Not sure about the wiki stuff - only had a quick
              snoop. Much obliged for the links.
              --
              Duke
            • Russell Allen
              Hi Duke, Are you using the Demo.snap snapshot or the Clean.snap snapshot? Playing with the world in Demo.snap might help you. To answer the specific question:
              Message 6 of 11 , Feb 1, 2011
              • 0 Attachment
                Hi Duke,
                Are you using the Demo.snap snapshot or the Clean.snap snapshot?
                Playing with the world in Demo.snap might help you.
                To answer the specific question:
                Right click on the background somewhere so that a menu comes up, and choose "New Shell..."
                This creates a shell object.  Click the little 'E' button in the top right to open a textbox. Expressions typed into that box are done in the context of the object. (You can do this on any object)
                Type '()' and click 'Get'. This will get an empty object. Dump it on the background somewhere.
                If you right click on your new empty document, a menu will pop up and you should be able to see an option to add a slot. Do that, and enter 'balance <- 100' and click the green bar.
                Et voila!
                :) Russell
                On Tue, 1 Feb 2011 22:13:17 -0700 (MST), Duke Normandin  wrote:
                
                > On Tue, 1 Feb 2011, Casey Ransberger wrote: > > > > > On Jan 31, 2011, at 3:01 PM, "cgnormandin" wrote: > > > > > Hello list! > > > > > > > > > I've dabbled with Smalltalk Squeak, and GNU Smalltalk. Didn't > get > > > too far ;( OOP has been a real struggle for me. Hoping Self will > > > change all of that. > > > > > > Is there a "Self by Example", or something similar? I need to > get > > > familiar with the VM, as well as the language itself. Much > obliged > > > > On the self website, under documentation, there's a pretty good > > tutorial. It'd be nice to have more of that stuff. I'm new to self > > too:) > > You bet! I say that and am reading it. However, I'd like to follow > along with the examples shown, like in: > > > http://selflanguage.org/_static/tutorial/Tutorial/Language/ObjectsAndSlots/ExamplesOfSlots.html > [2] > > Take the first image on that page - how do I get _that_ to happen. > Is > there a page that documents- step-by-step - how this bank account > example is put together? Otherwise, I bring up the Self VM, and now > I > have no clue what to do next. > -- > Duke > > > > Links: > ------ > [1] mailto:dukeofperl%40ml1.net > [2] > http://selflanguage.org/_static/tutorial/Tutorial/Language/ObjectsAndSlots/ExamplesOfSlots.html > [3] > mailto:dukeofperl@...?subject=Re%3A%20%5Bself-interest%5D%20Self%20%28and%20OOP%29%20noob%20says%20Hi%21 > [4] > mailto:self-interest@yahoogroups.com?subject=Re%3A%20%5Bself-interest%5D%20Self%20%28and%20OOP%29%20noob%20says%20Hi%21 > [5] > http://groups.yahoo.com/group/self-interest/post;_ylc=X3oDMTJwYjYxNmYzBF9TAzk3MzU5NzE0BGdycElkAzExMTQ4MzUEZ3Jwc3BJZAMxNzA3Mjc2NzE4BG1zZ0lkAzI0ODQEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxMjk2NjIzNzA2?act=reply&messageNum=2484 > [6] > http://groups.yahoo.com/group/self-interest/post;_ylc=X3oDMTJlczRqOWgxBF9TAzk3MzU5NzE0BGdycElkAzExMTQ4MzUEZ3Jwc3BJZAMxNzA3Mjc2NzE4BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTI5NjYyMzcwNg-- > [7] > http://groups.yahoo.com/group/self-interest/message/2481;_ylc=X3oDMTM0OGJkaTlsBF9TAzk3MzU5NzE0BGdycElkAzExMTQ4MzUEZ3Jwc3BJZAMxNzA3Mjc2NzE4BG1zZ0lkAzI0ODQEc2VjA2Z0cgRzbGsDdnRwYwRzdGltZQMxMjk2NjIzNzA2BHRwY0lkAzI0ODE- > [8] > http://groups.yahoo.com/group/self-interest/members;_ylc=X3oDMTJmZXFqZmo2BF9TAzk3MzU5NzE0BGdycElkAzExMTQ4MzUEZ3Jwc3BJZAMxNzA3Mjc2NzE4BHNlYwN2dGwEc2xrA3ZtYnJzBHN0aW1lAzEyOTY2MjM3MDY-?o=6 > [9] > http://groups.yahoo.com/group/self-interest;_ylc=X3oDMTJlNTRtcmRhBF9TAzk3MzU5NzE0BGdycElkAzExMTQ4MzUEZ3Jwc3BJZAMxNzA3Mjc2NzE4BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTI5NjYyMzcwNg-- > [10] > http://groups.yahoo.com/;_ylc=X3oDMTJkcXYya2I4BF9TAzk3MzU5NzE0BGdycElkAzExMTQ4MzUEZ3Jwc3BJZAMxNzA3Mjc2NzE4BHNlYwNmdHIEc2xrA2dmcARzdGltZQMxMjk2NjIzNzA2 > [11] mailto:self-interest-traditional@yahoogroups.com?subject=Change > Delivery Format: Traditional > [12] mailto:self-interest-digest@yahoogroups.com?subject=Email > Delivery: Digest > [13] > mailto:self-interest-unsubscribe@yahoogroups.com?subject=Unsubscribe > [14] http://docs.yahoo.com/info/terms/
              • Jim Wise
                ... Is there a ps or pdf version of the handbook from docs.selflanguage.org (I see that the main website notes this is `coming soon )? Also, I assume the Demo
                Message 7 of 11 , Feb 2, 2011
                • 0 Attachment
                  Russell Allen <mail@...> writes:

                  > Hi Duke,
                  >
                  > The three main current sources of documentation are the tutorial as
                  > Casey mentioned, the manual at docs.selflanguage.org and the various
                  > papers on the website (though these can be out of date!).
                  >
                  > Also the wiki: https://github.com/russellallen/self/wiki

                  Is there a ps or pdf version of the handbook from docs.selflanguage.org
                  (I see that the main website notes this is `coming soon')? Also, I
                  assume the Demo snapshot also serves as the best body of example code
                  out there -- is there anywhere else I should be looking? I've found the
                  bibliography on selflanguage.org very helpful for `getting' self, but
                  could use to look at a lot more code...


                  One main question I had: I notice that `Parents are Shared Parts:
                  Inheritance and Encapsulation in Self' (1991) gives an extensive
                  description of the sender-path-tiebreaker rule, prioritized multiple
                  inheritance, and some thoughts on backtracking in receiver finding, but
                  by the time of `Programming as an Experience: The Inspiration for Self'
                  (1995), these are described as a design mistake. Were these mechanisms
                  removed from the language, and if so, what is the current mechanism for
                  resolution of same-named slots in parents inherited through different
                  parent slots?

                  From the point of view of 16 years further on, how do these design
                  choices look, and what would you do about resends, if you were designing
                  Self today? I ask because in other languages supporting MI, the
                  linearization (local or global) rules for method lookup often seem to
                  require as much description as the entire rest of the inheritance model
                  (Scala, C++), have extensive special-case features to control
                  re-dispatch (CLOS) or are simply unresolved issues, perhaps even
                  allowing programmers to switch between available models at program run
                  time (Perl).


                  Also, as a word of thanks, I'd like to say that, coming mainly from
                  lisp, ml, and Objective-C and having dabbled with Smalltalk several
                  times over the years, experimenting with Self has been quite pleasant
                  for me. At first glance, it feels in many ways like

                  Self : Smalltalk :: Scheme : Common Lisp

                  -- similar language, but a reboot around a core set of principles,
                  consistently carried through the language, and a couple of really neat
                  ways to make things which would be a special-case feature of other
                  languages fall out of this consistency. The use of a very simple object
                  model instead of elaborate systems of strongly-typed inheritance (ala
                  Beta or Scala) or parallel (possibly class-aware) systems of generic
                  programming (Scala, C++, Ada) to achieve the same goals probably
                  contributes to this impression.

                  But this may just be me trying to relate the experience to something I
                  already know.


                  It was also neat to see a mention of Kevo float by, as I wrote some
                  small code with that under MacOS 7 when in college (sometime after the
                  Sparcstation 1 boot monitor introduced me to Forth, and before the NeXT
                  introduced me to Objective-C :-) ). If anyone does find the Kevo
                  sources, I'd also be interested to get a copy.

                  Thanks,
                  --
                  Jim Wise
                  jwise@...
                • cgnormandin
                  Hello Russell .... ... My bad! I ve been using the Clean.snap - for no particular reason. I ll try reading the tutorial along with the Demo.snap and see how
                  Message 8 of 11 , Feb 2, 2011
                  • 0 Attachment
                    Hello Russell ....

                    > Are you using the Demo.snap snapshot or the Clean.snap
                    > snapshot?
                    >
                    > Playing with the world in Demo.snap might help you.

                    My bad! I've been using the Clean.snap - for no particular reason.
                    I'll try reading the tutorial along with the Demo.snap and see how
                    that goes for me.

                    BTW, for some reason, your message that I'm replying to is rendered
                    all jumbled up in "reply mode", both here on the forum, and at home
                    on my 'Alpine' MUA. Yahoo must be doing something to the messages
                    that is sub-optimal. ;) Anybody else experiencing this behaviour?

                    Anyway, thanks for the examples! They'll come in handy.
                    --
                    Duke
                  • Chris Double
                    ... I ve mirrored the source here: Here is another interesting self paper you might like to read: Attack of the
                    Message 9 of 11 , Feb 2, 2011
                    • 0 Attachment
                      On Thu, Feb 3, 2011 at 5:03 AM, Jim Wise <jwise@...> wrote:
                      > It was also neat to see a mention of Kevo float by, as I wrote some
                      > small code with that under MacOS 7 when in college (sometime after the
                      > Sparcstation 1 boot monitor introduced me to Forth, and before the NeXT
                      > introduced me to Objective-C :-) ).  If anyone does find the Kevo
                      > sources, I'd also be interested to get a copy.

                      I've mirrored the source here:

                      <http://www.bluishcoder.o.nz/KEVOSOUR.SIT>

                      Here is another interesting self paper you might like to read:

                      Attack of the clones: http://crpit.com/abstracts/CRPITV13Noble.html
                      "This paper presents implementations of a selection of the Design
                      Patterns in Self, and investigates the differences between their
                      implementations in Self compared with other object-oriented
                      programming languages"

                      Chris.
                      --
                      http://www.bluishcoder.co.nz
                    • Jim Wise
                      ... Awesome, thanks! ... Cool -- got it from CiteSeer s cache (that link was timing out), and will read it tomorrow on the train. :-) -- Jim Wise
                      Message 10 of 11 , Feb 2, 2011
                      • 0 Attachment
                        Chris Double <chris.double@...> writes:

                        > I've mirrored the source here:
                        >
                        > <http://www.bluishcoder.co.nz/KEVOSOUR.SIT>

                        Awesome, thanks!


                        > Here is another interesting self paper you might like to read:
                        >
                        > Attack of the clones: http://crpit.com/abstracts/CRPITV13Noble.html
                        > "This paper presents implementations of a selection of the Design
                        > Patterns in Self, and investigates the differences between their
                        > implementations in Self compared with other object-oriented
                        > programming languages"

                        Cool -- got it from CiteSeer's cache (that link was timing out), and
                        will read it tomorrow on the train. :-)

                        --
                        Jim Wise
                        jwise@...
                      • ungar@mac.com
                        Jim, If I were to tackle multiple inheritance today, I would go with unordered up to join . Given a diamond inheritance pattern, with a match, A, found on
                        Message 11 of 11 , Feb 2, 2011
                        • 0 Attachment
                          Jim,

                          If I were to tackle multiple inheritance today, I would go with "unordered up to join".
                          Given a diamond inheritance pattern, with a match, A, found on one arm, and another match, B, found above the join point,
                          I would let the lookup find A. Today in Self it's an ambiguous lookup error.

                          - David


                          On Feb 2, 2011, at 8:03 AM, Jim Wise wrote:

                          > Russell Allen <mail@...> writes:
                          >
                          >> Hi Duke,
                          >>
                          >> The three main current sources of documentation are the tutorial as
                          >> Casey mentioned, the manual at docs.selflanguage.org and the various
                          >> papers on the website (though these can be out of date!).
                          >>
                          >> Also the wiki: https://github.com/russellallen/self/wiki
                          >
                          > Is there a ps or pdf version of the handbook from docs.selflanguage.org
                          > (I see that the main website notes this is `coming soon')? Also, I
                          > assume the Demo snapshot also serves as the best body of example code
                          > out there -- is there anywhere else I should be looking? I've found the
                          > bibliography on selflanguage.org very helpful for `getting' self, but
                          > could use to look at a lot more code...
                          >
                          >
                          > One main question I had: I notice that `Parents are Shared Parts:
                          > Inheritance and Encapsulation in Self' (1991) gives an extensive
                          > description of the sender-path-tiebreaker rule, prioritized multiple
                          > inheritance, and some thoughts on backtracking in receiver finding, but
                          > by the time of `Programming as an Experience: The Inspiration for Self'
                          > (1995), these are described as a design mistake. Were these mechanisms
                          > removed from the language, and if so, what is the current mechanism for
                          > resolution of same-named slots in parents inherited through different
                          > parent slots?
                          >
                          > From the point of view of 16 years further on, how do these design
                          > choices look, and what would you do about resends, if you were designing
                          > Self today? I ask because in other languages supporting MI, the
                          > linearization (local or global) rules for method lookup often seem to
                          > require as much description as the entire rest of the inheritance model
                          > (Scala, C++), have extensive special-case features to control
                          > re-dispatch (CLOS) or are simply unresolved issues, perhaps even
                          > allowing programmers to switch between available models at program run
                          > time (Perl).
                          >
                          >
                          > Also, as a word of thanks, I'd like to say that, coming mainly from
                          > lisp, ml, and Objective-C and having dabbled with Smalltalk several
                          > times over the years, experimenting with Self has been quite pleasant
                          > for me. At first glance, it feels in many ways like
                          >
                          > Self : Smalltalk :: Scheme : Common Lisp
                          >
                          > -- similar language, but a reboot around a core set of principles,
                          > consistently carried through the language, and a couple of really neat
                          > ways to make things which would be a special-case feature of other
                          > languages fall out of this consistency. The use of a very simple object
                          > model instead of elaborate systems of strongly-typed inheritance (ala
                          > Beta or Scala) or parallel (possibly class-aware) systems of generic
                          > programming (Scala, C++, Ada) to achieve the same goals probably
                          > contributes to this impression.
                          >
                          > But this may just be me trying to relate the experience to something I
                          > already know.
                          >
                          >
                          > It was also neat to see a mention of Kevo float by, as I wrote some
                          > small code with that under MacOS 7 when in college (sometime after the
                          > Sparcstation 1 boot monitor introduced me to Forth, and before the NeXT
                          > introduced me to Objective-C :-) ). If anyone does find the Kevo
                          > sources, I'd also be interested to get a copy.
                          >
                          > Thanks,
                          > --
                          > Jim Wise
                          > jwise@...
                        Your message has been successfully submitted and would be delivered to recipients shortly.