When I started to learn about imperative programming and declarative programming it raised many doubts, like, how are structured, modular and object-oriented programming classified: declarative or imperative?

  • 1
    $\begingroup$ There are too many questions here. Please consider breaking it down into a number of questions. $\endgroup$ – Dave Clarke Feb 25 '14 at 5:37
  • $\begingroup$ I've cleaned up the question a little bit and reduced it to a single question. The other two questions were incomprehensible to me, so I deleted them. Please feel free to ask them again, paying more attention to how they are phrased. $\endgroup$ – Dave Clarke Feb 25 '14 at 5:41

Do not be too obsessed with it. It is often only buzzwords covering a fuzzy trend (from structured to object oriented) towards better organization of programs, with somewhat different realizations in different languages. It can appear in any programming paradigm, whether imperative or declarative. They are intended to improve readability of programs, good programming practice, maintainability, code reuse in various guises, independence of program parts, information hiding.

What is a lot more important is to understand the specific techniques that can be used, their costs and benefits, the constraints they create and the freedom they provide. The more interesting techniques are based on formal mathematical analysis.

It involves a variety of more precisely definable concepts, such as environments, scoping and binding of variables, typing systems, modularity and interfacing, parameterization of code and modules, exception handling ...

I would think you will be better off concentrating on these identified technical issues than on more popular but fuzzier concept.


Not the answer you're looking for? Browse other questions tagged or ask your own question.