Which Path?
Please peruse the graphic below and then answer these questions for BD00: Is it a forgone conclusion that object-oriented development is the higher quality path from requirements to source code for all software-intensive applications? Has object-oriented development transitioned over time from a heresy into a dogma?
With the rising demand for more scaleable, distributed, fault-tolerant, concurrent systems and the continuing maturation of functional languages (founded on immutability, statelessness, message-passing (e.g. Erlang, Scala)), choosing between object-oriented and function-oriented technical approaches may be more important for success than choosing between agile development methodologies.
I see people now who are very hidebound when it to comes to OOP. I think OOP is a powerful way to organize functionality. But not everything has to be an object. There’s nothing wrong with stand alone functions, for instance. I use them all the time because it makes more sense many times. With Boost and C++, you can certainly duplicate the advantages that Erlang brings to the table, but of course that is like saying “I can write OOP in C! I don’t need C++!”
Thanks for the input Mark. Although the post seems to imply it, I’d like to think that it’s not a black & white situation either. That’s why I like C++ over pure OO langs. Can have stand-alone funcs in addition to classes in your programs. OO purists tend to look down upon this type of “mixing”. Before Java adopted Generics, some Java people looked down upon C++ “templates”. For some strange reason, even though Java is becoming multi-paradigmed, they still look down on C++ – like some C++ people look down upon Java π Then there are those people who look down on both C++ and Java as outdated “legacy” languages π
“Legacy” languages, eh? Funny, everything else is built on top of C and C++, isn’t it? Not sure a lot of younger web programmers realize that…. To make cycle sucking stuff like JavaScript possible, you need an efficient underlying base….
Making “choosing between” (a binary choice) has always felt like an inferior strategy compared to “choosing from”. Being able to select items (whether process or technology) and synthesize a solution that fits my current context seems best to me.
Agreed. It’s simply easier to write a short post throwing down the gauntlet between black/white, good/bad. Plus, it gets extremists on both sides riled up – and that’s one of BD00’s goals in life π
Their faces do turn such pretty shades of red and purple π
Yep!