|
|
Wednesday 31 July 2002
|
Profusion of Programming Paradigms
Ever since the rise of Object-Oriented Programming in the late 1980's,
it has become fashionable for CS researchers to try to come up with
"the next programming paradigm".
(Tangent: in this industry, the meaning of the word "paradigm" has
shifted from its original meaning that was roughly synonymous with
"archetype" or "example". Get over it.)
There is a particular profusion of them coming up like
weeds these days. I think some of them are just buzzwords
in search of a market.
But just to confuse the issue a bit further, I thought I'd list
a few of the more prominent ones these days, along with example
or archetypal (note: not "archetypical") programming languages
for each. Um, paradigms, in its original sense.
- Paradigm-free Programming (FORTRAN, COBOL)
- Structured Programming (ALGOL)
- Imperative Programming (C, SNOBOL; actually, all of the above)
- Object-Oriented Programming (Simula (1967), Smalltalk)
- Declarative Programming ... includes FP & LP:
- Functional Programming (ML, Haskell)
- Logic Programming (Prolog, Mercury)
- Constraint Programming (Oz/Mozart)
- Generative Programming (META-ML, macros in LISP/scheme,
C++ templates, Application Generators ... any code that
writes code)
- I somehow feel a connection between Generative Programming and
Term Rewriting Systems; and that they're both related to
Source-to-source transformation, software re-engineering
(REFINE; http://www.reasoning.com). But these latter techniques don't
seem to have their own "paradigm buzzwords" -- better get
on the ball, there!
- Aspect-Oriented Programming (AspectJ)
Looks mighty similar to scheme hygienic macros,
or some of the fancier features of CLOS methods.
- Strategic Programming (Stratego)
Related to Term Rewriting Systems. Maybe this "strategic" is
the buzzword I was looking for, above.
- eXtreme Programming (Smalltalk again). Not really a pardigm
in this sense — more a "way of doing programming" than anything
programming-language-oriented.
- Buzzword Programming — a "way of doing marketing" :-)
(Test added later: If I modify and re-publish one day of an archive month,
do I then get a monthly archive for that month?)
12:48:02 AM
|
|
|
|
© Copyright
2007
Doug Landauer
.
Last update:
07/2/6; 12:13:27
. |
|
|
|
|