back in my early industry days when i was porting the adventure game studio (AGS) engine and games to mac/ios, i developed a healthy hatred of Objective-C which was used as interface glue between the engine code and macOS/ios
i had been working with C/C++ for a long time, and had made the mistake of assuming all programming syntax was essentially C-like in structure
suddenly having to deal with obj-c syntax was like stepping into an alien spaceship:
@interface ClassName : SuperclassName {
// instance variables
}
+ classMethod1;
(param1_type)param1_varName;
- (return_type)instanceMethod1With1Parameter:(param1_type)param1_varName;
@end
i could sort of grok out what i needed to do by changing a few variables and ctrl-c ctrl-v the methods i needed, but the overall experience was so difficult that i was glad when i never had to touch it again
over a decade later, i am *so* impressed by what obj-C was attempting. after doing a lot of NeXTStep reading, i finally understand what it was trying to do: add smalltalk-80 message-passing and object orientedness to C. the changes to the syntax (like using the + and - to indicate class vs. instance methods) are actually pretty cool!
sad that i dismissed something so fascinating in the early days just because i was more worried about getting a project done on time than actually learning how it worked
#programming #smallTalk #objC