On 11/20/2011 7:28 AM, Jeff Nowakowski wrote:
Yet the outside world sees that it does, so any marketing along the lines of D being "multi-paradigm" isn't going to be unique.
I am not arguing that D being multi-paradigm is unique. I would argue that it arguably supports more paradigms than any other language.
My view of what is multi-paradigm isn't binary, I know there's a continuum. But I think that saying Java supports imperative programming is quite a stretch. Saying Scala supports functional is also a stretch, because it supports only one of the three defining characteristics of functional programming. It doesn't even support the other two in a half-assed manner, it doesn't support them at all.
I didn't invent my own definition of functional programming. I am using the standard definition that anyone can look up. I don't see that as being unreasonable, binary, or misusing the term.
It's a stupid sounding buzzword because average people don't use it in everyday conversation. They use simpler, more common words like "model" or "style". It's like when the marketing droids came up with the word "leverage" and starting using it everywhere in place of "use".
Back around 1990, OOP was the hot buzzword of the day. Everyone started calling their product "object oriented". Every programming language was tortured into being object oriented (even Fortran!), databases were re-documented as object oriented, even operating systems were touted as object oriented. It did become a joke after a while to call something object oriented. Fortunately, after a while, the noise passed and OOP reverted to just another paradigm among many.
I see an echo of that today in calling Java multi-paradigm, which I find hilariously ironic as Java was designed during the apex of the OOP hype and was certainly designed to buy into OOP lock, stock and barrel.
But I am not seeing multi-paradigm jargon hype as nearly as pervasive as the OOP fever was.
(In another of the great ironies, the kickoff of the Great OOP Boom was, you guessed it, C++. C++ led the charge for OOP. And yet, at the height of OOP, C++ abruptly turned left and went to parametric polymorphism, i.e. template metaprogramming. You don't see much of anything written about C++'s OOP abilities any more.)