[Tutor] Terminology WAS Whats so good about OOP ?

Brian van den Broek bvande at po-box.mcgill.ca
Sun Mar 13 19:38:18 CET 2005

Sean Perry said unto the world upon 2005-03-13 02:49:
> Brian van den Broek wrote:
>> 1) Namespace issues
>> With procedural (or imperative -- don't know which is the right terms
>> for non-OOP code which employs functions) code, you can have issues
>> caused by namespaces. Just yesterday, someone on the main python
>> list/newsgroup had code something like:
> procedural v. OO
> imperative v. functional
> In an imperative language you tell the computer what to do (imperative):
> "put 5 in X, use X in function foo, store foo's result in blah". The 
> base component is an imperative statement. If you have not had an 
> English grammar class recently imperative sentences are things like 
> "You, bring me my supper".
> In a functional language, the base item is a function.
> foo(X(blah())) or for the lispy people (foo (x (blah))).
> You could do OO in a functional language. Haskell for instance has a 
> concept of classes, user defined types, polymorphism, etc.
> The point is, these are two axes on the programming language chart.
> procedural, imperative -> C
> OO, functional -> OCaml (close enough anyways)

Thanks for the explanation, Sean.

The reference to grammatical theory here does seem to make sense. But, 
relying on correspondence between the technical terms in 
programming/comp. sci. and other fields with similar terminology can 
get in the way, too.

I've a background in formal logic; it took me some effort to stop 
being upset that in Pythonic programming parlance get_a_random_element 
is a "function":

import random
def get_a_random_element(sequence):
     return random.choice(sequence)

(Never mind that you wouldn't really write this; I needed it to 
genuinely be a function for the example.)

Where I come from, the output of a function is determined by the input 
to the function.

Anyway, thanks again. Best to all,

Brian vdB

More information about the Tutor mailing list