Date: Sat, 1 Nov 2003 18:04:38 -0500 From: Rahul Siddharthan <rsidd@online.fr> To: Greg Pavelcak <g.pavelcak@comcast.net> Cc: freebsd-chat@freebsd.org Subject: Re: How do hackers drive? Message-ID: <20031101230438.GA2023@online.fr> In-Reply-To: <20031101205412.GA15226@bishop.my.domain>
next in thread | previous in thread | raw e-mail | index | archive | help
Greg Pavelcak wrote:
> I'm a non-programmer. Is it the OO languages that talk about
> "methods" when it looks like they're talking about something like
> functions, or is that something else?
I'm largely a non-programmer too, but yes.
> Choosing an appropriate technical term can be that difficult, but
> it's downright silly to choose a weird term for something that
> already has a perfectly good name.
But you want to distinguish between "functions" that accept parameters,
and "methods" that operate on the objects they're a part of.
In python for example, a lot of string operations are implemented both
as functions (part of the "string" module, retained largely for
backward-compatibility reasons) and as methods of the string object
itself. Thus,
string.split("Hello world")
is a function call that accepts "Hello world" as a parameter, while
"Hello world".split()
is a method call; the method is part of the "string" object. Of course,
methods can accept parameters too, as in
"Hello world".split('o')
which will yield
['Hell', ' w', 'rld']
Ultimately I don't believe there is a difference in functionality but
the object-oriented approach sometimes feels cleaner, though it took me
a long time to see it. Eg, if you want to make sure a function only
operates on the data it really should and not overwrite other data
accidentally, OO can safeguard you better. C has pretty much no checks,
you can overwrite any part of the memory owned by you and never realise
it.
Perhaps some real programmer wants to correct/expand the above...
Rahul
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031101230438.GA2023>
