views:

545

answers:

8

I have heard of many and studied several, are there others that I've missed? I have studied:

I'm looking for 'whole' paradigms for study, such as the above, that tend to fit a boundary around how you express a program - Aspect Oriented Programming doesn't fit into this description to me since it is an add-on to existing languages, rather than typically embodied by a language.

What other paradigms are there and what is compelling about them?

+2  A: 

Generative programming

EDIT: look into ontology, OpenCyc

eulerfx
A: 

quick guess: trivial, such as non-turing complete languages.

Andreas Petersson
+1  A: 

There's process-oriented programming, don't know if that's "whole" enough for you.

moritz
I explicitly mentioned AOP as not fitting the question - what is important about it? I just see it as an alternative method of DI - are there AOP languages? Or just extensions to existing languages?
Kyle Burton
Sorry, I was half-asleep when I wrote the answer. Updated now.
moritz
+2  A: 

Do stack-based languages, such as Forth and Postscript, count as a paradigm? Certainly programming in them is like no other language. Technically I suppose they count as Procedural, but their structure is completely different.

Marcus Downing
A: 

Not sure if you can call them paradigms but:

  • real time programming languages

  • assembler languages ;-)

Gamecat
+3  A: 

Aspect-Oriented Programming is most definitely a programing paradigm. It is actually used all the time without people even realizing it. It can be done in any language kind of like the way you can use object-oriented programming in a language like C that doesn't have any direct support for it.

Most people only think of AspectJ when they hear about AOP, but that's just one popular language/implementation. AspectJ feels like an add-on because it simply adds more AOP features on top of an otherwise existing language. That says nothing for the paradigm itself.

AOP is all about separation of concerns. Encapsulation, modularization, and the ability to split blocks of code into functions -- some of the most fundamental concepts in programming -- are all a part of aspect-oriented programming. To do true AOP though, you go even further, and separate concerns at the statement level. Pointcuts are yet another feature designed to separate concerns when certain ones necessarily cut across -- or crosscut -- other abstractions.

Jonathan Tran
NOTE: a paradigm, but not mutually exclusive with the others. OO programming is often used WITH AOP. ;D
CrazyJugglerDrummer
+6  A: 

There is quite a comprehensive list on wikipedia

toolkit
A: 

Some would add agent-oriented. Not that I would agree.

CesarGon