Objective-C und Swift im Vergleich

Aus Sicht der Entwickler gibt es beim Wechsel von Objective-C zu Swift viele offensichtliche Änderungen. Quer durch die Sprache zieht sich das Ziel, einfachen und selbsterklärenden Code zu schreiben. Der erste Ansatz dafür ist bereits die schlankere Syntax.

Stellenmarkt
  1. B2B/EDI Spezialist (w/m/d)
    EURO-LOG AG, München-Hallbergmoos
  2. IS-H/i.s.h. med-Modulbetreuer*in (m/w/d)
    Universitätsmedizin der Johannes Gutenberg-Universität Mainz, Mainz
Detailsuche

Diese ist auffällig gut lesbar. Es wird bewusst auf redundante Informationen verzichtet. Und auf den ersten Blick wird klar: Die eckigen Klammern werden in Swift viel seltener verwendet. Exemplarisch für die Vereinfachungen steht die Variablendeklaration. Hier der direkte Vergleich: Objective-C und Swift im Vergleich
//Objective-C: MeinAuto *einAuto = [[MeinAuto alloc] init];
// Swift: var einAuto = MeinAuto()


Auch das Semikolon am Ende der Zeile fällt weg. Zudem wurden Strings vereinfacht ("ein String" statt @"ein String") und weitere Optimierungen umgesetzt.

Statische Datentypen mit automatischer Erkennung

Darüber hinaus verzichtet Swift überall auf Angaben, wo es der Lesbarkeit dient. Die Type Inference unterstützt dieses Ziel maßgeblich: Der Interpreter erkennt bei der Initialisierung von Variablen den Datentyp. Variablen müssen dann nicht zusätzlich deklariert werden. Trotzdem wird der Datentyp festgelegt. Eine Integer-Variable kann nicht zu einem String werden wie zum Beispiel unter PHP oder Javascript.

Keine explizite Arbeit mit Zeigern (Pointer)

Golem Akademie
  1. Apache Kafka Grundlagen: virtueller Zwei-Tage-Workshop
    21.–22. März 2022, Virtuell
  2. C++ Programmierung Basics: virtueller Fünf-Tage-Workshop
    28. Februar–4. März 2022, virtuell
Weitere IT-Trainings

Die noch aus der Sprache C bekannten Zeiger (Pointer) sind auch unter Objective-C ständig präsent (erkennbar beispielsweise am Sternchen, siehe Codebeispiel oben). Swift unterstützt das Konzept noch, es gibt natürlich auch weiterhin Referenzen. Aber die Dereferenzierung muss zum Beispiel nicht mehr explizit erfolgen. Dieser Aspekt macht es Einsteigern viel leichter, was gerade auch aus wirtschaftlicher Sicht ein Faktor sein kann. Werden Quereinsteiger eingestellt, ist der Zugang zu Swift um einiges leichter als zu Objective-C.

Definition und Implementierung vereint

In Objective-C werden pro Klasse jeweils zwei separate Dateien benötigt. Der "Header" (Dateien mit der Endung .h) enthält die öffentlichen Definitionen. Die Logik wird in der Implementierungsdatei (Endung .m) hinterlegt. Es gibt also mehr Dateien. Noch gravierender ist aber die Aufgabe, den Header und die Implementierung auf dem gleichen Stand zu halten. Eine Änderung muss so an zwei Stellen hinterlegt werden. Unter Swift ist das Konzept leichter zu pflegen. Es gibt es nur eine Klassendefinition in der Swift-Datei (.swift).

Playgrounds als praktisches Werkzeug

Um Objective-C oder andere Sprachen zu lernen, muss ein klassisches Projekt als Testumgebung dienen. Der Entwickler verändert Quellcode, übersetzt ihn und führt das fertige Programm aus. Das Ergebnis wird getestet, und der Prozess startet erneut. Was keine Hürde darstellt, machen die Xcode Playgrounds trotzdem noch einfacher. Im Playground wird im Editor Quellcode hinterlegt, der kurz nach der Eingabe übersetzt und automatisch ausgeführt wird. Das ermöglicht unmittelbares Feedback - ohne zusätzliche Schritte. Berechtigter Kritikpunkt ist derzeit die Stabilität. Ein Playground muss hin und wieder nach einem Problem neu gestartet werden.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Programmiersprache: Swift ist gekommen, um zu bleibenPerformance im Vergleich 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8.  


GLSS2012 26. Jun 2016

kennt jemand noch ein gutes Foren außer www.swift-support.de ?

HansiHinterseher 21. Mär 2016

Late Binding hat jede Sprache die Polymorphie unterstützt. Du meinst sicherlich das...

Analysator 21. Mär 2016

Ich habe an der Uni Java und Objective C (und zum Glück Haskell) gelernt. Ich mag alle...

TheUnichi 08. Mär 2016

Es geht nicht da rum, "optionale" Features bereitzustellen. Apple ist klar, wenn es...

zilti 07. Mär 2016

Es gäbe da auch noch GNUStep, die entwickeln Cocoa für Linux. Weiss aber nicht, wie gut...



Aktuell auf der Startseite von Golem.de
Corona-Warn-App
Jede geteilte Warnung kostete 100 Euro

Die Bundesregierung hat für die Corona-Warn-App bisher mehr als 130 Millionen Euro ausgegeben. Derzeit gibt es besonders viele rote Warnungen.

Corona-Warn-App: Jede geteilte Warnung kostete 100 Euro
Artikel
  1. Activision Blizzard: Was passiert mit Call of Duty, Diablo und Xbox Game Pass?
    Activision Blizzard
    Was passiert mit Call of Duty, Diablo und Xbox Game Pass?

    Playstation als Verlierer und Exklusivspiele für den Xbox Game Pass: Golem.de über die bislang größte Übernahme durch Microsoft.
    Eine Analyse von Peter Steinlechner

  2. Glasfaser in Freiburg: Telekom kommt wegen wirrer Auflagen nicht weiter
    Glasfaser in Freiburg
    Telekom kommt wegen wirrer Auflagen nicht weiter

    Um Bauwurzeln zu schonen, sollte die Telekom in Freiburg Glasfaser im Zickzack ausbauen. Das dortige Tiefbauamt lehnte den Plan des Gartenbauamtes aber ab.

  3. Energiespeicher: Große Druckluftspeicher locken Investorengelder an
    Energiespeicher
    Große Druckluftspeicher locken Investorengelder an

    Hydrostor bietet eine langlebige Alternative zu Netzspeichern aus Akkus, die zumindest in den 2020er Jahren wirtschaftlich ist.
    Von Frank Wunderlich-Pfeiffer

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • LG OLED 55" 120Hz 999€ • MindStar (u.a. NZXT WaKü 129€, GTX 1660 499€) • Seagate Firecuda 530 1TB inkl. Kühlkörper + 20€ PSN-Guthaben 189,90€ • HP Omen Gaming-Stuhl 319€ • Sony Pulse 3D Wireless PS5 Headset 79,99€ • Huawei MateBook 16,1" 16GB 512GB SSD 709€ [Werbung]
    •  /