Monday, October 10, 2005

My Mini

For so long I wanted to get a Mac. The elegance of the operating system has always allured me, but it was simply too expensive. Lately and at last, I got a Mac-Mini, the cheapest one, as good as any for me, it's the OS that I'm concerned about.

I had panther for a couple of days before I installed tiger, so I'll mainly speak about my tiger experience.

First of all, the installation is really, really painless! (linux folks come see and learn ;-P)

I think the desktop is really nice, maybe a bit less practical than windows and roughly as practical as a nicely configured linux :) the UI is a bit sluggish as it is famed to be, but is really beautiful. Fast user switching, Expose, the dashboard, etc. all combine to deliver a rich user experience.

Programming the Mac:

What really concerned me, was the development on the mac, as i am writing these lines, the interactive python shell is opened in a window just beside. OS X comes with perl and python (and even Ruby!)which is very convenient for me. But the new thing I experienced was Xcode.

I found Xcode 2.0 to be really nice, supporting multiple types of projects... I'm not expert yet, .. and it's not MS Visual Studio (I think it will soon be very competitive though) but the Interface Builder is very neat. Well, I think I can manage to bear using it for a large project. (but i would rather join in its development :) )

What really exited me was the classes, the Cocoa framework, the OO wrappers for the Max OS X functionality, and having worked long enough with Microsoft's MFCs, I must say I was amazed. Cocoa shouldn't be compared with MFCs, I think it's way more deeply object oriented (which would surely reflect also on the performance though, MFCs are really thin wrappers, therefore they do not impose a lot of performance overhead), the design is very neat, object oriented design principles are evident in every aspect of the library, I don't know much about it yet, but I say it's to be compared with the .net framework, or the java class libraries, only this time it is native. Language, Objective-C was a shock for me in its own accord, for the first time out of the scripting world (i.e. python, perl, ruby, etc) I face dynamic typing, late binding and object orientation with such elegance. Again, it is comparable to Java or Smalltalk, but this time it runs native on the machine.

Well, I'm sure the following period will hold a lot for me to learn, and I might change my mind :), but then I'd surely tell ya ;)

No comments: