I'm a C# developer, but I also know Java, JavaScript, XSLT, a little of C and Perl, eand some other that I may have forgotten. Still, the paradigm I'm most familiar towith is OOP.
I have always thought that OOP was the natural evolution of procedural programming, but I wonderedwonder if OOP is that perfect. After reading some articles on the web and some questions here, I found that many people don't agree with this, and some say even thatthat OOP is a bad option.
While developing, I really appreciate using lambdas, LINQ, anonymous types, and really enjoy JavaScript with its prototyping and dynamic nature.
But still, I can't think of any scenario where OOP is not an option, or where other paradigms fitsfit better. The only thing I can think of is that sometimes programming with OOP is really boring and slow, like having to declare a class, import some other classes and, declaring a method, specifying its parameters, return type and name just to show "Hello, World!" on the console screen. But still, for real-life programs, it seems like something that compensates its cost.
In what scenarios doesdo other paradigms fitsfit better than OOP? What are itstheir advantages over OOP and werewhere does OOP makesmake things worse instead of helping? Especially, what are the advantages and in what scenarios do excel procedural and functional programming excel?