Subject: bug#10781: EIEIO namespace use

From: "Eric M. Ludlam" <[email-masked]>
Date: Sat, 28 Apr 2012 08:29:48 -0400

On 04/28/2012 06:28 AM, David Engster wrote:
> Stefan Monnier writes:
>> EIEIO needs to be cleaned up so it doesn't intrude all over
>> the namespace.
>> The worst offenders include:
>> - `this'.
>> - `slot-*'.
>> - `constructor', `destructor'.
>> - `delete-instance'.
>> - `initialize-instance'.
>> - `clone'.
>> - `data-debug*'.
>> - `make-instance'.
>> - `oref'.
>> - `oset'.
>> - `with-slots'.
>> - `object-*'.
>> - `class-*'.
>> - `next-method-p'.
>> - `call-next-method'.
>> - error symbols (like no-next-method).
>> - ... probably `defmethod', `defclass', and `defgeneric'.
>
> I think this should be a goal for the next merge, but I'm at a loss
> regarding how this should be tackled without, you know, breaking
> practically every bit of code in CEDET and probably others. Do you have
> a suggestion? Maybe even creating EIEIOv2 and slowly porting CEDET to
> that?

Many symbols in eieio are the names given by CLOS, like 
initialize-instance, make-instance, with-slots, and call-next-method. 
Other names like oref/oset were meant to fill gaps where Emacs couldn't 
do it the clos way.  If Emacs is to have a good way to do some basic OO 
programming, it seems to me that the names would match up with other 
core functions that crowd the core namespace, and it would seem poor to 
fill your oo code with a bunch of unnecessarily long names.

That said, there are certainly plenty that could be removed, and I would 
not be sad to see them go... like 'this' and a few of the class-* and 
object-* functions.  Some already have eieio-* equivalents, but I didn't 
finish that.

Eric