Swift

  • Floris schrieb:

    Marius Hartig schrieb:

    Aber Swift wird doch niemals Obj-C komplet ersetzten Swift ist ja nicht Typen sicher und das ist blöd oder ?


    Wer sagt, dass Swift nicht typsicher ist? Swift ist typsicher, stärker noch als Objective-C:
    Verwirren kann in diesem Zusammenhang sicher "inference", dort wird tatsächlich ein Typ (nach klar definierten Regeln) geschätzt, aber hat eine Variable erst einmal einen Typ, dann behält sie den auch. Z.B. bei var myInteger = 70. Danach führt myInteger = "Hi" zu einer Exception. Die Schätzregeln sind sehr klar und leicht zu merken, das ist eigentlich nur vereinfachte Syntax und wirkt sich nicht negativ auf die Typsicherkeit aus.
    Verwirren kann auch die Möglichkeit, Operatoren zu überladen, so dass "+" für String + Character -> String verwendet werden kann. Das ist aber alles typsicher definiert.
    Und mehr noch, das habe ich mir schon lange gewünscht: Durch Generics bekommen Arrays und Dictionaries jetzt auch einen (Inhalte-)Typ, das gab's vorher nicht. Und natürlich auch selbstgeschriebene Klassen.
    Und auch noch: Objekten ein nil zu erlauben ist jetzt nicht mehr default, sondern muss explizit angegeben werden, so dann man es i.d.R nicht mehr tut, wenn man es nicht braucht. Aus meiner Sicht ein weiterer Schritt in Richtung Typsicherheit.
    ja habe ich auch bemerkt als ich mir das buch durchgelesen habe ^^
  • Amin Negm-Awad schrieb:

    Bei dieser ganzen Diskussion: Wer hatte denn schon einmal einen Typfehler zur Laufzeit? Eine Instanz falscher Klasse im Array? Mir passiert irgendwie so etwas nie.

    +meld+
    Gegen eigene Blödheit sind halt nur letale Kräuter gewachsen. ;)
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Amin Negm-Awad schrieb:

    Bei dieser ganzen Diskussion: Wer hatte denn schon einmal einen Typfehler zur Laufzeit? Eine Instanz falscher Klasse im Array? Mir passiert irgendwie so etwas nie.


    Das stimmt natürlich, ist mir auch noch nie passiert. Allerdings schreibe ich in den Kommentar zu einer Array-Property auch immer: Array of Whatever. Wenn ich nicht mehr genau weiß, ob ich für Whatever ein eigenes Objekt geschrieben hatte oder einfach meinetwegen einen String verwendet, schaue ich dort nach. Das jetzt mit Compilezeitprüfung im Code zu haben, gefällt mir und ich habe die Klarheit von Generics aus meinen Java-Zeiten :) schon vermisst.

    Ob sich Swift durchsetzen wird, ist die Frage. Objective-C und Swift gemeinsam in einem Projekt ist ja keine schöne Dauerlösung.
    Und ab wann Swift gut funktioniert. Swift 1.0 ist bestimmt noch sehr fehlerhaft.
  • Floris schrieb:

    Amin Negm-Awad schrieb:

    Bei dieser ganzen Diskussion: Wer hatte denn schon einmal einen Typfehler zur Laufzeit? Eine Instanz falscher Klasse im Array? Mir passiert irgendwie so etwas nie.


    Das stimmt natürlich, ist mir auch noch nie passiert. Allerdings schreibe ich in den Kommentar zu einer Array-Property auch immer: Array of Whatever. Wenn ich nicht mehr genau weiß, ob ich für Whatever ein eigenes Objekt geschrieben hatte oder einfach meinetwegen einen String verwendet, schaue ich dort nach. Das jetzt mit Compilezeitprüfung im Code zu haben, gefällt mir und ich habe die Klarheit von Generics aus meinen Java-Zeiten :) schon vermisst.

    Ob sich Swift durchsetzen wird, ist die Frage. Objective-C und Swift gemeinsam in einem Projekt ist ja keine schöne Dauerlösung.
    Und ab wann Swift gut funktioniert. Swift 1.0 ist bestimmt noch sehr fehlerhaft.

    man muss es doch nicht müschen oder ?
    die einen werden Swift benutzen die anderen werden weiterhin Obj-C benutzten ^^
  • Wie viel Sicherheit bringt denn ein Feature, wenn man den Fehler nie gemacht hat? Und bei mir heißt das Dingend ohnehin immer persons. (Darin liegen dann Instanzen von Table.)

    Ich fand die Argumentation schon immer krude. Letztlich ist das eine Form von Templates, die die Sache eher komplizierter und damit fehleranfälliger machen. Klingt für mich ein bisschen so, als ob man von der Leiter fällt, wenn man einen Rauchmelder an der Decke anbringt.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Amin Negm-Awad schrieb:

    Wie viel Sicherheit bringt denn ein Feature, wenn man den Fehler nie gemacht hat? Und bei mir heißt das Dingend ohnehin immer persons. (Darin liegen dann Instanzen von Table.)

    Ich fand die Argumentation schon immer krude. Letztlich ist das eine Form von Templates, die die Sache eher komplizierter und damit fehleranfälliger machen. Klingt für mich ein bisschen so, als ob man von der Leiter fällt, wenn man einen Rauchmelder an der Decke anbringt.


    Wenn man ein Framework schreibt oder eine Bibliothek, die andere benutzen, dann ist es schon hilfreich, wenn man sie gegen falsche Benutzung möglichst gut absichern kann.
    Und wenn man sich daran gewöhnt hat, ist glaub ich einem Array einen Typ zu geben auch nicht komplizierter als einer Variable einen Typ zu geben.

    Aber du hast schon recht, Objective-C ist nicht unsicher was die Typisierung betrifft, nur weil es keine Generics hat.
  • Also ich habe in letzter Zeit ziemlich viel Framework-Code geschrieben und dieses Problem nicht gehabt. Das heißt, ich habe es doch gehabt, weil ich heterogene Arrays benötigte. Aber da hilft das dann auch wenig.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Ich habe ObjC 1.5 oder 2.0 oder 2.5 oder Swift irgendwie überhaupt nicht vermißt oder herbeigesehnt. Für meinen Bedarf war ObjC 1.0 schon vollständig ausgereift... Ja, man spart sich mit den Neuerungen manchmal etwas Tipparbeit, aber von der Lesbarkeit finde ich ObjC 1.0 immer noch am besten. Gerade weil es einen dazu zwingt alles auszuschreiben.

    Und das bischen MRC macht man nach ein paar Jahren im Tiefschlaf richtig und getter/setter klopft man in 2 Minuten runter und schaut sie nie mehr an. Denn Bugs liegen eher im Konzept als in Tippfehlern an solchen Stellen.

    Aber, so spricht halt der erfahrene Meister, der immer wieder feststellt, dass seine Meisterschaft nicht mehr viel wert ist weil es neuartige Werkzeuge gibt mit denen der Heimwerker recht erfolgreich werden kann :)

    PS: ich träume immer noch von einem kompletten OS das in purem Obj-C geschrieben ist... Incl. Kernel und Treibern. Warum? Weil es geht und verstehbar wäre :) Jedesmal wenn ich bei Linux-Kerneltreiber an einem kzalloc() und NULL pointer kernel panics verzweifle wünsche ich mir das...
  • Michael schrieb:

    hns schrieb:

    Ja, man spart sich mit den Neuerungen manchmal etwas Tipparbeit

    Apropo tippen. Nach meinen ersten Fingerübungen mit Swift, finde ich rein das Swift Code eintippen irgendwie unbequem. Ob das nur Gewöhnungssache ist?
    Nö, Sonderzeichen sind objektiv schwieriger zu erreichen. Ich verstehe auch nicht im Geringsten, was da lesbarer sein soll. Besser gefällt mir demgegenüber das const-Konzept.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Also da muss ich selbst als sonst so "schweigsamer" und nur bedächtig lesender User hier mal ein Kommentar abgeben. ;)

    Mit jeder neuen Programmiersprache geht der Rest der Welt immer unter, wie oft haben wir diese Leier schon gehört und trotzdem programmieren täglich tausende, ach' abertausende Kollegen hier und anderswo in reinem C, C++, VB, Delphi, etc. Alle sind sie immer noch nicht ausgestorben, warum auch. Ich sehe Swift auch in erster Linie als Ergänzung und als eine Sprache, die Entwickler auf die Plattform holen soll, die sich bisher vor ObjC gesträubt haben. Dabei kenne ich ehrlich gesagt praktisch nur eine einzige Aussage von Kollegen, die sich von Java und Co. mal ernsthaft an ObjC gewagt haben, nämlich: Geil! Total elegant, warum kannte ich das nicht eher. ;)

    Also, schaut euch Swift an, wenn ihr Lust und Zeit habt. Wenn nicht, benutzt ObjC oder was auch immer. Die Welt wird sich weiterdrehen....
  • macmoonshine schrieb:

    Ich frage mich, wie Apple Swift und Objective-C auf Dauer sieht. Vielleicht heißt es ja eines Tages: Wir unterstützen Objective-C nicht mehr.


    Ich gehe da ehrlich gesagt ganz stark von aus. Es dürfte viel zu teuer sein 2 sprachen gleichzeitig weiter zu entwickeln.

    Gruss

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Thallius schrieb:

    Ich gehe da ehrlich gesagt ganz stark von aus. Es dürfte viel zu teuer sein 2 sprachen gleichzeitig weiter zu entwickeln.


    M$ bietet .NET mit C# und VisualBasic an. Weiß ned, ob es noch VisualC++ gibt, aber jedenfalls mindestens zwei Sprachen.

    Was ich mir gut vorstellen kann, dass Swift AppleScript verdrängt. Außerdem muss sich Swift noch bewähren...

    Bin ja mal gespannt, ob der Code von Swift veröffentlicht wird. Die LLVM-Lizenz zwingt einem dazu ja nicht und verbreitet sich gerade deswegen vllt. ganz gut (auch ARM Ltd. setzt mittlerweile darauf und nicht mehr den hauseigenen von Keil).
  • Auf der Xcode Mailingliste hört sich das nicht nach wegschmeissen an. prod.lists.apple.com/archives/…rs/2014/Jun/msg00024.html
    Ausserdem hängen in der vorhandenen Software jede Menge Investitionen. Ich glaub nicht dass MS ihr Office neu schreibt bloss weil es kein ObjC mehr gibt.

    Chris
    Man macht einfach solange irgendwelche Dinge, bis man tot ist.
    Und dann bekommen die anderen Kuchen.