Santhosh G R <> writes:

>> > Clojure is a multi-paradigm language
>> no it's not, and it's most certainty not an OOP 
>> language:
> I hear about this everywhere. Is Clojure not a multi-paradigm language
> because that is the rationale for the language? For me - It supports
> functional programming. It supports object orientation, though it does
> not support object oriented constructs.

Clojure's Wikipedia article calls it multi-paradigm, which may be partly
where the confusion is coming from.  Funnily enough Wikipedia also claims
Java is multi-paradigm, having the four paradigms: generic, reflective,
imperative and object-oriented.  I wouldn't call this multi-paradigm as
these four things are mostly orthogonal and don't really constitute
different programming styles.

> Yep, definitely it does not encourage multiple paradigms, but it
> allows you to do so!

You can do object-orientation in C (see GObject), does that make it an
object-oriented language?  If so than every language is "multi-paradigm"
so the word is meaningless. ;-)

In my mind the difference between a multi-paradigm language and one that
is not is about what is idiomatic, rather than what is and is not
possible, as the latter always reduces to a Turing-completeness style
argument.  Classic examples of multi-paradigm languages are Common Lisp,
Scala and Perl.  Clojure is certainly not multi-paradigm in the same
sense that these languages are.  Clojure has a very strong style of its
own, which is definitely not imperative or object-oriented but neither
is it purely functional, but just because it doesn't fit perfectly into
one of the traditional categories doesn't make it's multi-paradigm.

Of course that's just my interpretation. :-)

You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
For more options, visit this group at

Reply via email to