Working With Tiger Technologies
Juanvaldes writes "Apple has put online more developer-oriented information about Tiger. There are also detailed articles about Spotlight, Dashboard, 64-bit apps and Automator."
← Back to Stories (view on slashdot.org)
I just got my first Mac, an iBook G4, and have been amazed by it so far. the level of integration is astounding. everything Just Works(tm) and also Plays Nice(tm). for example, everything can be voice-controlled, and the voice control actually works and doesn't need training, and when I install a new app ("Firefox") it automagically understand that app.
Having seen the Macworld Keynote, Tiger looks very good. I'm mostly interested in Dashboard. Seems like a good step forward (I love Expose). Spotlight also seems great, though the number of times I actually use a local search is tiny.
Apple keeps getting better and genuinely innovating, whereas MS seems to just buy, rebrand, then move on when it's Good Enough(tm). I'm sorry if that sounds flamebait, but it's The Truth(tm).
It is an addition to the Cocoa framework and to Xcode which supports a very nice object persistence layer. In a nutshell Cocoa uses the MVC (Model View Controller) design pattern. TO develop an app, one defines ones application data as model objects, build an interface of windows, widgets, etc, and provide controllers which mediate communication between the user and the data model.
In Panther, Apple introduced "Bindings" which obviated the need to actually write most controller objects. Using bindings, the developer can associate object relationships (targets, and actions) between the View and Model layers by essentially using path names. This still enables a clean isolation between the interface and the application data layers, but requires little code (or sometimes none).
In Tiger they added "Core Data". This allows the developer to describe their model data objects, and the object relationships. At run time, using this model description, the model objects are associated with serialized objects on disk in:
XML file format
binary file format
SQLite-based database format
This repository of frozen objects is lazily loaded, and only those objects which are actually required are unarchived and made live. Think NeXT EOF redux, but easier and not tied to WebObjects.
XCode is integrated with a graphical display that lets you explore the object model graph, and also graph the layout of your source code.
This stuff is very sweet. I've been playing with it off and on, and definitely miss Tiger whenever I need to boot back into Panther. (Yes, it's a legal copy. No I won't break my NDA.)
I was similarly converted to Apple, but I keep a linux box around and use it quite frequently. But thanks to the Mac, I now do everything in GNUStep.
I'm actually amazed that OS X hasn't spurred a renaissance for GNUStep. I figured all the "I like MacOS, but I don't want to pay for Apple hardware" weenies would be hard at work getting around this by using GNUStep as a basis for their Free take-off of OS X instead of sticking with Gnome and KDE (both of which are just Free take-off of Windows in my book).
SQLite isn't just there for spotlight. CoreData is an interesting set of tools that Apple never really publicized much. Basically, it looks like an API for storing cocoa and carbon data structures into files such that there are two copies (a la the iTunes database). One copy is XML and the other is in SQLite format. The two copies of data are kept synced by CoreData. The purpose behind this is to make an application's files extremely easy to read and manipulate from 3rd party apps but also not have to deal with the overhead of an XML file with 20,000 dictionaries.
It seems like a really cool idea and it has been working great in the iTunes codebase for some time now. Does any OS do something like this already? It seems to me like an obvious solution to a very common development problem. Should really cut down on development time.
Many comments seem to think that Spotlight is "just another desktop search". Ho-hum. Of course it is that, but I think what will be killer is its integration into the system. The Steve Jobs demos are cool, but they are not very focused on what I think is the real wow - Smart Folders in the Finder. I truly believe these will revolutionise the way people manage files. If you've used iTunes for any length of time you'll find the smart playlists absolutely invaluable. Having that at the Finder level will be incredible. It'll make the "recent documents" and "recent applications" menu look pretty lame. I think after a while no-one will be able to understand how the hell we managed with only fixed folders all these years.
That's what has me tingling!
I do a lot of work requiring realistic physics simulation ( using the Open Dynamics Engine ) -- I don't have the expertise or knowledge to attempt to vectorize ODE, nor do I have the time ( since my work is *using* the engine, not writing it. ). What I *do* know is that ODE, internally, does massive vector operations on float arrays ( float[4] vectors/quaternions, float[16] matices, etc etc ) and it clearly would benefit from SIMD optimizations. The trouble is, all the people who do know how to write such optimizations are on the x86 platform...
Anyway, my simulations are heavily CPU bound, and any improvements that can be had for "free" will make me happy as a clam.
lorem ipsum, dolor sit amet