9 Mar 2005 fjf   » (Master)

I have decided that programming is addictive. Or maybe it's just that I'm coding in Cocoa and I'm a chocaholic. Or maybe, as my quiet friend says, I really do need to get laid.

Cocoa. What a strange language! I remember being utterly baffled by it at first, and then at second, also at third... and then one day it started to make sense. Objective-C, the language where everything is expressed between square brackets, like array[indices].

Which you can also have. So:

for (i = 0; i < N; i++) {
  FigureArray * go = [FigureArray arrayWithCapacity:ArrayOfArraySizes[i]];
  [go figure];

And of course, with Objective-C++ the square brackets could mean just about anything anyway, e.g.:

class Nuts : public ExerciseInRedundancy
  inline id operator[](NSArray * A) {
    if (A)
      if ([A count])
        return [A objectAtIndex:rand([A count])];
    return @"Cashew";

(Question: When Apple was thinking of mixing Cocoa with Java, did they plan to call it Cappuccino?)

Insane. I love it. I even looked into using GNUstep. I even compiled an obscure CVS branch of gcc and patched GNUstep source so that I could look into GNUstep using Objective-C++ but

And there is but.

But isn't there always a but?

I'm sorry, but I can't stand GNUstep. From a user perspective: it's too ugly. From a developer perspective: half the methods don't have proper names. I'll take another look next year, but until then it'll just be me and Abi and random Apple users telling me that I've obviously never used a Cocoa application because AbiWord for OS X sucks...

Funny guys. I'll have to send them a bunch of rose stems.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!