Abo
  • Services:
Anzeige
Swift soll Objective-C ablösen.
Swift soll Objective-C ablösen. (Bild: David Bates)

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.

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()

Anzeige


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)

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.

 Programmiersprache: Swift ist gekommen, um zu bleibenPerformance im Vergleich 

eye home zur Startseite
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...



Anzeige

Stellenmarkt
  1. Securiton GmbH Alarm- und Sicherheitssysteme, Achern
  2. Fresenius Netcare GmbH, Bad Homburg
  3. Rimpl Consulting GmbH, Raum Köln-Bonn (Home-Office möglich)
  4. DATAGROUP Köln GmbH, Berlin, Dessau


Anzeige
Hardware-Angebote
  1. 733,59€
  2. 379,90€
  3. 314,99€ mit Vorbesteller-Preisgarantie

Folgen Sie uns
       


  1. Red Star OS

    Sicherheitslücke in Nordkoreas Staats-Linux

  2. Elektroauto

    Porsche will 20.000 Elektrosportwagen pro Jahr verkaufen

  3. TV-Kabelnetz

    Tele Columbus will Marken abschaffen

  4. Barrierefreiheit

    Microsofts KI hilft Blinden in Office

  5. AdvanceTV

    Tele Columbus führt neue Set-Top-Box für 4K vor

  6. Oculus Touch im Test

    Tolle Tracking-Controller für begrenzte Roomscale-Erfahrung

  7. 3D Xpoint

    Intels Optane-SSDs erscheinen nicht mehr 2016

  8. Webprogrammierung

    PHP 7.1 erweitert Nullen und das Nichts

  9. VSS Unity

    Virgin Galactic testet neues Raketenflugzeug

  10. Google, Apple und Mailaccounts

    Zwei-Faktor-Authentifizierung richtig nutzen



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Astrohaus Freewrite im Test: Schreibmaschine mit Cloud-Anschluss und GPL-Verstoß
Astrohaus Freewrite im Test
Schreibmaschine mit Cloud-Anschluss und GPL-Verstoß
  1. Cisco Global Cloud Index Bald sind 90 Prozent der Workloads in Cloud-Rechenzentren
  2. Cloud Computing Hyperkonvergenz packt das ganze Rechenzentrum in eine Kiste
  3. Cloud Computing Was ist eigentlich Software Defined Storage?

HTC 10 Evo im Kurztest: HTCs eigenwillige Evolution
HTC 10 Evo im Kurztest
HTCs eigenwillige Evolution
  1. Virtual Reality HTC stellt Drahtlos-Kit für Vive vor
  2. Google Im Pixel steckt wohl mehr HTC als gedacht
  3. Desire 10 Lifestyle HTC stellt noch ein Mittelklasse-Smartphone für 300 Euro vor

Udacity: Selbstfahrendes Auto selbst programmieren
Udacity
Selbstfahrendes Auto selbst programmieren
  1. Strategiepapier EU fordert europaweite Standards für vernetzte Autos
  2. Autonomes Fahren Comma One veröffentlicht Baupläne für Geohot-Nachrüstsatz
  3. Autonomes Fahren Intel baut Prozessoren für Delphi und Mobileye

  1. Re: VR Stand der Dinge (ich ergänze die Liste mal...

    ZyzyX | 17:21

  2. Re: BATTLETECH

    Moe479 | 17:19

  3. Re: PHP ist keine Programmiersprache

    NeoTiger | 17:19

  4. Re: Das Problem bei der NSA-Affäre ist, dass...

    SkalliN | 17:17

  5. und was ist mit

    Moe479 | 17:14


  1. 17:25

  2. 17:06

  3. 16:53

  4. 16:15

  5. 16:02

  6. 16:00

  7. 15:00

  8. 14:14


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel