Original image by Andrew*
Since some weeks I’m learning Objective-C and the cocoa framework. I would prefer to stay in rubyland (I think ruby opens up incredible possibilities, and would really like to see it adopted more widely), but if I plan to code for Mac and iPhone I at least should know how Objective-C works. I’m still at the very beginnings of my journey to the fabolous world of nice windows, accelerometer-based controls and multitough gestures, I’m even far from doing something useful (probably because the only computer I have at the moment is a Pentium 4 with 256 MByte Ram.. adn thus I really cant bring myself to do some programming on it, since everything is so damn slow..), but I already saw the beauty of Objective-C.
Like mentioned before, I speak ruby. I like the idea that a high-level language takes care of all the bookkeeping, of all the non-buisness logic, and lets you focus on the real implementation (and here Java and Aspect-J already go a long way, as would C#, but I have no experience with the latter), and if I can choose I will always opt for the latter (having IronRuby working on the iPhone would make my day). Cleary, in my spare time I have nothing against programmin in assembly (Sometimes I even do it just for fun), brainfuck or even whitespace (latter is clearly hilarious to play around with), but when I have to get things done, I like to have powerful tools at my disposal, and I think ruby gets the job done in a really good way. Now that I’m seeing how Objective-C handles things, I think we have found a good golden mean: it offers most of the possibilities that a high-level language offers, without loosing control. Clearly, we#re far from a perfect language, but I can totally see why Objective-C is so widely used and accepted. For now i just tried my programs in virtualized Macs (and, as mentioned above, with my current PC that means I have a shitload of patience), but I’m planning to organize some Hackintosh (a real Mac is way beyond my budget) on which I can play around.
The only thing that bothers me is how to get Objective-C / cocoa applications cross-platform compatible and more secure (I’m still very new to secure coding). As soon as I find a way to achieve both of the above, there will be some nice tools I have in mind, so stay tuned!