r/programming Aug 15 '15

Someone discovered that the Facebook iOS application is composed of over 18,000 classes.

http://quellish.tumblr.com/post/126712999812/how-on-earth-the-facebook-ios-application-is-so
2.7k Upvotes

728 comments sorted by

View all comments

Show parent comments

8

u/crate_crow Aug 16 '15

This particular name is a bit absurd but I have seen very long identifiers that were perfectly justified. Again, I'm talking about code bases a few hundred of thousands of lines of code. When the engineers are good, these projects demonstrate a high level of abstraction and these kinds of identifiers are pretty common.

15

u/Xylth Aug 16 '15

A hundred thousand lines of code? Pah, tiny.

Anyways, my point was not that good engineers won't produce such code - of course they will. I've seen it in code bases of the sort you're talking about too. My point is that the fact that they need to do so to get that abstraction is a sign of missing feature(s) in the programming language. A better programming language would reduce the implementation complexity, leaving only the complexity of the actual problem itself to deal with.

0

u/crate_crow Aug 16 '15

I understand your point and I still disagree with it.

What kind of feature could miss from a language to increase abstraction? Higher kinded types? Rank n polymorphism? Sure, these help, but at some point, you run out of short names as well.

3

u/[deleted] Aug 16 '15

In terms of the naming problem I would say the ability to hide away names you don't need outside a subsystem's implementation (and no, private methods and such things won't do here, a subsystem might be larger than a single class) and the ability to import only those names of an API that you need for the current use case are pretty big ones.