Application Development: Objective-C Is Kicking Butt in the Programming World
Objective-C, the language of the Apple world of iOS and the Mac OS X, recently overtook C++ in a key index that measures the most popular programming languages in use today. The TIOBE programming community index shows Objective-C as the third most popular programming language behind first-place C and second-place Java, suggesting that the popularity of mobile development is outpacing that of enterprise app development and building large high-performance systemswhere Java and C++ typically reign. Both Java and C++ showed declining use in the July 2012 TIOBE index. Both Objective-C and C++ started in 1983 as object-oriented successors of the C languages. Objective-C is in vogue now, thanks to the demand for apps for Apple's iPhone and iPad. When eWEEK ran a recent slide show on how Java was able to supplant C++, a reader who is active in the developer community raised the issue of how Objective-C use is on the rise and he argued that for many of the same reasons Java displaced C++, Objective-C is now becoming a go-to language for developers. Don Babcock, a software engineer at Wake Forest University Health Services, said he uses Objective-C as often as possible, calling it "my new favorite language" because it has all the best advantages of C/C++ and Java. "I've always disliked C and C++ because of all the 'warts' [pointers, memory management hassles, etc.] and I'm a longtime fan of Java [ever since the 1.1 days]," said Babcock said. eWEEK considered Babcock's reasons for using Objective-C and polled a group of other developers to find their views to be consistent. Using eWEEK's Java/C++ slide show as a template, Babcock compiled a list that resonated with eWEEK's research and the views of other Objective-C developers with Java experience. "The key here is that OC gives me the ease of programming in object-oriented style and the API richness of Java with the speed and performance of C/C++," he said. "It provides automatic memory management without the disadvantages of garbage collection. The same language gives me desktop and mobile platforms. Combined with an OS that supports dispatching, I can write my program once and have it optimally execute and take advantage of as many cores as the hardware has to offer without prior knowledge of the CPU configuration." Here is a compilation of reasons Objective-C is kicking butt in the programming world. Babcock's views are used with his permission.
Objective-C has all the benefits of Java (no memory management hassles for the programmer), but it has the deterministic resource release of C++. It accomplishes this feat of magic through Automatic Reference Counting (ARC). Also, this means that there are no "garbage collection stalls" or program stuttering because there isn't any garbage collection. Resources are released when no longer needed. ARC is built into the compiler/IDE (integrated development environment) tooling so the programmer doesn't have to keep track of things.