Thursday, May 30, 2013

Nothing in OOP is obvious

Is nothing in OOP obvious to the neophyte?

Here is comment from a class named Observable declared as follows :

   public abstract shared Observable

The documentation for the class contains the following method comment  :

public add-observer

Add an observer to this object's list of observers to be notified. Typically this is only called from the Observer's observe method.

For this to make sense to a neophyte, wouldn't we need TWO variants of PUBLIC, e.g.,


corresponding to

  • obj-public (intended for me to call against myself)
  • consumers-public (available as your message sent to me)


BTW, that add-observer method is declared as follows :

    error-if-present?:bool = false

Is the issue the method name ?  Should it be 



Consider :


But what in a name prevents a hack ?  One idea : object procedures and functions versus messages.  In such a language, an object never sends itself a message.  If you have a local copy of an object, you can use its public procedures and functions.  If you have a pointer to an object - an object reference - you send only messages.

And what did the documenting author mean by "typically" ?

Friday, May 10, 2013

Burkina Faso beliefs

Burkina Faso is said to have no atheists (too low to be statistically reported as non-zero percentage) - but to have mutilated over 70% of all females (girls and women subjected to genital mutilation.) Is the margin of error significant for ones grasp of these two facts ?

What distinguished the remaining 24-29% ? Parental education ? Standard of living ? Level of education ?  Access to internet ?

UN Report on FGM and FGC

Religion stats

Do you have more recent numbers ?