Frontier kernel open-source

Dave Winer announced that the Frontier kernel—the C code, the internals of the application—will be made open-source. I’m glad: I think it’s a good thing for Frontier and Radio and their users.

During the latter part of my stint at UserLand I worked on the Frontier kernel. A big part of my efforts were on Carbonizing it. Timothy Paustian started the job, and handled all the really crazy low-level stuff like threading, then I did user interface stuff and fixed bugs. In some cases I was able to adopt the Aqua appearance, but going all the way with that would probably have tripled the development time. At least.

Anyway, what I love about the kernel is the way it is written in C but is nevertheless object-oriented. (Remember that it was started in the late ’80s, so C was the natural choice.)

The way it’s done is via the use of structs instead of “real” objects. These structs contain function pointers, so one object can inherit from another and have not just different data but different methods.

I found this to be surprisingly elegant, so much so that now, years later, I sometimes get the urge to write in C just so I can use this style of object-oriented programming. (But then the urge passes, and I stick to Objective-C.)

17 May 2004

Archive