What more surprises does this venerable language have up its sleeve?
Clang recently added literal syntax for collections and boxed numbers:
// Old way.
NSArray *array = [NSArray arrayWithObjects:@"one", @"two", @"three", nil];
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
@"bar", @"foo",
@"post", @"first",
nil];
NSNumber *num = [NSNumber numberWithInteger:42]; // New way.
NSArray *array = @[ @"one", @"two", @"three" ];
NSDictionary *dict = @{
@"foo" : @"bar",
@"first": @"post"
};
NSNumber *num = @42;
Properties will also be synthesized by default, so you won't have to write @synthesize statements anymore, and corresponding ivars will be synthesized with an underscore prefixed name.
Objective-C is interesting to follow because it's a language that was once considered totally niche and almost completely irrelevant, but the frameworks were beloved by developers, and the language's keepers kept at it long enough for the world to see how useful the language is. It also has historical significance as the tools used for creation of the original WorldWideWeb program as well as the development of Doom and Quake. John Romero wrote about he and Carmack simultaneously editing the same map in DoomEd thanks to distributed objects.
It's still verbose and Smalltalk-ish, but the language as a whole has improved drastically since the transition to Clang. According to the mailing list, Apple has more engineers allocated to the language than ever before, and a lot of it has to do with the move away from GCC.
I hear that GCC is working toward being easier to modify, so the competition from Clang has been good for everybody, and it's all open source.