OO is good at being able to encapsulate the complexity of a program
If you'll read the link I posted, that is in fact not the conclusion of many folks at OOPSLA— one of the leading conferences on object-oriented programming. Certainly the paradigm claims this as a benefit, but propaganda does not make it so. And just because OO is more expressive than structured programming ("the old way") doesn't say anything about functional languages; straw men and all that. For an explanation of why OOP helps modularity in comparison with structured programming, see this post (http://r6.ca/blog/20090511T013939Z.html) which also details one of the reasons functional programming is becoming popular (by continuing on that path further than OO languages do).
In addition to limiting scope away from global variables, the other organizational benefit of OO is polymorphism. However, subtype polymorphism (ala OO) is much harder to reason about than parametric polymorphism (ala FP), and parametric polymorphism captures a great majority of the polymorphism that is desired in practice. If you don't think that subtype polymorphism is hard, consider the fact that Sun Microsystems got it wrong for arrays in Java. Certainly subtype polymorphism has its uses, but these are fewer than is often thought; in any case, the real organizational benefit comes from having any variety of polymorphism, which FP does in spades.
Nothing about FP contraindicates modularity. Functional programs tend to be more modular than object-oriented programs because of the greater expressive power. And I've worked on large projects in both paradigms. Perhaps you're confusing structured programming (C, Fortran,...) with functional programming (Haskell, Lisp,...)? You'd be hard pressed to get more dynamic than Common Lisp.
no subject
If you'll read the link I posted, that is in fact not the conclusion of many folks at OOPSLA— one of the leading conferences on object-oriented programming. Certainly the paradigm claims this as a benefit, but propaganda does not make it so. And just because OO is more expressive than structured programming ("the old way") doesn't say anything about functional languages; straw men and all that. For an explanation of why OOP helps modularity in comparison with structured programming, see this post (http://r6.ca/blog/20090511T013939Z.html) which also details one of the reasons functional programming is becoming popular (by continuing on that path further than OO languages do).
In addition to limiting scope away from global variables, the other organizational benefit of OO is polymorphism. However, subtype polymorphism (ala OO) is much harder to reason about than parametric polymorphism (ala FP), and parametric polymorphism captures a great majority of the polymorphism that is desired in practice. If you don't think that subtype polymorphism is hard, consider the fact that Sun Microsystems got it wrong for arrays in Java. Certainly subtype polymorphism has its uses, but these are fewer than is often thought; in any case, the real organizational benefit comes from having any variety of polymorphism, which FP does in spades.
Nothing about FP contraindicates modularity. Functional programs tend to be more modular than object-oriented programs because of the greater expressive power. And I've worked on large projects in both paradigms. Perhaps you're confusing structured programming (C, Fortran,...) with functional programming (Haskell, Lisp,...)? You'd be hard pressed to get more dynamic than Common Lisp.