© Liashko/Shutterstock.com
Objective-C ist tot – lang lebe Objective-C?

Eine Schwalbe macht noch keinen Sommer


Apple hat auf der WWDC im Juni überraschend eine neue Programmiersprache mit dem Namen Swift vorgestellt und damit für Furore gesorgt. Neben dem nicht unerheblichen Überraschungseffekt hat die Ankündigung jedoch ein geteiltes Echo hervorgerufen. Welche Vor- und Nachteile die Ankündigung nach sich zieht, wie viel Euphorie bzw. Skepsis angebracht und gerechtfertigt sind und welche Schlüsse man als Entwickler daraus ableiten sollte, ist Thema dieses ersten Teils einer dreiteiligen Artikelserie.

Objective-C ist mittlerweile eine schon deutlich in die Jahre gekommene Programmiersprache. Ihre Anfänge nahm sie bereits zu Beginn der 80er Jahre, als sie bei NeXT für die Entwicklung des Betriebssystems NeXTStep eingesetzt wurde. Nach Übernahme von NeXT durch Apple Mitte der 90er wurde sie Teil von Apples Betriebssystem Mac OS X, und 2007 feierte Objective-C mit iPhone OS 1.0 schließlich sein Debüt auf dem Smartphone.

Über die Jahre wurden viele neue Features hinzugefügt und teilweise auch wieder entfernt (z. B. Garbage Collection). Fest steht: Die Sprache ist nach wie vor lebendig.

Trotz vieler Neuerungen wie ARC (Automated Reference Counting), Blocks (vergleichbar mit Closures) und moderner Syntax für Collection-Typen und Subscripting kann sie jedoch an mancher Stelle ihre Wurzeln (und Schwächen) nicht verleugnen. Die fehlenden Name­spaces beispielsweise sind ein Umstand, der Entwickler zu permanenten Workarounds zwingt, um nicht in ungeliebte Namenskollisionen zu laufen. Zudem sind die immer wieder an die Oberfläche brechenden API-Teile in C mit ihren Pointern gleichermaßen ein Hindernis für Neueinsteiger sowie erfahrene Entwickler.

Damit der Spaß nicht auf der Strecke bleibt

Die Motivation Apples zur Entwicklung und Einführung einer neuen Programmiersprache leitet sich jedoch nicht alleine aus den Unzulänglichkeiten von Objec­tive-C ab. Ein weiterer Faktor dürften auch die Erkenntnisse aus den vergangenen dreißig Jahren mit unterschiedlichen Programmiersprachen und Programmierparadigmen gewesen sein. In letzter Zeit erfahren funktionale Programmiersprachen wie Ruby, Scala und Clojure gesteigertes Interesse, und bestehende Sprachen werden um funktionale Aspekte erweitert (Objective-C: Blocks, Java: Lambdas).

Dies folgt sowohl der Erkenntnis, dass sich Probleme mithilfe funktionaler Programmierung leichter parallelisieren lassen und damit performanter auf heutigen Mehrkernarchitekturen laufen, als auch dem Wunsch nach größerer Flexibilität in der Wahl der Mittel...

Exklusives Abo-Special

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang