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's interesting that there's no mention of Java 1.5, even though it's in the developer preview. Maybe the Java upgrade will slip to 10.4.1?
i have two nice dells and dual 18" flat panel monitors. i used to think i had a really kick ass system. windows XP, btw.
i got a g4 powerbook in november.
my PC's are dormant. all my development is done on the mac. i just love using it.
i can't wait for tiger.
now i know why there are apple fanatics.
Of the apps listed in the FA, Automater appears to be the only one that's really interesting. The Widget thing is already available with Konfabulator and Desktop search is also available from a number of sources. This isn't to say that Apple won't make each of these better. However, I think the breakthrough, killer app is Automater. Sure, you can script events to some extent or another either with the limited capabilities of operating systems or to a greater extent with 3rd party apps, but the ability to build event scripts with XML and/or HTML sounds freakin' awesome.
I find it interesting that SQLite is part of Tiger. I'm curious as to how useful it will be. I'm sure I'd want to keep OS info away from Dev info, but I'm curious as to whether it'll replace mySQL at all.
Know what I like about atheists? I've yet to meet one that believes God is on their side.
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.)
Then it only takes one to
to ruin your whole day...... posted 2004-10-19. The other links are from last year as well. Hmm.
I would count this as a disadvantage - they release stuff before it's finish
Like Microsoft hasn't been doing this all along?? They release the bug-filled product, then months later (at best) release a service pack to take car of the bugs that they let the users find for them instead of doing thier job right in the first place.
Absolutely... but you don't have to pay for that update.
Did Apple charge for the upgrade from 10.2 to 10.3? Yes. Did MSFT charge for the update from NT 5.0 (Windows 200 Pro) to 5.1 (XP)? Yes.
Stop trolling and sign up for an account coward.
Jesus was a compassionate social conservative who called individuals to sin no more.
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).
It's stuff like this that shows why I run OS X instead of Linux. Whereas Linux seems hell-bent on recreating and catching up to Windows, Apple is actually innovating and living on the cutting edge with each OS X release. While there are some things that annoy me about OS X vis a vis Windows, on the whole it is a refreshingly non-'me too' operating platform.
'He who has to break a thing to find out what it is, has left the path of wisdom.' -- Gandalf to Saruman
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.
Your statements are patently false.
Situations where X only runs on 10.2 and up, or Y only runs on 10.3 and up result from adding new functionality, not from breaking old functionality. Frameworks in Macos X support multiple simultaneous versions without conflict.
The reason that so many new packages require new versions of the OS is that the development tools and libraries are improving. Targeting 10.1 or 10.2 requires that developers forgo functionality which can dramatically reduce their effort. For instance using Cocoa Bindings (introduced in Panther) a developer can avoid writing much common code. The authors of Delicious Library say that when they first read about Cocoa Bindings they decided to give it a try:
WebKit, Array Controllers, and scores of other new objects have been introduced over the past few years. In each case the general result is deriving more functionality out of far less code.
This is not the result of Apple un-fucking things. This is the result of Apple producing software that improves the system by adding new functionality that is easier for both developers and end-users.
Apple typically releases free updates and security patches for several years. Jaguar (10.2) came out in 2002, the last major upgrade 10.2.8 was released in mid 2003, I see that 10.2.8 was still covered by the security update several weeks ago.
It is clear that you don't know what you are talking about.
"Apple first showed Spotlight last June, and if you look at it you will see that it is really an extension of an old Copland technology (the project that was started to originally replace System 7.5) that came out in System 8.6 under the TwinTurbo codename (text summarizing and indexing of the hard drive)." TwinTurbo? I thought it was V-Twin. http://www.stevenberlinjohnson.com/movabletype/arc hives/000179.html
Everything seems to be advancing well for OSX, but ever since 10.1, I've never been able to move the mouse properly, because the acceleration is tied inseparably to the track speed - can't they not couple this together and make our lives easier. I would believe many of us are used to non-accelerated mousing from the Linux or Windows platforms. I find it difficult to nagivate in OSX cause of this. Shouldn't that count to the overall useability? I hope Tiger comes with the option of turning off the mouse acceleration.
I'm guessing that much of that angst has be channeled into PearPC
I agree with your sentiment, but I think that Gnome and KDE are too well entrenched for GNUstep to have much of an impact. There's Simply GNUstep of course...
But I suspect GNUstep is tarnished for several reasons.
Cocoa is a minority platform with even fewer open source developers. And how many people know objective-c? The Mac has a long history of quality shareware; on the whole the idea of giving code away for free never caught on as with Linux. Those with skills in such a niche area are no doubt finding lucrative opportunities to sell their spare-time efforts! :)
Providing a clean-room implementation of technologies is dependant on their being killer-apps to run.
In the case of haiku, it's implementing a much cherished discontinued platform.
In the case of wine, it's running Windows apps without Windows.
In the case of classpath, it's implementing a JVM without Sun's restrictions and support on every platform.
In each case these projects aim to provide API AND binary compatibility. Achieving binary compatibility with OSX would be comparatively more difficult given that Cocoa is one of a number of technologies which might also need to be emulated.
Plus, most of us do without the niceties of OSX. Those priveleged few that do have Macs are satisfied with their choice of hardware & software, so to re-implement the wheel isn't a high priority.
Finally are there any killer opensource Cocoa apps whose equivalents don't exists in the X11 world? For example, if Apple were to donate the rest of the Safari code to the community, as Netscape did with Mozilla, it would provide a tremendous example of a large-scale Cocoa app. This would perhaps attract developers to the platform. Plus, it might spur people on to implement the missing bits in GNUstep.
This stuff looks pretty nifty:
Along with improvements to the GUI, Xcode 2.0 will ship with GCC 4.0 which features a new C++ Parser and several code generation improvements including auto-vectorization. While hand-tuning Velocity Engine code can get you the maximum performance from the G4 and G5 processors, now you can have GCC do the heavy lifting for you. You'll benefit from this without any extra effort, with auto-vectorization in GCC bringing anywhere between a 4X and 14X performance improvement to code that works with arrays of data.
AltiVec support without having to write any optimized code...sounds like a winner to me.
Any UNIX command or script, including those written in sh, tcsh, bash, tcl, Perl, or Ruby as well as AppleScript, can be accessed from the widget object.
Is Apple just being an "insensitive clod" here, or what seems to be the problem?
FOR THE LAST FUCKING TIME WIDGETS ARE NOT A FUCKING RIP OFF OF KONFABULATOR YOU FUCKING FUCK FUCK TWAT CUNT. Konfabulator is a series of annoying, stupid, pointless little apps that clultter up your desktop and make you go 'ooh thats pretty' for about ten minutes before you realise how irritating they are and throw the whole lot in the trash. Widgets are a series of useful apps that *dont* clutter up my desktop, a sort of virtual desktop for your utilities, if you will. Widgets are way way better than Konfabulator, and Apple had the idea first anyway, back in the 80's with Desktop Accesories. SO FUCK OFF.
Shitram Brown, PhD
Professor of Mathematics
Well, I am, as you wrote it, "a weenie" - I don't want to pay my 2 months salary for a freaking computer (I live in Poland and in fact my income is quite above average), so I only dream about having a Mac. Well, now with Mac Mini and new prices of iBooks I started to count money maybe to buy one, but back to the point:
I am a long Wmaker user and I tried GNUStep few times, but it simply doesn't work for me. I always do everything the wrong way there, and the menu in the upper left corner just annoys me. Mail.app (or what is it called) reminds me of a mailer program from CDE somewhere in the late nineties. And the whole thing is just ugly. OK, icons are nice, but widgets are terrible: scroll bars, radio button and so on...
Anyway, so far it was always like this: new GNUStep version announcement, apt-get install gnustep, a week or two of futile attempts to like it, apt-get remove gnustep and back to my combo of wmaker/sylpheed/firefox (now replaced by kde 3.3).
Well, maybe not to insightful, but GNUStep has a really long road ahead to be usable to me. And no, I am not a programmer so I am not able to contribute. So maybe I should quit complaining?
But you are right, it would be nice if more of the MacOS X goodness was available to us in the cheap x86 world
Raf
Note: The above paragraph is an oversimplification.
I am TheRaven on Soylent News
I think you are confusing what GNUstep is (the s is lower case, by the way). GNUstep is not a window manager, and GNUstep is not a desktop environment. GNUstep is an implementation of a set of APIs. If you are not a developer (as you point out), it has no more relevance to you than GTK or Qt.
I always do everything the wrong way there, and the menu in the upper left corner just annoys me.
So change it. There are bundles available which will put the menu bar (on every GNUstep app) at the top of the screen, where it belongs, or at the top of a each window. These are likely to be exposed via a configuration interface soon.
And the whole thing is just ugly. OK, icons are nice, but widgets are terrible: scroll bars, radio button and so on...
Take a look at Chameleon (due for official release in the next week or two). It's a complete theme engine for GNUstep. I've seen it running with widget images extracted from OS X, and since GNUstep and OS X both have the same ancestor (OPENSTEP) you get the OS X look and feel.
GNUstep is a great development platform, and work is constantly underway to make GNUstep applications play nicer with other desktop environments (e.g. GNOME, KDE and Windows). When the GCC Objective-C team stop dragging their heels and incorporate the Objective-C++ changes, it will be easy to add a native GNUstep browser, making a pure GNUstep desktop even more possible.
I am TheRaven on Soylent News
I think you are confusing what GNUstep is (the s is lower case, by the way). GNUstep is not a window manager, and GNUstep is not a desktop environment. GNUstep is an implementation of a set of APIs. If you are not a developer (as you point out), it has no more relevance to you than GTK or Qt.
No, I don't confuse it. I know that GNUstep can work with different WMs (Afterstep or, I think now preferred wmaker) and I know that it is an implementation. But for the sake of convenience when I write "I tried GNUstep" I mean "I tried to use the set of official GNUstep applications, i.e. Gworkspace, GNUMail plus few additional contributed applications". And you have to agree that although usage of an API or toolkit should not matter to an enduser, in fact it does. QT apps have different feeling than GTK ones - and even themeing doesn't fully change it.
But then finally you write what is important from my point of view:
So change it. There are bundles available which will put the menu bar (on every GNUstep app) at the top of the screen, where it belongs, or at the top of a each window. These are likely to be exposed via a configuration interface soon.
and
Take a look at Chameleon (due for official release in the next week or two). It's a complete theme engine for GNUstep. I've seen it running with widget images extracted from OS X, and since GNUstep and OS X both have the same ancestor (OPENSTEP) you get the OS X look and feel.
Ok, I'll give GNUstep another try when this is released. The only remaining concern then will be: ok, menubar at the top of the screen is nice, but what about GNUstep not-aware apps? This will really make them annoying, as then they will really stick out.
Anyway, thanks for clarifications.
Raf
"And how many people know objective-c?"
It takes less time to learn ObjC than it takes to learn Java.
And that difference is going to get bigger as Java adds features (and complexity).
It also takes less time to learn ObjC than it takes to learn C#.
There really isn't much of it to learn.
September 2011: Looking for Cocoa/iOS work in Boston area Cocoa Programmer Quincy, MA
importantly it also looks like fun app
ciao
PS smart folders must be one of the best things that will come out of it too...so did you actually read the write blurb??
That with all this access to command line commands and integration to get the "full power" of the mac....that there will inevitebly be security flaws that could be exploited if a bad widget gets onto your computer somehow?
In all fairness to Linux at the developer and server end it is becoming way ahead of Windows. Things like usermode, are driving Linux servers to have features you generally wouldn't see outside of minicomputers and mainframes. Further because Linux is more cross platform you can develop your servers to take advantage of those features and then move to things like zSeries where the hardware is more usermode oriented.
Windows is playing around with VMware type solutions for this.
ObjC seems like a cool language but when you actually try to do some programming with it, it is slow compared to C or C++. Sure it is fast compared to Java, but that is no surprise because Java isn't known for performance.
http://www.macnewsworld.com/story/New-IBM-Apple-Ch ip-To-Run-Dual-Operating-Systems-39364.html
I think the subject-verb agreement is much more important than keeping all the tenses straight. Tiger still "looks good" even if it "looked good" at the Macworld keynote. Would you have such a problem with the tense agreement if I said that I saw a woman yesterday and that I thought she looks good?
And more importantly, what do you think about Core Image? Gimp killer or not?
Si la vida me da palo, yo la voy a soportar Si la vida me da palo, yo la voy a espabilar
it is slow compared to C or C++
What'd you expect from a language that is pseudodynamically typed, uses a redirectable message passing architecture for calling object methods, and allows for addition of new methods to existing objects (that's objects, not just classes) at run-time?
Face it, every language feature comes at a price. C's speed at run-time comes at the price of development speed. ObjC's dynamic features come at the cost of run-time speed.
For most applications, the speed difference is barely even noticeable, so unless you're talking about the relative merits of C, C++, and ObjC for writing a process scheduler or a scientific library or an embedded app or something, I fail to see why the speed argument matters in this case. It's basically saying, "I'll spend potentially an extra few hours or days developing my app to shave a few milliseconds off the program's execution time and a few bytes off its memory consumption."
But personally, I don't think that's a good trade, so I'm going to stick with my ObjC and perl and bash scripts and such.
Hang on - I paid £29 for the OSX public Beta (IIRC) then £25 for the .0 version, then £69 for 10.2 and £69 for 10.3. So that's around £192 over, what, 4 years? A copy of Windows would have run me around £225 for a full copy and then another £100ish for an XP Pro upgrade over the same period.
That was classic intercourse!
Good point so that Linux on PPC may very well soon have some of the hardware based features as well.
If speed is a problem, profile it, locate the specific problem sites, and use C or C++ for those parts.
You can do that, without any sort of slow JNI hackery. Objective-C plays nice with its peers.
September 2011: Looking for Cocoa/iOS work in Boston area Cocoa Programmer Quincy, MA
I don't want to pay my 2 months salary for a freaking computer (I live in Poland and in fact my income is quite above average)
Wow. People in Poland only make $250 a month? I guess that's why there are so many Polish immigrants in Chicago. They came over here to buy $500 Macs
World's tallest building rises in the desert
instead of both insulting him for living in Poland and insulting his intelligence about the Mac Mini.
hm?
I forgot about that in when posting earlier, that is a good point.
For those unfamiliar with the concept, weak binding enables one to create a single body of linked code which depends on calling functions which may never be bound.
Basically, at compile time certain symbols are marked weak, meaning that they appear in the symbol table but their absense is not an error.
At run-time you can call functions to query libraries for the presence of various functions. By noting their presence (or absense) the code then can call functions conditionally.
On most unices one can dynamically load a library by name, to work around version issues. Darwin can do this as well, but we tend to use that only for plugin architectures, etc. Weak binding is the standard for this kind of solution.
As I understand it, the idea for EOF was not conceived by anyone at NeXT, but rather by Swiss Bank (now UBS). This was back in the mid-90s when the finance industry was NeXT's savior.
NeXT thought it was a great idea, ran with it, and created EOF. Which was better than Swiss Bank's implementation, but for which they also wanted a princely sum. Many rich customers went ahead and bought, but Swiss Bank, despite being among the richest of NeXT's clients, was so angry at being charged out the wazoo for what was essentially their own invention, stuck with their own implementation.
And, BTW, some institutions (Bank of America comes to mind) still employed developers coding in OpenStep (version 3.3 IIRC) until well after the year 2000!
I canna believe that no one caught this:
As mentioned earlier, the use of a 64-bit address space is limited to non-GUI applications in Tiger. This doesn't mean, however, that the results of a 64-bit enabled computation can't be displayed on the screen. The strategy that you should use is to create two separate executables that are cooperative. These are:
A 32-bit based Cocoa or Carbon GUI executable that the user can launch and which presents the application's user-interface.
A 64-bit based command-line tool that is launched by, and under the control of, the GUI.
Retarded!
I'd believe it if it was a Microsoft OS, but Apple?
Sadness...
Apple should integrate .Mac services into the Tiger Server release this summer (if not, certainly include it in later versions). Jobs seems to be headed down this path with the iChat server to be included in Tiger. See: Enterprise Mac http://www.enterprisemac.com