• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

Magazin Swift wurde innerhalb von vier Jahren entwickelt

iTea

Braeburn
Registriert
24.01.13
Beiträge
45
Ich finde es schade, dass Swift zu nächst nur zahlenden Entwicklern vorbehalten ist (Xcode 6 beta). Gerne hätte ich jetzt im Sommer damit herum experimentiert um die Sprache mittels den Playgrounds und dem iBook zu entdecken. Mal sehen, ob ich die 99$ dafür locker mache...

Geht mir genau so, ich würde mich gerne spielerisch damit auseinandersetzen, aber 100$ dafür ausgeben finde ich ein wenig... doof. Und wenn das Buch schon nicht über Developer-spezifische Kanäle veröffentlicht wurde, weshalb dann Xcode 6?
 

iTea

Braeburn
Registriert
24.01.13
Beiträge
45
Ich finde es schade, dass Swift zu nächst nur zahlenden Entwicklern vorbehalten ist (Xcode 6 beta). Gerne hätte ich jetzt im Sommer damit herum experimentiert um die Sprache mittels den Playgrounds und dem iBook zu entdecken. Mal sehen, ob ich die 99$ dafür locker mache...

Geht mir genau so, ich würde mich gerne spielerisch damit auseinandersetzen, aber 100$ dafür ausgeben finde ich ein wenig... doof. Und wenn das Buch schon nicht über Developer-spezifische Kanäle veröffentlicht wurde, weshalb dann Xcode 6?
 

HiPhish

Bismarckapfel
Registriert
06.04.10
Beiträge
77
Sagt mal, wenn ich mich als Programmiernoob dafür interessiere, mit Swift anzufangen zu programmieren (habe da 2-3 Appideen, nix kommerzielles, nur etwas für mich, was ich brauche, es aber nicht gibt), wie sollte ich da beginnen? Sollte ich andere Sprachen zu erst lernen?
Ich habe hier schon jemand anderen meine Meinung geschrieben warum man mit C anfangen sollte:
Swift: Apple veröffentlicht kostenloses E-Book über neue Programmiersprache

Mit C wirst du auf jeden Fall eine Sprache beherrschen die einfach und effektiv ist. Da Swift scheinbar auch mit C kompatibel sein soll (ich bin nicht nicht so weit im Buch) ist das auf jeden Fall ein wichtiger Punkt. Es gibt noch keine brauchbaren benchmarks die die Performance von C und Swift vergleichen, aber wenn Swift langsamer sein sollte bedeutet das dass du performancekritische Teile des Programms in C schreiben kannst. Das Gleiche git auch für Objective-C, da Objective-C eine echte Obermenge von C ist.
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
Mit C wirst du auf jeden Fall eine Sprache beherrschen die einfach und effektiv ist. Da Swift scheinbar auch mit C kompatibel sein soll (ich bin nicht nicht so weit im Buch) ist das auf jeden Fall ein wichtiger Punkt.
Hmm, als Craig Federighi Swift auf der Keynote vorgestellt hat, hat er ja gesagt, Swift ist Objective-C ohne C.

Ich finde das aber schon echt lustig, wie viele jetzt mit Swift mit dem Programmieren anfangen wollen. Warum haben die das nicht auch schon mit Objective-C gemacht? Wegen den eckigen Klammern etwa? Die Programmiersprache ist nun wirklich nicht das Schwierigste, was man lernen muss, sondern nur ein recht kleiner Teil des Ganzen. Da wird so mancher noch große Augen machen.
 

Farafan

deaktivierter Benutzer
Registriert
16.09.12
Beiträge
10.250
Genauso viele wie jetzt mit Swift anfangen werden auch wieder damit aufhören. :)

Man hat eben auf der Keynote gehört das nun alles viel leichter und schneller geht, das man mit 2 Zeilen Text ein Spielchen programmieren kann und wie toll das doch alles ist.
Nach den ersten Stunden werde die meisten wieder frustriert die Finger davon lassen wenn sie merken das dies doch ein wenig mehr erfordert und zum Großteil keinen Spaß macht.
 

Houseknecht

Lambertine
Registriert
11.05.12
Beiträge
697
Deswegen fragte ich hier, weils hier ja doch einige Leute gibt, die sich auskennen.
Wenn ihr Tips habt, wie man anfängt bzw. anfangen soll, immer her damit! Bücher, Tutorials, eLearnings, rückts raus ;)
 

Schniko

Reinette Coulon
Registriert
01.08.08
Beiträge
954
Zum Anfangen kann ich nur immer wieder iOS Programming: The Big Nerd Ranch (4th Edition) empfehlen und das am besten gleich im Original und nicht mit irgendwelchen Übersetzungen anfangen.
Wie schon gesagt wurde, ist Swift vielleicht vom Syntax her leichter als Objective-C, allerdings ist letzteres nicht auch etwas, das man lernen kann. Außerdem geht es bei der Programmierung von Apps um viele andere Aspekte - welche Programmiersprache das am Ende ist, ist im Grunde vollkommen egal.

Und zur Frage der Kompatibilität: Mit Swift erstellte Projekte können ganze Objective-C Klassen verwenden. Ich habe gerade erst ein - zugegebener Maßen eher kleines - Projekt in Swift neu begonnen und konnte mit nur ganz wenigen Anpassungen alle Objective-C-Klassen bequem einbinden, sodass jetzt alles, was ich neu mache in Swift ist und alle bewährten alten Klassen bleiben können wie sie sind.
 

tbat

Granny Smith
Registriert
28.10.12
Beiträge
14
Für mich war Swift jetzt der Anlass mich endlich als zahlender Developer anzumelden. Wenn nicht jetzt in Swift einsteigen, wann dann? ich hatte zwar endlich Obj-C relativ gut drauf, jedoch sieht Swift für mich deutlich leichter und unbeschwerter aus.
Bei mir war es sehr ähnlich. Obwohl ich vom Wissen her weit weg vom Programmieren einer richtigen App bin, hab ich mir jetzt den Entwickleraccount gegönnt. Ich hatte erst ein halbes Objektive-C Buch durchgearbeitet und war jetzt vor die Wahl gestellt, Objektive-C weitermachen, oder gleich von Anfang an Swift lernen. Ich hab mich für Swift entschieden und finde es bis jetzt ganz gut.

Ich weiss nicht ob das erwünscht ist, aber wer will kann ja mal in meine Signatur schauen :)
Wenn es nicht erwünscht ist, bescheid sagen, dann lösche ich das wieder raus.

Gruß
tbat
 

bluefirex

Rhode Island Greening
Registriert
13.10.10
Beiträge
482
Ich hatte schon länger den Gedanken, mir endlich mal ObjC anzueignen, um auch für iOS entwickeln zu können. Dank Swift hat sich objC jetzt für mich erledigt (ich mag C nicht besonders) :)

Hab direkt angefangen mit Swift und kann so viel sagen: Syntax ist JavaScript-like, Prinzip ist Java-like (ausnahme: Namespaces != Packages und kein Zwangs-OOP) mit einigen Sahnehäubchen von Apple obendrauf. Mir gefällt Swift richtig gut.

Und: ObjC ist WESENTLICH schwieriger als Swift aus diesen Gründen:
  • Man muss sich selbst um die Speicherverwaltung kümmern, wenn kein ARC verwendet wird.
  • Jede Klasse hat einen Header, der das Interface vorgibt.
  • Die unglaublich hässliche Syntax.
Und neben der Programmiersprache muss man ja mit Xcode auch noch umgehen können - das lernt man auch nicht in 2 Tagen. Swift nimmt einem vorallem solche Dinge ab:

Code:
if (variable != nil) {
    [variable doSomething];
}

Das wird zu:

Code:
variable!.doSomething()

Ich kann Apple zu Swift nur loben!
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
Und: ObjC ist WESENTLICH schwieriger als Swift aus diesen Gründen:
  • Man muss sich selbst um die Speicherverwaltung kümmern, wenn kein ARC verwendet wird.
Das müsstest du in Swift genauso, wenn es da kein ARC gäbe. Swift benutzt wie Objective-C Reference Counting für die Speicherverwaltung.
  • Jede Klasse hat einen Header, der das Interface vorgibt.
Oh, ja. Das macht die Sache extrem kompliziert.
  • Die unglaublich hässliche Syntax.
Dieses Totschlagargument darf natürlich nicht fehlen.

Und neben der Programmiersprache muss man ja mit Xcode auch noch umgehen können - das lernt man auch nicht in 2 Tagen. Swift nimmt einem vorallem solche Dinge ab:

Code:
if (variable != nil) {
    [variable doSomething];
}

Das wird zu:

Code:
variable!.doSomething()
Der Umgang mit Xcode ist von der Programmiersprache unabhängig. Dieses Beispiel zeigt, dass du von Objective-C keinen Plan hast, denn in Objective-C schreibt man dafür einfach nur:
Code:
[variable doSomthing];
Und das Swift schnell sein soll, muss es auch erst mal beweisen. Das hier sieht noch nicht so pralle aus.
 

bluefirex

Rhode Island Greening
Registriert
13.10.10
Beiträge
482

HiPhish

Bismarckapfel
Registriert
06.04.10
Beiträge
77
Swift nimmt einem vorallem solche Dinge ab:

Code:
if (variable != nil) {
    [variable doSomething];
}

Das wird zu:

Code:
variable!.doSomething()

Ich kann Apple zu Swift nur loben!
Du hast entweder das Buch nicht richtig gelesen oder du verstehst das Prinzip nicht. Das Ausrufezeichen zwingt das Programm die Variable zu entpacken und das wird in Swift ebenso zum Absturz führen wie in Objective-C. Den Test musst du in beiden Sprachen machen wenn du es so tust. In Swift müsstest du auch schreiben
Code:
if variable {
    variable!.doSomething()
}
Das steht unter "If Statement and Forced Unwrapping" im Buch. Swift kann nicht auf magische Weise mit einem nil etwas sinnvolles anfangen, die Sprache schützt dich nicht vor solchen Fehlern. Es gibt noch das "optional chaining", aber auch das kann nur ein eKette von if-Überprüfungen zusammenfassen, nicht ersetzen.

Zu deinen übrigen Punkten:
- Objective-C hat auch ARC, dort wurde es zuerst eingeführt
- Objective-C kann man ohne XCode verwenden, du kannst auch in einem normalen Text Editor deinen Coe schreiben und dann Clang per Terminal aufrufen. Du kannst Objective-C auch auf anderen Betriebssystemen verwenden.
- Ja, man braucht Header Dateien, aber wo ist das Problem? Ich finde Header Dateien sog ar ganz praktisch, dort kann dann die ganze Dokumentation geschrieben werden und jemand der wissen will *was passiert* wird nicht durch das *wie abgelenkt* (und umgekehrt)
- Syntax kann man lernen, mit Sprachfeatures muss man leben. Wie gut Swift wirklich ist wird sich nicht anhand der Syntax entscheiden sondern anhand der Performance. Die Sprache ist immer noch in der Beta, wir müssen also noch abwarten.
 

HiPhish

Bismarckapfel
Registriert
06.04.10
Beiträge
77
Nachtrag zu Optionals: um zu verstehen wie die optionalen Variablen funktionieren muss man daran denken dass die Schreibweise mit dem Fragezeichen nur syntaktischer Zucker ist, also eine künstlich vereinfachte Schreibweise für etwas komplizierteres. In den WWDC Videos zu Swift wurde es genau erklärt: ein optionaler Typ ist in Wirklichkeit ein Struct dieser Form:
Code:
struct Optional<T> {
    bool isNil
    T value
}
Wenn man nun das Ausrufezeichen schreibt wird direkt auf den Wert von `value` zugegriffen ohne Rücksicht auf `isNil`, was zu einem Fehler führt falls `value` noch keinen Wert hat. Das Ausrufezeichen ist also syntaktischer Zucker für
Code:
var myVar: SomeType? // Zucker für `myVar: Optional<SomeType>`
myVar.value.doSomething() // äquivalent zu myVar!.doSomething
 
Zuletzt bearbeitet:

Houseknecht

Lambertine
Registriert
11.05.12
Beiträge
697
Heilige Scheisse, ich versteh nur Bahnhof, da ist mein Hochgebirgs-Alt-Inka ja besser


:D:eek::rolleyes:

Von meinem iPhone gsended mit derer Äbb von Abfldog

Äbbl - Denk annerschd