Grok all the things

grok (v): to understand (something) intuitively.

Objective-C

๐Ÿ‘ถ ย Children (ELI5)

Gather round, little friends! It's time to embark on an enchanting journey through the whimsical world of Objective-C, a programming language that's as peculiar as it is powerful!

Objective-C is like a magical creature, born from the union of two powerful parents: C and Smalltalk. This mythical beast boasts the efficiency and flexibility of C, while also inheriting the object-oriented marvels of Smalltalk. Before we dive into its mysterious depths, let's learn a little about its origin story.

A Tale As Old As Time ๐Ÿฐโณ

Once upon a time, in the faraway kingdom of computer programming, there lived two languages: C and Smalltalk. C was known for its speed and power, while Smalltalk charmed everyone with its object-oriented nature.

One day, a sorcerer named Brad Cox came along. He saw the potential of combining these languages to create something truly magical โ€“ and thus, in 1983, Objective-C was born!

This new language allowed developers to write more powerful and efficient programs by harnessing the best qualities of both C and Smalltalk. Soon after, it was adopted by a company called NeXT, and from there, its fame spread far and wide.

Speaking Objective-C: The Magical Language ๐Ÿ—ฃ๐Ÿ”ฎ

Objective-C might seem like a language full of incantations and spells, but don't worry โ€“ it's easier to understand than you might think!

Objects Everywhere! ๐Ÿงธ๐Ÿš€๐ŸŒฒ

In Objective-C, everything revolves around objects. An object is a special creature that can store data and perform actions. Imagine a toy robot that can remember your birthday and sing you a song โ€“ that's like an object!

To create an object, we use something called a class. A class is like a blueprint that tells the computer how to create objects of a certain type.

For example, let's say we want to create a magical unicorn named Sparkle. We would define a Unicorn class, like this:

@interface Unicorn : NSObject {
  NSString *name;
  int age;
}

- (void)setName:(NSString *)newName;
- (NSString *)name;

@end

In this enchanted code snippet, we've created the Unicorn class, which inherits from NSObject, a powerful ancestor of all Objective-C classes. We've also given our unicorn a name and an age, and added magical methods to get and set its name.

Sending Messages ๐Ÿ“จ๐Ÿง™โ€โ™‚๏ธ

One of the most unique and mystical aspects of Objective-C is the way it communicates with objects. Instead of calling methods, Objective-C sends messages.

Imagine our friendly unicorn, Sparkle, can cast rainbow spells. In other programming languages, we might call a method like castRainbowSpell. But in Objective-C, we send a message to Sparkle to ask her to cast a rainbow spell for us.

Here's how it looks in code:

[sparkle castRainbowSpell];

We can also send messages with arguments, like asking Sparkle to cast a rainbow spell at a specific target:

[sparkle castRainbowSpellAtTarget:target];

It might seem strange at first, but this magical way of communication makes Objective-C truly unique and enchanting!

Wondrous Properties ๐Ÿ ๐ŸŒŸ

In Objective-C, we can use properties to provide easy access to an object's data. Going back to our Unicorn class, we can add a property for the name like this:

@interface Unicorn : NSObject

@property (nonatomic, strong) NSString *name;

@end

Now, we can easily set and get the name of our unicorn, Sparkle:

// Setting Sparkle's name
sparkle.name = @"Sparkleโœจ";

// Getting Sparkle's name
NSString *unicornName = sparkle.name;

Using properties makes our enchanted journey through Objective-C a lot smoother and more delightful!

The Land of Cocoa and Cocoa Touch ๐Ÿซ๐Ÿ“ฑ

Objective-C is not just a magical language โ€“ it's also deeply connected to the wondrous realms of Cocoa and Cocoa Touch, which are home to the macOS and iOS platforms.

Cocoa and Cocoa Touch are special frameworks full of spells and abilities that help developers create mind-blowing apps for Mac, iPhone, iPad, and other Apple devices. These frameworks are built using Objective-C, making it the key to unlocking their powerful secrets!

A Magical Journey Full of Possibilities ๐ŸŒŸ๐Ÿšช

From its unique heritage to its enchanting features, Objective-C is a powerful and fascinating programming language that has shaped the world of software development.

As we journey through the world of Objective-C together, remember that every spell, object, and message is an opportunity to learn, grow, and create something truly magical. So let's keep exploring this mystifying and magnificent land, my little friends!

Grok.foo is a collection of articles on a variety of technology and programming articles assembled by James Padolsey. Enjoy! And please share! And if you feel like you can donate here so I can create more free content for you.