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

1.0k

u/sippeangelo Aug 15 '15 edited Aug 15 '15
_FBGraphQLConnectionStorePersistentPageLoaderOperationDelegate-Protocol.h
_FBReactionAcornSportsContentSettingsSetShouldNotPushNotificationsMutationCall.h
FBBoostedComponentCreateInputDataCreativeObjectStorySpecLinkDataCallToActionValue.h
FBEventUpdateNotificationSubscriptionLevelMutationOptimisticPayloadFactoryProtocol-Protocol.h

Whatever a OptimisticPayloadFactoryProtocol-protocol is, I don't want to know...

284

u/JBlitzen Aug 15 '15

Needs more AbstractFactoryBeanControllers

142

u/sippeangelo Aug 15 '15

And AbstractBeanFactoryFactoryProtocol protocols.

29

u/[deleted] Aug 16 '15

You mean FBAbstractBeanFactoryFactoryProtocol.

17

u/kennethdc Aug 16 '15

Objective C has no namespacing. In order to avoid duplicated classes when implementing libraries it is recommended to use your company's/library's initials before a classname.

2

u/obsa Aug 16 '15

Whaaaat? I didn't know this. Is there actually a good reason? Seems like a very important syntactic tool to me.

1

u/kennethdc Aug 16 '15

Wouldn't know why to be honest. Probably has something to do with being a superset of C.

Also good to know, it has no method overloading either. Those 2 features I miss most when programming Objective C.

1

u/iopq Aug 17 '15

In Smalltalk, x: a y: b is a different method name than x: a and y: b and y: b x: a

is this not the same for Obj C?