Sign

Apple Developer Connection: Developing Cocoa Applications Using MacRuby.

Moreover, I advise that the iPhone software platform must be opened.

Cocoa

This post is hard for me to write.

The keenest of eyes may have noticed that the last time I released anything written in Cocoa was in mid-February. I still don’t like to talk about my job any more than is necessary, but this was before my new employment, although not before I’d come in contact with the place of it (I’ve known them for years). It is impossible for me to not make the connection. I’m writing significantly less Cocoa code nowadays, and despite getting a new computer in March, I have yet to transfer all my source code over.

Even though I’ve been writing code in both C# and Objective-C for the past several years, I would be lying if I didn’t say I’ve been writing more C# than ever. I have several reflections around this:

  • You can say a lot of things about C#, but writing C# in Visual Studio is a far smoother experience than is writing Objective-C in Xcode. Not only is the built-in Intellisense and refactoring great, there are really great plugins^W”add-ons” that take it to the next level. I know that this is harder to do with a C-derived language than it is with a new language whose supporting infrastructure you just made up yourself, and I know that clang and assorted infrastructure changes will help assuage the tremendous sinking feeling I get sometimes when I wait for the magic to kick in and realize that it’s not there. But it won’t be there tomorrow, and it’s definitely not there now.

  • Interface Builder is still far and away better than anything Visual Studio can muster, because there’s a much better culture around user interface design. In Windows Forms certainly, but even in WPF, the level of excellent controls I’m looking for is mostly just not there. Most of them look like crap (and offer a would-be-placating property or two to change the color or font or retarget the Office/Visual Studio/Windows version from which the control’s appearance is supposedly taken as an excuse), and many of them work like crap.

    Maybe the biggest thing to cope with is that if you’re trying to do good interface design on Windows, you have to go the plain-but-default way, look increasingly dated and don’t attempt any moves that Microsoft wouldn’t pull which is a great damper on creative solutions, or you really have to do what feels good for your particular application from the imperfect tools that are there and risk being called out as just another skin app that’s got that “flashy” look (for Windows Classic-theme users) just for the hell of it.

  • The thought has occurred that moving to RubyCocoa might be worth it, since Ruby is a language that I really love, header-file-less, a better fit for Cocoa’s loose typing and heavy basic data structure use, and last but not least possible since I intend to make source code available for all my applications eventually. But there’ll be a transition period before I can tease apart Objective-C and Cocoa and adapt fully to all intricacies of writing code for the Ruby bridge (it’s the second part that’s hard). And Xcode’s support for Ruby is far less shining than is the Objective-C support.

  • Maybe I’m just spent at the end of each day and especially the weekend where I can really get stuff done regarding my own applications. The drawback, if I may call it that, of a fulfilling and interesting job may be that you’re all out-programmed at the tail end of those 40 hours.

I still love Cocoa. Writing an application in it is more satisfying than any alternative I’ve found. But the actual grunt work is dissuading, and some technologies I really want to use, like Core Animation, manages to combine graphical arithmetics (one of my great flaws since I have trouble context-switching between the two concepts without constantly keeping notes) and writing a lot of code.

I definitely still plan on updating my applications. But right now, I don’t know when that’ll take wings beyond a commitment and an intent. And this saddens me.

Moreover, I advise that the iPhone software platform must be opened.

I/O

Here’s a thought.

  • Snow Leopard is going to unleash the awesome power of applesour GPUs.

  • The new MacBooks are the first of the Macs out the gates for DisplayPort, and all of the Macs will eventually transition to DisplayPort.

  • DisplayPort doesn’t offer significant resolution enhancement above DVI or HDMI.

  • However, DisplayPort does allow for extended data via packets instead of a separate predetermined channel.

Could DisplayPort become another general-purpose I/O port?

Moreover, I advise that the iPhone software platform must be opened.

Duo, Meet Core 2 Duo

A docking station would have been great, but the LED Cinema Display introduced today is the closest thing to one that we’ve been since they cancelled the PowerBook Duo. (A docking station would have required consistent and adjacent placement of the MagSafe, USB and DisplayPort ports along all supported laptops; or per-model versions. )

But the LED Cinema Display is more than just a docking station; it’s the next step in the “let’s switch over everyone to laptops” strategy that Apple’s been running for the past eight years. Apple knows that there are some people — including me — that they’re just not going to sell a desktop to anymore. Their strategy is two-fold: try to upsell everyone on MobileMe and “effortless” “syncing”, and as of today, get an iMac without the iMac. The iSight’s there, the mic’s there, the speaker’s there, the extra USB ports are there for plugging in stuff without having to remember which cords to rip out when undocking. And yeah, you won’t have to cart around an extra AC adapter. You could get a good desktop without the syncing worries.

This is an inspired move, and I applaud it, but my applause will remain inversely proportional to the display’s price tag. At $899, this is nearly another MacBook.

Moreover, I advise that the iPhone software platform must be opened.

« Newer posts · Older posts »