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