Interview mit Objective-C-Experte Tammo Freese

„Der Umstieg von Objective-C auf Swift fällt recht leicht“

Sebastian Meyen
Swift-Logo (Quelle: https://developer.apple.com/swift)

Am Montag Abend hat Apple in der WWDC-Keynote die neue Sprache Swift vorgestellt. Soll Swift das altgediente Objective-C ersetzen? Wie ist der erste Eindruck von der Sprache und aus welcher Sprachfamilie stammt Swift? Wir sprachen mit dem iOS-Experten Tammo Freese über seine Eindrücke und Einschätzung des Newcomers.

Apple hat überraschend seinem altgedienten Objective-C eine neue Programmiersprache an die Seite gestellt: Swift. Wie ist dein erster Eindruck?

Tammo Freese: Ich war erst einmal überrascht. Apple neigt ja eher als andere Firmen dazu, im Entwicklungsbereich bewährte Technologien zu verbessern anstatt auf komplett neue Pferde zu setzen. Objective-C wurde seit 30 Jahren kontinuierlich weiterentwickelt. Andererseits verwendet Swift unter der Haube Cocoa-APIs und die Runtime, die beiden Sprachen scheinen also technisch sehr nah beieinander zu liegen.

Die Sprache an sich gefällt mir sehr gut. Wir können damit das gleiche ausdrücken wie mit Objective-C, nur mit deutlich weniger Code, der auch einfacher zu lesen ist.

Neue Sprachen werden ja nicht auf der grünen Wiese entwickelt, sondern entstammen praktisch immer einer Sprachfamilie; klären wir mal die Verwandschaftsverhältnisse auf (C, Haskell, Ruby, …).

Freese: Je nach Hintergrund fallen hier die Antworten wohl unterschiedlich aus. Mich hat vieles der Syntax an Google Go erinnert, zum Beispiel die Schlüsselworte var und func, das Hintenanstellen von Typen, dass geschweifte Klammern bei if und for nun verpflichtend sind, und dass Funktionen mehrere Rückgabewerte haben können. Aber auch andere Sprachen haben die Syntax wohl beeinflusst: Die Schreibweise [:] als Literal für ein leeres Dictionary kenne ich aus Groovy, den Pfeil -> für Rückgabewerte aus Haskell, Generics aus Java.

Der Playground von Swift ist nicht nur REPL wie wir es aus Sprachen wie LISP, Ruby und R kennen, sondern ein Schritt in die Richtung der interaktiven Programmierung, für die Bret Victor wohl am Bekanntesten ist. Großartig!

Ist Swift dafür gedacht, Objective-C abzulösen, oder handelt es sich eher um eine langfristige Ergänzung des Apple-Klassikers?

Freese: Auf jeden Fall ersteres. Ich denke nicht, dass Apple langfristig zwei Sprachen parallel haben möchte. Die Firma ist bekannt dafür, Dinge wirklich loszulassen. Beispiele: OS 9, Carbon, Garbage Collection, Nicht-Intel Mac, 32bit Intel Mac, iPhone bis 3GS, iPad 1.

Ich denke nicht, dass Apple langfristig zwei Sprachen parallel haben möchte.

Ein weiterer Aspekt ist offenbar, die Einstiegsschwelle für Entwickler in die iOS- und OS-X-Welt tiefer zu setzen; ist das nicht ein Problem, wenn sich eine Vielzahl unkundiger Entwickler zukünftig auf der Plattform „austoben“?

Freese: Ich sehe das als Vorteil: Wenn die Sprache weniger im Weg steht, können Einsteigerinnen und Einsteiger doch viel schneller lernen! Durch die Abwärtskompatibilität mit C hat Objective-C vieles angesammelt, das die Sprache schwerer verständlich macht. Hier ein wenig Code in Objective-C und Swift im Vergleich:

Objective-C:

void (^sayHello)(NSString *) = ^(NSString *name) {
   NSLog(@"Hello, %@!", name);
};
sayHello(@"World");

Swift:

var sayHello = func(name: String) {
   println("Hello, (name)!")
}
sayHello("World")

In Swift brauchen wir keine Typangabe bei der Variablen, weil sie aus dem zugewiesenen Wert abgeleitet wird. Wir haben keine kryptische Blocksyntax, kein NS-Prefix, keine Pointer, kein @, keine unleserliche String-Interpolation, kein Semikolon am Zeilenende. Einfach und schön. Beim Objective-C Code steht die Syntax dem Verständnis zu sehr im Weg. Neulinge werden sich freuen, dass sie damit nicht kämpfen müssen.

[Swift ist] einfach und schön.

Und wann wirst du selbst dein erstes Projekt mit Swift schreiben?

Freese: Mit Swift habe ich gestern (Tag 1) angefangen: Bei Stuffle (einer mobilen Flohmarkt-App) verwendet eine Klasse aus Performance-Gründen Objective-C++. Ich schreibe sie in Swift um, weil ich wissen will, ob sie dann noch genauso schnell arbeitet. Ab dem Release von iOS 8 im Herbst könnte Stuffle mit der Swift-Klasse auch in den App Store.

Der Umstieg von Objective-C auf Swift fällt recht leicht: Normalerweise müssen wir uns bei einem Sprachwechsel an drei Dinge neu gewöhnen – neue Sprache, neue Bibliotheken, neue IDE. Den größten Unterschied machen meiner Erfahrung nach die Bibliotheken. Bei Swift ist nur die Sprache neu, die Bibliotheken sind uns bekannt, die IDE auch, falls wir Xcode verwenden. Und bei AppCode erwarte ich ein schnelles Update mit Swift-Support, da ist das JetBrains-Team extrem gut.

Generell kann ich nur empfehlen, so früh wie möglich von Objective-C auf Swift umzustellen. Objective-C wird langfristig verschwinden, und Swift-Code ist einfacher zu lesen und zu schreiben. Ab Herbst dürfen wir Apps mit Swift auch in den App Store stellen, spätestens dann sollten wir keine neuen Klassen mehr in Objective-C schreiben.

Tammo FreeseTammo Freese ist Gründer und CEO des Start-ups FlockOfBirds. Sein Schwerpunkt ist in den letzten Jahren die Entwicklung mit Objective-C für iOS und OS X. 1999 stieß er auf die Entwicklungsmethode Extreme Programming, die ihn bis heute begeistert. In seiner spärlichen Freizeit forscht er an einem Softwarekonfigurationsmanagement für die testgetriebene Entwicklung.

Geschrieben von
Sebastian Meyen
Sebastian Meyen
Sebastian Meyen ist Chefredakteur des Java Magazins sowie des Eclipse Magazins. Außerdem trägt er die Verantwortung für Programm und Konzept sämtlicher JAX-Konferenzen weltweit. Er begleitet so die Java-Community journalistisch schon fast seit ihren Anfängen. Bevor er zur Software & Support Media GmbH kam, studierte er Philosophie in Frankfurt.
Kommentare

Hinterlasse einen Kommentar

5 Kommentare auf "„Der Umstieg von Objective-C auf Swift fällt recht leicht“"

avatar
400
  Subscribe  
Benachrichtige mich zu:
Michael Johann
Gast

Sehr schönes Interview. Ich finde es bringt einige Dinge gut auf den Punkt. Besonders für alle, die sich fragen, ob der gleiche Lernprozess (Sprache->Tools->Bibliotheken) nun wieder von vorne losgeht, bietet Tammo eine klare Antwort, die ich gestern auch schon einem Kollegen gegeben habe: "Du musst nur noch die neue Syntax lernen".
Wer bisher schon Polyglott unterwegs war, wird damit innerhalb weniger Tage sein neues (Sprach-)zuhause gefunden haben.

Für mich eine schöne neue Zeit.

Robert
Gast

Mir erschließt sich nicht ganz, was dieser Artikel auf einem Portal mit dem Schwerpunkt Java zu suchen hat. Dieses ganze Apple gehype nervt.

Michael Johann
Gast

Ganz einfach. Einige von uns sind Fullstack Entwickler und bauen neben Java-Server Anwendungen auch die nativen mobie Clients für iOS. Mir würde da etwas fehlen, wenn ich allein Infos über Java bekäme.

Erik
Gast

Ja, auch für nicht Fullstackler sind Infos aus anderen Welten durchaus interessant.

TestP
Gast

Also ich finde es OK wenn man auch Infos ausserhalb des Tellerrandes bekommt. Zumal man solche Interviews nur selten liest.

Grüße