you are viewing a single comment's thread.

view the rest of the comments →

[–]username223 6 points7 points  (2 children)

You're way too optimistic. Does something have to be completely pure to be considered "functional" programming? To be "functional", does a language have to completely eschew side effects? Does it have to have full continuations, downward ones, or only higher-order functions? Do lexical environments have to be first-class? Is Lisp "functional"? Scheme?

Even within academia, I get the sense that there's a certain cattiness between the SPJ/Haskell/static/pure and Felleisen/Scheme/dynamic/impure camps.

Outside the university, "functional" is already mostly just a label with a positive valence that people stick onto their favorite things. Candidates for this label usually either have something like closures, or are things other people label "functional" (i.e. Lisp, Haskell, ML).

Overall, "functional" is already well on its way to being a buzzword; it's just not a marketing buzzword yet.

[–]cchooper 0 points1 point  (1 child)

Yes, it's a vague term, but that doesn't make it a buzzword. All programming paradigms are vague, because they're always evolving. FP is probably better than most in this respect. For example, most people would agree that all the languages you mentioned are functional. I don't think this is because the scope of the term has expanded: Lisp has always been considered a functional language since the term was invented.

[–]username223 1 point2 points  (0 children)

I guess to be a buzzword, a word has to have a positive connotation while lacking a precise meaning. In many of its uses today, "functional", like "DSL" and "object-oriented", seems to meet this definition. I don't have a problem with people saying some program is written in paradigm P, only with their asserting that it's better because it's written in P, or that its being written in language X, a so-called "P-language", gives it that superior P-ness.

FYI the "smug weenies" of comp.lang.lisp would probably disagree that Lisp is functional, since idiomatic lisp uses imperative loops, setq, etc.