Apple moving Finder to Cocoa
At long last, Apple has rewritten Finder using its Cocoa development environment for Snow Leopard, according to a report.
(Credit: Apple)Apple has finally rewritten one of the most important applications in Mac OS X in its preferred programming environment, according to a report.
AppleInsider reports that Finder, the ubiquitous file management application in Mac OS X, has been rewritten using Apple's Cocoa development environment in advance of the release of Mac OS X 10.6, otherwise known as Snow Leopard. Finder remained a stubborn holdout tied to the Carbon programming environment as Apple encouraged internal and external developers to switch to Cocoa over the last several years.
Finder, as shown in Mac OS X Leopard.
(Credit: Apple)Apple hasn't released a ton of formal information about Snow Leopard, but it has emphasized that the operating system will mark the completion of Apple's march toward a 64-bit release. The company has also said that application developers won't be able to write 64-bit applications in Carbon, which seems like Apple's way of pushing Carbon holdouts onto Cocoa.
It's not that easy, however, to switch large applications from one development environment to another: Adobe Systems thought it would be able to write a Carbon-based 64-bit version of Photoshop, but had to delay its plans for a 64-bit version of Photoshop for Mac OS after learning it would have to switch Photoshop to Cocoa.
Snow Leopard is expected to arrive "about a year" after it was announced last June at the Worldwide Developers Conference, which gives Apple a lot of wiggle room to work out the kinks. The new version will also support the ability to create separate Mac OS X images on disk partitions or external drives, according to AppleInsider.
Tom Krazit writes about the ever-expanding world of Internet search, including Google, Yahoo, online advertising, and portals, as well as the evolution of mobile computing. He has written about traditional PC companies, chip manufacturers, and mobile computers, spending the last three years covering Apple. E-mail Tom. 





- by Martin Pilkington October 21, 2008 3:15 AM PDT
- @mbenedict: I'd say being C based is a huge advantage for Obj-C as you get huge benefits such as access to the vast range of C APIs and the power that C provides (you list some of these as disadvantages but they are incredibly powerful if not used incorrectly). Now, to address your issues:<br /><br />1. Yes, memory management is manual and being manual it is error prone. But it's not like it is complicated. And if there are any problems with leaks then you just fire up Instruments and it will help you track them down. One of my apps was ballooning up to 300MB of RAM if left open for a day. Spent 30 minutes in Instruments tracking them down and fixing the leaks and now it rarely goes above 25MB.<br /><br />Yes there are memory leaks in Apple's APIs, but in that case you can just file a bug and they'll fix the leak, bug generally leaks in Apple's APIs are rare due to their widespread use.<br /><br />And yes, GC can only be used on Leopard, but the same goes for Core Animation, Image Kit, the rest of Obj-C 2.0 etc. Apple doesn't bother porting new technologies back to old versions of OS X because there's no technical nor financial incentive for them to do so. It complicates things for their developers and reduces the reasons for people to upgrade.<br /><br />2. Yes, those problems still exist, and yes the standard practices for securing them are still valid.<br /><br />3. You got some benchmarks for that? Obviously Obj-C will be slower than some languages because of the fact that it does a lot more in the runtime. Of course you are sacrificing a bit of performance for a huge gain in flexibility, clarity and brevity of code. I'd rather write less code, cleaner code and not feel like I have one hand tied behind my back than gain the few ms of performance. And if I needed that performance I'd drop down to straight C. And of course if you need to optimise Obj-C then there are plenty ways to do it: http://www.mulle-kybernetik.com/artikel/Optimization/index.html<br /><br />4. Actually the reason for Carbon and Cocoa existing is because they came from two backgrounds, like Win32 and .Net. And Cocoa isn't bound just to Obj-C. There are bridges for Ruby and Python officially supported with other languages with unofficial bridges. And on top of that there is MacRuby, which is Ruby but built upon the Obj-C runtime (which acts as a VM in a way) so that it uses the Ruby syntax but native Obj-C types with no need for converting over the bridge.<br /><br />Now, looking at your software development landscape, I agree that it is .NET vs Java vs Dynamic languages on the server and the web is AJAX vs AIR vs Silverlight (vs Flash). And yes Apple doesn't own any of these. I would say though that they have a large stake in them. AJAX for example, is heavily pushed by Apple. Apple doesn't feel the need to build their own system when AJAX is powerful enough. Instead they build the best rendering engine with the fastest Javascript interpreter on the web, which is used in Safari on the Mac and PC, Google Chrome, Android, Nokia Phones and the iPhone and iPod touch.<br /><br />And on the mobile it has been Flash vs Java. The problem Apple has with these technologies on the iPhone is this:<br /><br />Flash - Adobe seems to refuse to optimise Flash for OS X. If it runs like crap on the Mac then it won't do well on the iPhone. There's also the issue of multi touch requiring different input formats and unless flash developers are going to re-write their sites/apps for the iPhone then it's going to be a 2nd class experience<br /><br />Java - Java is poor. It is an awful language with even worse APIs that weren't designed as much as they were just fired out of a shotgun with the hope that something workable would appear out of the mess. To go with APIs that push you away from making good user experiences you have the fact that Java has an absolutely huge pool of developers, being one of the main languages taught in universities and schools. This means it is where all the mediocre developers are. <br /><br />Now it may sound snobbish but Apple doesn't want mediocre developers on their platform. They want the best developers making the best apps with the best UI frameworks around. If these developers don't like the power given to them by IB and prefer to write code instead, or they're incapable of using a C-based language then Apple doesn't care, as there are better developers out there who will see the huge benefits to IB and are fine working with a C-based language.
- Like this Reply to this comment
-
-
- by sanjayb October 26, 2008 3:31 PM PDT
- @Martin<br /><br />Java - Java is poor. It is an awful language with even worse APIs that weren't designed as much as they were just fired out of a shotgun with the hope that something workable would appear out of the mess. To go with APIs that push you away from making good user experiences you have the fact that Java has an absolutely huge pool of developers, being one of the main languages taught in universities and schools. This means it is where all the mediocre developers are.<br /><br />You have no clue on what u are about. You obviously haven't programmed in Java. Some of the best programmers I know program in Java. If Java is a poor language why is it so widely used? I would hate to see what API's you would come up with.
- Like this
-
(39 Comments)