10 comments

[ 3.5 ms ] story [ 9.1 ms ] thread
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.

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.
The primary purpose of hacker news is to aggregate content from other places on the web.... I find someone searching through C2 and posting links to interesting articles to HN a useful for service. Othwerwise HN has no purpose.
The community needs to exercise some collective editorial discretion. If an institution hopes to serve some curatorial purpose, it needs to make choices about what merits inclusion and what doesn't. Asking "the community" to collectively exercise anything is a fool's errand, therefore HN is doomed to suffer from Borges's Map Syndrome.
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

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.

"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.
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.

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.
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.