FOSDEM is the biggest free and non-commercial event organized by and for the community. Its goal is to provide Free and Open Source developers a place to meet. No registration necessary.

David Chisnall
Day Sunday
Room Janson
Capacity 1400
Start time 11:00
End time 11:50
Duration 00:50
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:

When Event Track Where
10:30-11:15 Project Coin Free Java AW1.125
10:30-12:15 LPI Exam 3 Certification Guillissen
10:45-11:25 Mobicents 2.0, The Open Source Java Communication Platform Open Source Telephony AW1.124
11:00-11:15 Rails Admin: The right way of doing data administration with Rails 3 Lightning Talks Ferrer
11:00-11:20 FairVPN, overlay topology construction tool to maximize TCP fairness New challenges in Virtualization AW1.105
11:00-11:30 Tracing Perl with DTrace/SystemTap Perl AW1.126
11:00-11:30 Messaging / Thunderbird Mozilla H.1301
11:00-11:45 Aggregating contacts: writing a backend for libfolks Crossdesktop H.1309
11:00-11:45 PostgreSQL extension's development PostgreSQL H.2213
11:00-11:45 Application Deployment With Chef Configuration & Systems Management AW1.120
11:00-11:45 Understanding the writer core LibreOffice H.2214
11:00-11:50 Django's architecture - the good, the bad, and the ugly Web Frameworks Chavanne
11:00-11:55 Making the printed world accessible: A11y in OCRFeeder Accessibility AW1.121
11:00-12:00 Debian GNU/kFreeBSD CrossDistro H.1308
11:00-12:00 Qt tales from the embedded trenches Embedded Lameere
11:00-12:00 Can we build a simple, cross-distribution installation framework? CrossDistro H.1302
11:20-11:35 KDevelop: Rapid C++ Programming Lightning Talks Ferrer
11:20-11:40 Virtualbricks - a graphical tool for virtual networks management New challenges in Virtualization AW1.105
11:30-12:00 Observing HotSpot with SystemTap Free Java AW1.125
11:30-12:00 Using Gloda to extend Thunderbird Mozilla H.1301
11:30-12:10 Template::Zoom - Modern HTML and PDF Engine Perl AW1.126
11:30-12:10 Scaling Location Services in Large SIP Networks with Kamailio Open Source Telephony AW1.124
11:40-11:55 Timebank: The Timebank free software project Lightning Talks Ferrer
11:40-12:00 VDE 3, architecture overview New challenges in Virtualization AW1.105
11:45-12:15 Wikihelp, moving our help on-line LibreOffice H.2214
11:45-12:30 Tasty Application Distribution with Project Bretzn Crossdesktop H.1309

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