Speakers | |
---|---|
David Chisnall | |
Schedule | |
Day | Sunday |
Room | Janson |
Capacity | 1400 |
Start time | 11:00 |
End time | 11:50 |
Duration | 00:50 |
Info | |
Track | Languages Track |
Objective-C: Not just for Macs and iPhones
According to TIOBE[1], Objective-C is on track to be language of the year 2010. This relatively sudden growth has come largely as a result of Apple's increasing popularity and it's tempting to think of Objective-C as a language solely for developing for Apple products. This is not the case.
Open source Objective-C has been around for a long time; GCC has supported the language for two decades. The GNUstep project began in the early '90s to create an implementation of the OpenStep specification, published by Sun and NeXT. When Apple bought NeXT, their implementation of this specification was renamed Cocoa, and GNUstep has continued to track these changes.
Objective-C support languished in GCC somewhat over the last decade and Apple abandoned the project in response to the switch to GPLv3, beginning work on a new compiler: Clang. Clang has a clean separation of the generic and implementation-specific parts of the language, so support for the Apple and FSF Objective-C implementations can easily coexist. This is fortunate, as the two implementations differ in a number of important ways. This talk will discuss the various ways in which the two implementations differ at the low level, including a simple way of corrupting the stack with the Apple and GCC implementations, which provides a recoverable error with the latest GNUstep implementation.
Some parts of Objective-C 2 are purely implemented in the compiler, but most require some library support. The Étoilé project provided a framework that implemented some of these on top of the GCC Objective-C runtime library.. This included support for Apple's blocks (closures), about six months before Apple's first public release of this feature. This approach has some limitations that could only be avoided by changing the ABI and either creating a new runtime library: the GNUstep Objective-C runtime.
Today, we have solid open source support for the Objective-C language. This talk will discuss the challenges involved in supporting Objective-C 2 on non-Apple platforms, covering the compiler, the runtime library, and the supporting frameworks. Time-permitting, it will also cover some of the features that make the language interesting, including higher-order messaging and the ability to trivially bridge other dynamic languages.
This talk will also cover the new optimisations, inspired by earlier work from the Self team, that allow safe method lookup caching, eliminating the overhead imposed by the dynamic nature of Objective-C, in most common cases.
Concurrent events:
Next (up to 3) talks in the same room (Janson):
When | Event | Track |
---|---|---|
12:00-12:50 | Practical Go Programming | Languages |
14:00-14:50 | Liberating Open Office Development | Office |
15:00-15:50 | WebODF: an office suite built on browser technology | Office |
Events that start after this one (within 30 minutes):
When | Event | Track | Where |
---|---|---|---|
12:00-12:50 | Practical Go Programming | Languages | Janson |
12:00-12:30 | JamVM Gets a New Flavour | Free Java | AW1.125 |
12:00-12:45 | Configuration management for development environments | Configuration & Systems Management | AW1.120 |
12:00-12:45 | Writing a user-defined type | PostgreSQL | H.2213 |
12:00-12:50 | Data-as-a-Service with Infinispan | Cloud | Chavanne |
12:00-12:55 | Towards a GNOME 3.0 accessible: Building accessibility into GNOME Shell and its UI Libraries | Accessibility | AW1.121 |
12:00-13:00 | MeeGo: A solid platform for hackable mobile devices | Embedded | Lameere |
12:00-13:00 | NCIV brainstorming | New challenges in Virtualization | AW1.105 |
12:00-14:00 | Keysigning | Keysigning | Ferrer |
12:10-12:50 | Moose - A Postmodern Object System for Perl 5 | Perl | AW1.126 |
12:15-12:55 | Unifying SIP and Web Worlds with Lua | Open Source Telephony | AW1.124 |