Seeking succnict thoughts on pros/cons of hl language styles

Assuming one can choose among: Imperative, Functional, Object-Oriented, Declarative styles (or anything else important I've missed, including sub-categories thereof e.g. is Relational a sub-category of Declarative?) of programming language, what are the pros and cons of each? Yes, I have my copy of CTM, and I'm making my way through it, but I'm hoping to find/make a list that is more succinct. :-)

I'd break that down into 3 perspectives: the theoretical; the pragmatic; and the current state-of-the-art. (E.g. "Theoretically, Haskell should be able to do XYZ, but the current compiler + runtime doesn't, although a first take on it is slated for 6.13.")

The main thing I'm trying to do is get a feeling / mental model for whatever "iron triangle/polygon" there is among the pros-cons of language style at a high level.

A small example of a factoid in this realm: OO vs. FP: OO pro is adding a new data type, con is adding a new method, whereas FP's pro is adding a new function, and the con is adding a new data type.

thank you and yes i will try to re-dig-in to CTM.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.


You're missing dataflow programming, reactive programming (including functional-reactive and rules-based reactive) and other concurrency-oriented styles (process calculi, actors model, orchestration).

I also believe declarative meta-programming deserves its own position.

I really don't wish to offer opinions here. I favor focus on language features and properties and combinations thereof. Programming styles are far too ephemeral.

Quite a menagerie

It is indeed an arbitrarily nuanced topic. Thanks for pointing out that there is an even greater richness of possibilities to study!

Pros and cons in CTM

If you want a quick list from CTM, check out the index. Under 'principle' there is a list of principles and under 'trade-off' there is a list of trade-offs. You can derive pros and cons from these lists. For example, your 'factoid' is listed under 'trade-off' as functional decomposition versus type decomposition.

oh boy

i guess when i said i needed to read CTM i wasn't half wrong. :-} thanks!