About | Buy | Forum | Industry Watch | Learning Curve | Products | Search | Twitter | Xnews
Home » Products » Reviews » The Very Ugly

Finder 10.6.1

Apple Inc
Rating: (four burnt toasts — nope, it's no better)

Apple Inc
Cupertino CA
US


Collateral damage:
Getting laughed at so hard by everyone outside the 'Mac community' your ears start to bleed

Finder 10.6.1: now it's supposed to be Cocoa. After all these years. After hearing thousands (millions) chant 'FTFF' ('fix the fucking Finder') all this time.

But Cocoa is not an elixir. Nothing really gets better if the program specs don't change. The code itself might be of better and more maintainable quality - but how many users are going to look at the code?

Apple have some great eye candy today. But a review of any product designed to provide functionality can't rate said product on eye candy. Alongside the tired 'happy Mac' there's Cover Flow, a technology Apple initially bought for their iTunes and now use almost everywhere. But Cover Flow is of no help if the application itself can't do what it's supposed to do.

At the end of the day we're looking at what is probably the most important piece of user-visible software on the desktop: the file manager. The program has to be able to satisfy both ordinary users and system administrators. It has to give them all what they need, what they're looking for. And ordinary users have to don the admin hat from time to time as well.

This review isn't about Cover Flow or any of the things users find themselves complaining about from time to time. Those are user issues - they're of no concern here. This review is about using Finder for its intended purpose - as a file manager.

And to put it bluntly: Finder fails in flying colours.

Linkage

The claim that Carbon is gone from Snow Leopard - and from Finder - is not exactly accurate, as can be seen from the otool report below. Check the third line in red.

/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1038.0.0)
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 38.0.0)
/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox (compatibility version 1.0.0, current version 437.0.0)
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 15.0.0)
/System/Library/Frameworks/Collaboration.framework/Versions/A/Collaboration (compatibility version 1.0.0, current version 38.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 550.0.0)
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 44.0.0)
/System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 751.0.0)
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
/System/Library/Frameworks/NetFS.framework/Versions/A/NetFS (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/ImageKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/QuickLookUI.framework/Versions/A/QuickLookUI (compatibility version 1.0.0, current version 327.0.0)
/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.6.0)
/System/Library/Frameworks/QuickLook.framework/Versions/A/QuickLook (compatibility version 1.0.0, current version 327.0.0)
/System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 36910.0.0)
/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration (compatibility version 1.0.0, current version 289.0.0)
/System/Library/PrivateFrameworks/Backup.framework/Versions/A/Backup (compatibility version 1.0.0, current version 1.0.0)
/System/Library/PrivateFrameworks/Bom.framework/Versions/A/Bom (compatibility version 2.0.0, current version 164.0.0)
/System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI (compatibility version 1.0.0, current version 112.0.0)
/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv (compatibility version 1.0.0, current version 67.0.0)
/System/Library/PrivateFrameworks/FileSync.framework/Versions/A/FileSync (compatibility version 100.0.0, current version 359.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0)
/usr/lib/libicucore.A.dylib (compatibility version 1.0.0, current version 40.0.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0)

Finder's Info.plist implies it can run as PowerPC code.

<key>LSArchitecturePriority</key>
<array>
    <string>x86_64</string>
    <string>i386</string>
    <string>ppc</string>
</array>

Which of course it cannot.

Finder: Mach-O universal binary with 2 architectures
Finder (for architecture x86_64): Mach-O 64-bit executable x86_64
Finder (for architecture i386): Mach-O executable i386

Footprint & Control

Finder 10.6.1 is an application bundle with 259 items. Its 22496 storage blocks equate to effectively 10.98 MB on disk.

259 items, 12245326 bytes, 22496 blocks, 0 bytes in extended attributes.

/System/Library/CoreServices/Finder.app/Contents
/System/Library/CoreServices/Finder.app/Contents/_CodeSignature
/System/Library/CoreServices/Finder.app/Contents/_CodeSignature/CodeResources
/System/Library/CoreServices/Finder.app/Contents/CodeResources
/System/Library/CoreServices/Finder.app/Contents/Info.plist
/System/Library/CoreServices/Finder.app/Contents/MacOS
/System/Library/CoreServices/Finder.app/Contents/MacOS/Finder
/System/Library/CoreServices/Finder.app/Contents/PkgInfo
/System/Library/CoreServices/Finder.app/Contents/Resources
/System/Library/CoreServices/Finder.app/Contents/Resources/advancedpref.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/alternate_smart.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/backupbadge.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/backupbadge2.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/BackupSnapshot.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/BurnableFolderIcon.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Applications.cannedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Applications.cannedSearch/Resources
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Applications.cannedSearch/Resources/Applications.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Applications.cannedSearch/Resources/English.lproj
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Applications.cannedSearch/Resources/English.lproj/InfoPlist.strings
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Applications.cannedSearch/Resources/Info.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Applications.cannedSearch/Resources/version.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Applications.cannedSearch/search.savedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Documents.cannedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Documents.cannedSearch/Resources
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Documents.cannedSearch/Resources/Documents.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Documents.cannedSearch/Resources/English.lproj
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Documents.cannedSearch/Resources/English.lproj/InfoPlist.strings
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Documents.cannedSearch/Resources/Info.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Documents.cannedSearch/Resources/version.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Documents.cannedSearch/search.savedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Downloads.cannedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Downloads.cannedSearch/Resources
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Downloads.cannedSearch/Resources/Downloads.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Downloads.cannedSearch/Resources/English.lproj
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Downloads.cannedSearch/Resources/English.lproj/InfoPlist.strings
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Downloads.cannedSearch/Resources/Info.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Downloads.cannedSearch/Resources/version.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Downloads.cannedSearch/search.savedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Images.cannedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Images.cannedSearch/Resources
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Images.cannedSearch/Resources/English.lproj
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Images.cannedSearch/Resources/English.lproj/InfoPlist.strings
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Images.cannedSearch/Resources/Info.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Images.cannedSearch/Resources/Pictures.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Images.cannedSearch/Resources/version.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Images.cannedSearch/search.savedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Movies.cannedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Movies.cannedSearch/Resources
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Movies.cannedSearch/Resources/English.lproj
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Movies.cannedSearch/Resources/English.lproj/InfoPlist.strings
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Movies.cannedSearch/Resources/Info.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Movies.cannedSearch/Resources/Movies.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Movies.cannedSearch/Resources/version.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Movies.cannedSearch/search.savedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Music.cannedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Music.cannedSearch/Resources
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Music.cannedSearch/Resources/English.lproj
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Music.cannedSearch/Resources/English.lproj/InfoPlist.strings
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Music.cannedSearch/Resources/Info.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Music.cannedSearch/Resources/Music.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Music.cannedSearch/Resources/version.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Music.cannedSearch/search.savedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All PDF Documents.cannedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All PDF Documents.cannedSearch/Resources
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All PDF Documents.cannedSearch/Resources/English.lproj
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All PDF Documents.cannedSearch/Resources/English.lproj/InfoPlist.strings
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All PDF Documents.cannedSearch/Resources/Info.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All PDF Documents.cannedSearch/Resources/PDF Documents.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All PDF Documents.cannedSearch/Resources/version.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All PDF Documents.cannedSearch/search.savedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Presentations.cannedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Presentations.cannedSearch/Resources
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Presentations.cannedSearch/Resources/English.lproj
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Presentations.cannedSearch/Resources/English.lproj/InfoPlist.strings
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Presentations.cannedSearch/Resources/Info.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Presentations.cannedSearch/Resources/Presentations.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Presentations.cannedSearch/Resources/version.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/All Presentations.cannedSearch/search.savedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Past Week.cannedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Past Week.cannedSearch/Resources
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Past Week.cannedSearch/Resources/English.lproj
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Past Week.cannedSearch/Resources/English.lproj/InfoPlist.strings
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Past Week.cannedSearch/Resources/Info.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Past Week.cannedSearch/Resources/ThisWeek.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Past Week.cannedSearch/Resources/version.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Past Week.cannedSearch/search.savedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Today.cannedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Today.cannedSearch/Resources
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Today.cannedSearch/Resources/English.lproj
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Today.cannedSearch/Resources/English.lproj/InfoPlist.strings
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Today.cannedSearch/Resources/Info.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Today.cannedSearch/Resources/Today.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Today.cannedSearch/Resources/version.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Today.cannedSearch/search.savedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Yesterday.cannedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Yesterday.cannedSearch/Resources
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Yesterday.cannedSearch/Resources/English.lproj
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Yesterday.cannedSearch/Resources/English.lproj/InfoPlist.strings
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Yesterday.cannedSearch/Resources/Info.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Yesterday.cannedSearch/Resources/version.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Yesterday.cannedSearch/Resources/Yesterday.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/CannedSearches/Yesterday.cannedSearch/search.savedSearch
/System/Library/CoreServices/Finder.app/Contents/Resources/ClippingPicture.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/ClippingSound.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/ClippingText.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/ClippingUnknown.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/ClockSearch.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/default_smart.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/AboutWindow.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/AboutWindow.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/AFPUserGroupSheet.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/AFPUserGroupSheet.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/Application.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/Application.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/BackupProgressWindow.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/BackupProgressWindow.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/BackupVolumeBrowserWindow.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/BackupVolumeBrowserWindow.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/BannerView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/BannerView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/BottomBar.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/BottomBar.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/BrowserWindow.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/BrowserWindow.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/Burn.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/Burn.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ClipWindow.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ClipWindow.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ColumnView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ColumnView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ConnectToIDiskWindow.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ConnectToIDiskWindow.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ConnectToWindow.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ConnectToWindow.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/FFKBrowserWindow.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/FFKBrowserWindow.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/FFKMenuBar.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/FFKMenuBar.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/FFKView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/FFKView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/FlowView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/FlowView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/GotoWindow.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/GotoWindow.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoPlist.strings
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoWindowApplyToWindow.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoWindowApplyToWindow.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoWindowBurningView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoWindowBurningView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoWindowGeneralView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoWindowGeneralView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoWindowHeaderView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoWindowHeaderView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoWindowMoreInfoView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoWindowMoreInfoView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoWindowNameView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoWindowNameView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoWindowOpenWithView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoWindowOpenWithView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoWindowPermissionsView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoWindowPermissionsView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoWindowPreviewView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoWindowPreviewView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoWindowSimpleHeaderView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/InfoWindowSimpleHeaderView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ListView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ListView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/Localizable.strings
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/LocalizableCore.strings
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/MenuBar.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/MenuBar.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/NavChooseApp.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/NavChooseApp.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/NavSaveSearch.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/NavSaveSearch.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/PBFNewMediaWindow.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/PBFNewMediaWindow.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/PreferencesWindow.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/PreferencesWindow.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressConflictView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressConflictView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressContinueView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressContinueView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressDeleteLockedItemsView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressDeleteLockedItemsView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressErrorView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressErrorView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressRenameConflictView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressRenameConflictView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressReplaceView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressReplaceView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressSkipView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressSkipView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressStatusView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressStatusView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressStatusView1Line.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressStatusView1Line.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressStatusView2Line.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressStatusView2Line.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressTryAgainErrorView.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ProgressTryAgainErrorView.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ResultsViewStrings.strings
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/SearchCriteria.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/SearchCriteria.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/SearchForSlice.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/SearchForSlice.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/SearchScopeSlice.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/SearchScopeSlice.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ServicesMenu.strings
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/Sidebar.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/Sidebar.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/SidebarSplitter.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/SidebarSplitter.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/SimpleGrouping.strings
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/SlicesAttributeNameOverrides.strings
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/SlicesStrings.strings
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/StatusBar.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/StatusBar.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/Toolbar.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/Toolbar.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ViewOptionsWindow.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/ViewOptionsWindow.nib/keyedobjects.nib
/System/Library/CoreServices/Finder.app/Contents/Resources/Everyone.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/FENodeNonLoc.strings
/System/Library/CoreServices/Finder.app/Contents/Resources/find.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/Finder.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/Finder.rsrc
/System/Library/CoreServices/Finder.app/Contents/Resources/Gear.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/generalpref.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/Grid16.png
/System/Library/CoreServices/Finder.app/Contents/Resources/Grid25.png
/System/Library/CoreServices/Finder.app/Contents/Resources/Group.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/info.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/InfoDisplayOptions.plist
/System/Library/CoreServices/Finder.app/Contents/Resources/InternetLocationAFP.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/InternetLocationFile.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/InternetLocationFTP.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/InternetLocationGeneric.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/InternetLocationHTTP.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/InternetLocationMAILTO.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/InternetLocationNEWS.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/knobDisabled.png
/System/Library/CoreServices/Finder.app/Contents/Resources/knobHover.png
/System/Library/CoreServices/Finder.app/Contents/Resources/knobNormal.png
/System/Library/CoreServices/Finder.app/Contents/Resources/labelpref.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/minus.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/plus.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/sidebarpref.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/SmartFolder.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/StatusBarBackup.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/TimeMachine.icns
/System/Library/CoreServices/Finder.app/Contents/Resources/trackCapLeft.png
/System/Library/CoreServices/Finder.app/Contents/Resources/trackCapRight.png
/System/Library/CoreServices/Finder.app/Contents/Resources/trackFill.png
/System/Library/CoreServices/Finder.app/Contents/Resources/User.icns
/System/Library/CoreServices/Finder.app/Contents/version.plist

Finder 10.6.1 is controlled by launchd and its property list in /System/Library/LaunchAgents.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>RunAtLoad</key>
    <false/>
    <key>KeepAlive</key>
    <dict>
        <key>SuccessfulExit</key>
        <false/>
        <key>AfterInitialDemand</key>
        <true/>
    </dict>
    <key>Label</key>
    <string>com.apple.Finder</string>
    <key>Program</key>
    <string>/System/Library/CoreServices/Finder.app/Contents/MacOS/Finder</string>
    <key>ThrottleInterval</key>
    <integer>0</integer>
</dict>
</plist>

It's still not possible to get Finder off the dock. This is wired into the code. A lot of people would gladly see the icon go away - but until Apple realise they're selling an operating system and not a slew of user applications, this isn't likely to change.

.DS_Store

The bane of networks everywhere is still around. Precisely as before. It took something like eight years for the person in charge of this mishap to come forward and admit the behaviour of .DS_Store was a bug no one ever got around to fixing. That's been a few years now. Things still haven't improved.

Somewhere there's a brain cell misfiring: .DS_Store is good only for one thing: user preferences and in particular 'spatiality'. But this works only on single user systems and Apple's Mac OS X hasn't been a single user system for over ten years. The code can't distinguish between users - what you see is often what someone else liked.

If such a cockamamie scheme were ever to claim viability then it would by definition have to be smart enough to not lay its doo-doo across the hard drive like a pigeon with diarrhea. It would have to know better than to go into application bundles where few will ever venture and no one will ever be interested in per-user configuration settings anyway.

And to add the ultimate insult: .DS_Store files are additionally laden with extended attributes today. The only way to permanently get rid of them is to put Finder - and those who ascribe to its philosophy - on the endangered species list.

Admin Tasks

It's when it comes to admin tasks one sees how much is lacking in this application. For no matter how much eye candy it can offer, it still can't do the most rudimentary of basic file system operations. A short but painful list.

  • File systems. Finder can only see its own. You can't see everything on your hard drive with Finder.
  • Ordinary file permissions. Unbelievably enough, you can't see these either. All you get are the silly alternatives 'read only' and 'read and write'. There's no mention of the execute bit. And that's pathetic. Apple's HI group are judging their users from their own norm. They shouldn't do that - their users are much smarter.
  • Sticky bits. Most users aren't even aware of them and even fewer know what they are. And yet they've saved Apple's butt on numerous occasions with all the /Library scandals.
  • Set ID bits. Ever wonder why certain files do things others can't come close to? You might figure it out if you saw more than file ownership. But Finder 10.6.1 won't even let on these bits exist - much less let you configure them.
  • Extended flags. Flags such as user no dump, immutable, append, opaque, no unlink, hidden, archived, and snapshot. They're all there on your system and they sometimes really screw up - as in when you're trying to empty your trash but you just can't - and yet Finder pretends they don't exist and certainly won't give you the opportunity to fix your børked system either. And these aren't only system flags - many are user flags you're expected to control.
  • Extended attributes. More that's kept from your view and control. They're glued onto your files everywhere, affecting application behaviour, and you've got no way of seeing them, much less taking care of them (and taking control of your own computer).

Test Run

It's not often someone with more than one brain cell really wants to run this application - after all, it's the singularly most laughable file manager in all of computer science - but if one really must for a review of this sort then one must at least for a short time bite the bullet and endure.

Here's a picture of Finder trying to get into your all-important device directory /dev. Things don't turn out too good.



'The folder can't be found', says Finder. Bollocks.



Looking at file permissions one finds the same type of nonsense.

But bash is an executable (as can be seen from its icon) and that means it has to have its executable bits set somewhere. Can you see them? Can you get at them? Can you see or get at executable bits for any file at all with Finder 10.6.1? No.

There comes a point where this fartsy 'oversimplification' that feels so comfortable for Apple's 'user experience engineers' has simply gone too far. Strictly speaking, what they're doing here is an outright lie.

Here are the permissions possibilities given for bash.

Here are the real possibilities.

That 'rock solid foundation' was willing to tell all that to you but Finder wasn't.

  • File Type. bash could have been any one of a number of things (other than a file or directory) and you wouldn't have known it.
  • Sticky Bit, Set GID, Set UID. Again: no indication of these in Apple's 'file manager'.
  • Access. Here you see the 'execute' bits Apple's 'user experience engineers' in the 'HI group' don't want to show you.
  • User Flags. Myriad ways for software to mess with your file system and you won't be able to control it with Finder.
  • System Flags. Yet more ways especially authenticated software could mess with you. Some of these flags are so bad the root account can't even remove them! Yet there you are with your Finder - what can you do? You're told nothing.

Cosmetics

Fanboy discussions of 'TFF' tend to hover around easy to understand issues such as how good the program is at resizing columns, retaining view configurations, and the like. These are the types of characteristics one should be able to take for granted. Why is it then that this most endemic of all system applications can't do the most basic things right?

Functionality

Here's where it really starts to hurt. If running Finder is merely a form of patience/solitaire then things aren't too bad. You can alternate between iTunes and Finder and look at lots of pretty images. But if you have to manage your file system then you are - to put it bluntly - totally fucked. It's not only what's missing as far as file system data - it's also the extraordinarily slow and clumsy way you'll have to go about managing the meagre pickings you're given.

Otherwise Finder's fine for the user who doesn't work too fast or think too fast, the user who easily gets confused and overwhelmed by files and folders, bit and bytes - in other words: your classical Apple HI group user experience engineer.

That Rock Solid Foundation

Everything in NeXTSTEP - everything in the computer field in general - is about giants standing on the shoulders of other giants. Unix wasn't a divine plan - it was an accident. The Bell Labs gurus worked in a sandbox, said Dennis Ritchie. That was their job. To play around, toy and tinker - and maybe just maybe every so often they'd come up with something brilliant.

The C language was intentional but its forerunner wasn't. Ken Thompson had been trying to port their System/730 Space Travel game to the PDP idling in the corner. He came out of his office with a new language instead. Unix itself was more about Ken and Dennis sitting around waiting for VMS to arrive than deciding they would write something inspired. The famous Unix portability wasn't something Ken or Dennis understood either - it took a Steve Johnson from Cambridge to notice it after the fact.

Steve Jobs famously remarked that the top software and hardware engineers in the industry weren't twice or three times as good as the average engineers - they were several hundred times better. He set out to find the best of the best - the best base operating system, the best programming language, the best add-ons, and the best engineers.

He came up with Objective-C, FreeBSD, the MACH kernel, Jon Rubinstein, and Avie Tevanian. Although he owned Pixar by now he spent precious little time there. He had John Lasseter to take care of Pixar. He spent all his time at NeXT. And although he'd never claim to be an engineer, he assimilated a lot of what was going on and he was able to fully appreciate how it worked and why. He couldn't write the code but he could understand why it was so superior.

NeXT used FreeBSD Unix with a MACH kernel and then built the NeXTSTEP classes on top of that. The NeXTSTEP classes come in two clusters, one for abstract functionality and one for stuff you see on screen. The abstract code went into their Foundation framework; the visible stuff into their 'AppKit' - 'app' being the new terminology for a graphics-based 'application', a 'bundle' in a directory with the extension 'app' and so forth.

NeXTSTEP was a player. It played well with everybody. Its File Viewer and Workspace together could easily get at anything anywhere, as Steve demonstrated himself in his famous video.

Apple at the same time were going down the drain. Quality was out the door, the company books were mostly written in red ink, and Michael Dell famously suggested they give back their remaining assets to their stockholders and close the doors. Board member Gil Amelio was asked to step down and into the CEO role and try to save things.



Amelio found out just how bad things had become. He had a new 'Mac' installed in his office, corroborated that the piece of junk didn't even work, and halted all sales for half a year until the weasels could be ferreted out. One infamous Apple engineer had infamously protested, saying that if the Cupertino schools weren't satisfied with Apple hardware quality anymore then they could go out and buy new computers. Amelio also ended the appropriation of funds for projects the board knew nothing about and would never have approved - a lot of money was being wasted.

Amelio also looked at the company's abortive 'next generation OS' project and quickly came to the conclusion it was hopeless. He ended the project and set about to find somebody who would sell them a good OS instead. He contacted Be, Microsoft, and NeXT.

Be was a good system, a fast system, but it wasn't ready for the Internet. Multiuser capabilities only got built in as an afterthought. Windows NT would have been an utter disaster - just look at the state of malware today. But NeXT - NeXT was a good investment. Alone of all the options NeXTSTEP had the capability to meet both today's demands as well as tomorrow's.

NeXTSTEP was built up with the Objective-C language which is a type of Smalltalk with C syntax. As with C++, it originally started as a preprocessor layer to C. But unlike C++, it didn't interfere with C language intrinsics or add anything of its own - it just added a layer of abstraction through classes and messaging. Exactly what Alan Kay and his group at Xerox had done with their systems.

There's often a lot of debate over whether Carbon is OK. Carbon is not OK. Users might not see the differences if they don't look really closely but the differences are about developers more than users. It can take hundreds of lines of Carbon code to accomplish what's done in a single line of Cocoa. It makes no sense to support old legacy code that's going to fall apart sooner or later. The Cocoa learning curve isn't so much a curve as it's a red carpet walk. There's never been a smoother transition for programmers, and adopting the Objective-C language takes a matter of hours, not months. Software houses regularly report product development cycles a mere 20% (one fifth) of what they were and software departments have even gone so far as to conceal this from their clients.

And on top of this you're going to put - Finder? Apple's third party developers didn't like NeXT's File Viewer. They were infamously rude to Steve Jobs when he demonstrated it for them. What those third party people got instead was an application with much the same appearance, a fraction of the power and functionality - but with that good old familiar name. Finder.

And Finder was written in Carbon and this was a huge mistake but at the time it probably didn't seem that way. It would have been a lot better to retool File Viewer until the third party people stopped whinging. But there's more to it than that.

Apple representatives have infamously gone on the record to state that although their company will not prevent enterprise customers from purchasing their products, they certainly won't encourage them. Apple have in the past made several attempts to break into the lucrative enterprise and government markets and stumbled over their own feet each time. Apple don't target or sell to the big money - WorldCom and Dell both canceled their contracts with NeXT when they heard of the merger. All they can count on today are fanboys who stand in line in batik shirts and sandals at grand opening to buy a new iThis or iThat.

It's been nearly seven years since Apple made most money off computer sales. They've been saved by the iPod and they were saved again by the iPhone. For now. Things will be alright as long as they come up with the next gadget in time, as long as it's also popular. But they have no 'commodity' business. They don't sell operating systems to the world, they don't sell Java to the world. They keep what they have hidden, protected, and obfuscated within their ludicrously inaccessible walled garden.

They're trying to wall you in too.

About | Buy | Forum | Industry Watch | Learning Curve | Products | Search | Twitter | Xnews
Copyright © Rixstep. All rights reserved.