On 2011-11-15 10:16, Walter Bright wrote:
On 11/15/2011 12:43 AM, Jacob Carlborg wrote:
If you would consider at least two paradigms as multiparadigm then I
would say
that a lot of languages are multiparadigm.

We could bikeshed forever what is a paradigm and what isn't, and how
many constitutes multi, etc.

Yeah, I guess there is not point of this discussion.

But whatever color one's shed is painted, it's pretty clear that D
supports an unusually large number of paradigms for a programming
language. It doesn't start from an idea that "everything is an object".

I agree with that.

For example, Haskell is described as:

"Haskell is a standardized, general-purpose purely functional
programming language, with non-strict semantics and strong static
typing" --- http://en.wikipedia.org/wiki/Haskell_(programming_language)

which certainly suggests a single paradigm language.

"Smalltalk is an object-oriented, dynamically typed, reflective
programming language." --- http://en.wikipedia.org/wiki/Smalltalk

"Java is a general-purpose, concurrent, class-based, object-oriented
language that is specifically designed to have as few implementation
dependencies as possible." ---
http://en.wikipedia.org/wiki/Java_(programming_language)

"Go is a compiled, garbage-collected, concurrent programming language"
--- http://en.wikipedia.org/wiki/Go_(programming_language)


What does Wikipedia have to say about C++?

"C++ is a statically typed, free-form, multi-paradigm, compiled,
general-purpose programming language." ---
http://en.wikipedia.org/wiki/C%2B%2B

It's a markedly different tone from the others.

Here's what Wikipedia has to say about what a multi-paradigm language is:

http://en.wikipedia.org/wiki/Multi-paradigm_programming_language#Multi-paradigm_programming_language

According to this: http://en.wikipedia.org/wiki/Comparison_of_programming_languages

Most languages are multi-paradigm.

Smalltalk: concurrent, declarative, event-driven, object-oriented, reflective

Java: generic, imperative, object-oriented, reflective

Go: concurrent, imperative

Haskell: functional, generic, lazy evaluation

--
/Jacob Carlborg

Reply via email to