Re: Problem building Io with the addons

Duke Normandin <[email protected]> Tue, 21 Feb 2012 07:01:33 -0700
Newsgroups gmane.comp.lang.io
Message-ID <20120221070133.0bfd8cfa@select-man>
On Tue, 21 Feb 2012 07:40:29 -0500
gatesphere <[email protected]> wrote:

Do you know of a great "prototype-based OOP" tutorial, for the OOP
challenged? :) Doesn't have to be Io based, simply applicable.

Curious though! I've been hacking code ever since I bought my first
machine - an Apple][e back in 1981. First 6502, then Z80 assembly.
Got fluent with BASIC, then dove into K&R C in the late '80s -
didn't get far. After a 10 yr lull, I became fluent in Perl4 then
PHP. Now I do a lot of newLISP, but I've been "pulled" towards OOP
for a while now, but I HATE c++ and ObjectiveC et al. There's also
Slate and Factor though ... 

> Yup! You have it correct.
> 
> I'm glad you chose a language like Io to learn OOP, rather than 
> something like Java or C++.  Io really lets you get down to the
> guts of what it means to be OO.
> 
> -->Jake
> 
>
> > > Voodoo.
> > >
> > > Actually, the aSocket there is a variable name. When you see
> > > aSocket in my code, it is the name of a parameter passed into
> > > a method. Io uses duck typing, kind of, so as long as
> > > whatever is bound to aSocket responds to the slots you're
> > > trying to access, Io is happy. In this case, handleSocket
> > > expects a Socket, so just act upon aSocket as if it were a
> > > Socket. Server calls handleSocket (and hands it the Socket
> > > that is created on connection) whenever it receives a new
> > > connection, and handleSocket is where all the magic happens
> > > here.
> > >
> > > If you're interested in how things work, (most) things in Io
> > > are viewable in the REPL. Just do a
> > > ObjectName slotSummary
> > > to get a list of slots (values or methods) of an object, and a
> > > ObjectName getSlot("slotName")
> > > to get the value attached to a slot on an object. For example,
> > > Io> Socket getSlot("host")
> > > ==> blah blah blah...
> > > method(
> > > address ip
> > > )
> > >
> > > -->Jake
> >
> > Thanks for the quick explanation! I see where Server/start
> > method defines "handleSocket" as well, to get the show on the
> > road. And in your server sub-class, you re-define
> > "handleSocket".
> >
> > Did I say all that correctly? I must admit that I'm *very* new
> > to OOP! I've stayed away until I stumbled on Smalltalk, and
> > then Self. I preferred the latter, but had issues getting it to
> > work properly on the OS X box I was using at the time. Gave up
> > on it. I'm hoping that Io will be an eye opener for me! :)
> >
> > --
> > Duke
> >
> > 
>