You're viewing a comment by Alain Bo and its responses.

Alain Bo Permalink
June 18, 2010, 16:27

Are you making up these new terms?
Polymorphism means the ability to take multiple forms and I guess that in a way you could apply the term as you do but since they are different things, why would you want to do so.

If you overload the term polymorphism to mean additional things, you're only confusing the different techniques IMO. Type casting is type casting, generic programming is generic programming and overloading is overloading. All these techniques have a name, why invent new ones?

Comment Responses

Zach T Permalink
June 18, 2010, 16:49

Alain Bo:

Because there's a mathematical theory that underpins programming languages, and the terms like "overloading" "generic programming" and "casting" are terms invented on top of *that* language to simplify matters for mere mortals. In that language, they are the same. Generic programming *is* compile-time polymorphism. This is a well understood fact. That people refer to it by a more friendly name is just a matter of convenience.

Alain Bo Permalink
June 19, 2010, 13:27


Thanks for the info. Maybe I don't hang around the right corners on the Internet. I arrived at this blog from the reddit C++ section and the title of the article is "... Polymorphism in C++." I expected something about C++. What I got instead is that it's possible to talk about different techniques in the same article because these techniques can also be named "something" polymorphism.

I learned something new so it's not all bad.

June 18, 2010, 17:09

I haven't invented a single term.

PepeMandioca Permalink
June 18, 2010, 17:43

He's not inventing stuff, read Luca Cardelli's 1985 paper "On understanding types, data abstraction, and polymorphism" (

Reply To This Comment

(why do I need your e-mail?)

(Your twitter handle, if you have one.)

Type the word "rocket_224": (just to make sure you're a human)

Please preview the comment before submitting to make sure it's OK.