This came up in a conversation I was having online, and it occured to me that I have no idea how this is supposed to work: Quite a lot of programmers seem to just take as a given- indeed, obvious that classes are a necessary language feature for managing huge software projects.
It's not obvious to me how they do this.
My question to you is, how do you know? What objective measures are there that show that classes increase productivity, code reuse, and reduce the complexity of the production of a program? What aspects of classes make them ideal for large teams to collaborate on?
And now, there's a question I would like to ask, that is somewhat difficult to express. I'm sorry if I get this wrong and end up confusing or angering anyone:
Objectively, how do you know that the use of classes is not the cause of the application being large to begin with? That is, is it possible that a program with equivalent function could have been written, with much less code, small enough to not need any special measures to "manage" it, using some other code re-use strategy? (there are lots to choose from, such as those in functional programming paradigms, or aspect oriented programming).
That last bit is something that Steve Yegge has been hinting at on his blog. But I'm kind of sceptical of both sides of the argument, due to a real lack of any hard data from anyone, and not enough experience to come to a conclusion on my own.
What do you think?
edit: In particular I'm interested in why many programmers think prototypal style inheritance is not up to the task when it comes to large applications. I'm sorry of this question is vague- it's a product of my lack of understanding about this topic.
edit2: there seems to be some confusion over what I mean by functional programming. (I don't think any version of VB was ever functional, certainly not older versions). Please refer to the wikipedia article. http://en.wikipedia.org/wiki/Functional_programming
edit3: and let me emphasize that I'm looking for Objective measures. Not subjective opinions.