

How Object Oriented Is CLOS? - gnosis
http://www.c2.com/cgi/wiki?HowObjectOrientedIsClos

======
edw
Do we really need people combing through every page of C2 and submitting every
page? Don't you think the recent C2 story encouraged people to check out C2
for themselves? This seems to happen to every site that gets a single story
submission: they all get strip-mined for submissions. Does it really make
sense to make HN a compendium of links to every page on every remotely
technical web site? I think Wikipedia might have an article on bubble sort the
someone can gain a few points by submitting.

~~~
gnosis
Funny how allowing voting on submissions makes some people judge the value of
submissions by the number of votes they may have gotten, while at the same
time completely forgetting that each of those votes shows that some person
found the submission valuable.

Look, if submitting C2 articles had no value for anyone on HN, they simply
would not get any votes.

The fact that they get votes means that the people who voted on them found
them valuable, and that submitting them provides value to the HN community.

Now, you might personally not find the particular submission appropriate for
HN, in which case you should remember the HN guidelines:

 _"Please don't submit comments complaining that a submission is inappropriate
for the site. If you think something is spam or offtopic, flag it by going to
its page and clicking on the "flag" link. (Not all users will see this; there
is a karma threshold.) If you flag something, please don't also comment that
you did."_

<http://ycombinator.com/newsguidelines.html>

~~~
edw
Point taken. But reading HN, I feel a bit the way I did about a year ago as
one of Philadelphia's city councilmen was goading the police into cracking
down on miscreant cyclists: There are profound asymmetries in the way these
guidelines (which people quote like the were whispered in PG's ear by God
Himself) are applied.

In the case of Philly last year, you had cops obliviously riding their cop
bicycles on sidewalks and the wrong way down streets. Meanwhile kids are
getting cited for the same thing. You have people in 4,000 lb automobiles
physically intimidating people balanced atop 25 lb of steel tubing. You have
pedestrians self-righteously accusing cyclists of endangering people's lives
while they obliviously cross against lights without looking.*

Your point that is someone's voting for it, it means that someone finds it
valuable is the same argument that spammers used to use. This isn't anarchy:
there are rules, as you pointed out. People will vote to have government
spending increased and taxes zeroed out. Just because someone will vote for
something, it doesn't mean it makes sense or is a good idea or is defensible.

* I'm still recovering from going over my handlebars a couple weeks ago when I wrecked my bike to avoid a space cadet pedestrian who crossed on a red without even glancing down Sansom St. Lucky for me, it was right in front of Jefferson Hospital's E.R.

~~~
gnosis
_"Your point that is someone's voting for it, it means that someone finds it
valuable is the same argument that spammers used to use."_

It sounds like you're saying that people shouldn't be forced to look at
something that they don't want to see. And I fully agree with that.

That's why I've long advocated allowing HN articles to be tagged. That way, if
you (for example) don't want to see any articles from c2, you can filter out
articles with the "c2" tag.

Unfortunately, the powers that be (and the majority of HN users themselves)
don't want to allow tags on HN. So we're stuck with the situation we have now,
where people will submit whatever they think is appropriate, and HN readers
are deluged with everything that manages to get enough votes.

If you have a better solution for this problem, I'm all ears.

 _"This isn't anarchy: there are rules"_

There are guidelines, and the guidelines say that what's appropriate to HN is:

    
    
      Anything that good hackers would find interesting. That includes more than
      hacking and startups. If you had to reduce it to a sentence, the answer
      might be: anything that gratifies one's intellectual curiosity.
    

For me, that includes articles on c2 that I find interesting and that I think
others on HN find interesting.

------
scottdw2
Interesting article!

I have one nit-pick: Multiple dispatch doesn't, in and of its self, imply
something isn't object oriented. You can certainly argue that multiple
dispatch, as it exists in CLOS is not object oriented, but it is possible to
have "object-oriented" multiple dispatch.

VB.NET is a good example.

The "late bound" dispatcher in VB.NET will:

1) Dynamically construct a "method-group" using the runtime type of a receiver
of a method call. This collects all appropriately named instance methods in
the receiver type and any of it's base types.

2) Dynamically perform overload resolution using the runtime type of each
method argument. This behaves like the static overload resolution done in the
compiler except that it uses dynamic types, rather than static types, and
happens at runtime. It also doesn't consider extension methods.

In any case, this yields method dispatch that varies dynamically based on the
runtime type of multiple arguments. It is very similar to multi-methods in
CLOS, except that preference is given to the receiver over other parameter
types, and that you can't override a "multi-method" without modifying the
definition of at least one type.

------
pnathan
A good counter question is "What is Object Orientation"?

According to Google's definition

""" (of a programming language) Using a methodology that enables a system to
be modeled as a set of objects that can be controlled and manipulated in a
modular manner """

I think the OO fad wandered down some weird roads with Java and patterns and
in some part lost sight of the goals of OO and got focused on the
AbstractFactoryFactoryFactoryInterfaceFactories.

------
raffaelc
To summarize the link "CLOS is not as limited in its functionality as the lame
language I learned first (i.e., Java, C++, etc.) and since the lame language I
learned first is the very definition of OO, CLOS isn't OO."

Such people see OO principally as a form of bondage. The link focuses heavily
on encapsulation (i.e., restricting the programmer) rather than flexibility
and capability (i.e., empowering the programmer).

You can have any degree of encapsulation and restriction you want with CLOS
(see the responses in the link for precisely how). But you can't have any
degree of freedom and power you want in Java, etc. Defining OO by how much
your language limits programmer power and flexibility is a painful mistake.

------
dkarl
The 6th comment on the page says it all: the question as stated invites a
religious war. "What style of OO does CLOS embody/encourage?" is a more
constructive question to ask.

