programmierBar

Cool, danke! - na, dann ist ja die Abend-Lektüre in nächster Zeit gesichert ;) Ich muss mich da dann erst mal durchschmökern, bevor ich auf das Thema zurückkomme, könnte ein bisschen dauern - man liest sich!
 
mh, so lange hat es dann wohl doch nicht gedauert, hab ja auch grad "vorlesungsfreie zeit" *g*:

Ich weiß, dass der Post riesig ist und wahrscheinlich wenige Lust haben, ihn zu lesen... aber ich würde einfach gern Programmieren lernen und da ist "Fragen" nun mal die beste Medizin, also frag ich - in der hoffnung, dass es ein paar nette Leute mit genug Zeit gibt... hat bisher in macuser.de ganz gut geklappt =) danke also an alle, die die Geduld haben und "Rede und Antwort" stehen... :clap:

Ich hätte mal bzgl. einem Projekt einige Fragen. Eigentlich waren es mal Überlegungen für ein Webprojekt (für 'ne Portfolio-Seite), also nicht wundern, dass manche Kompositions-Beziehungen etwas eigentümlich erscheinen:

Mein "Klassendiagram" sieht so aus (Verbesserungsvorschläge sind willkommen):
klassen.png

Link auf Bild


Stören tut mich daran erst mal die relativ sinnlose Klasse "Arbeitsschritt", die ich allerdings erst mal da lasse, weil sie einfach der Logik nach dahin gehört. Angeblich (laut FH-Professor) sollte man n:m-Beziehungen wie die zwischen Programm und Datei vermeiden - wobei mir jetzt spontan keine Alternative mehr einfällt (ist schon späät *gähn*).

1. Frage: Nehmen wir mal an, ich nehme noch eine Klasse ProjektView mit auf, die dann sinnvollerweise wohl 'ne 1:1 Beziehung zu Projekt bekommt. Die ProjektView soll mir z.B. im ersten Schritt die letzte (aktuellste) Datei des aktuellsten Arbeitsschrittes anzeigen. Frage geht hauptsächlich an _ebm_: Das ProjektView bekommt ja nur ein Projekt und den Befehl, das beschriebene Bild anzuzeigen. Wie machst du das ohne getter-Methoden? (sorry, dass ich 2 schritte zurück gehe, aber mir fällt gerade keine Alternative zu gettern ein, was mich ein bisschen nervt).

Datenbank-Modellierung
Wenn ich nun auf "unser" aktuelles Thema zurückkomme, auf Datenbanken, hätte ich nach den gegebenen Stichwörtern grundsätzlich zwei Ansätze:

1. RDBMS und 2. Key-Value-Stores
(Big Tables lass ich weg, weil ich nicht weiß, wie man das modelliert und es bei diesem Beispiel eh mit Kanonen auf Spatzen geschossen wäre - da gehts ja um mehr als Terabyte).

Mein Entwurf für RDBMS sähe ungefähr so aus:
tabellen.png

(* Primary-Keys sind mit Sternchen versehen)
(Link auf BIld)

Key-Value-Stores sind (soweit ich das verstanden habe) mit XML-Dateien vergleichbar, demnach sähe mein Entwurf entsprechend so aus:
documentbased.png

Link auf Bild

Welcher Entwurf ist jetzt besser? Mhh... in Key-value-Stores habe ich redundante Daten (=schlecht), außerdem ist es unflexibler - wenn ich die Arbeitsschritte doch noch entferne, müsste ich im KVStore die komplette DB neu machen, in RDBMS nur ne Beziehungs-Tabelle.

Würde mich jetzt darauf bringen, dass RDBMS in diesem Fall besser ist. Sieht das jmd. anders?
 

Anhänge

  • documentbased.png
    documentbased.png
    42,2 KB · Aufrufe: 167
  • tabellen.png
    tabellen.png
    34,8 KB · Aufrufe: 161
  • klassen.png
    klassen.png
    17,1 KB · Aufrufe: 162
Zuletzt bearbeitet:
Hm, irgendwie scheint die neue Forensoftware noch ihre Probleme zu haben, deine Bildchen sind nicht da.


Ich hätte mal bzgl. einem Projekt einige Fragen. Eigentlich waren es mal Überlegungen für ein Webprojekt (für 'ne Portfolio-Seite), also nicht wundern, dass manche Kompositions-Beziehungen etwas eigentümlich erscheinen:

Mein "Klassendiagram" sieht so aus (Verbesserungsvorschläge sind willkommen):
attachment.php


Stören tut mich daran erst mal die relativ sinnlose Klasse "Arbeitsschritt", die ich allerdings erst mal da lasse, weil sie einfach der Logik nach dahin gehört. Angeblich (laut FH-Professor) sollte man n:m-Beziehungen wie die zwischen Programm und Datei vermeiden - wobei mir jetzt spontan keine Alternative mehr einfällt (ist schon späät *gähn*).

n:m ist in der Tat ungünstig. Wenn die Bilder da sind, kann ich dir vielleicht helfen.

1. Frage: Nehmen wir mal an, ich nehme noch eine Klasse ProjektView mit auf, die dann sinnvollerweise wohl 'ne 1:1 Beziehung zu Projekt bekommt. Die ProjektView soll mir z.B. im ersten Schritt die letzte (aktuellste) Datei des aktuellsten Arbeitsschrittes anzeigen. Frage geht hauptsächlich an _ebm_: Das ProjektView bekommt ja nur ein Projekt und den Befehl, das beschriebene Bild anzuzeigen. Wie machst du das ohne getter-Methoden? (sorry, dass ich 2 schritte zurück gehe, aber mir fällt gerade keine Alternative zu gettern ein, was mich ein bisschen nervt).

Das kommt ganz darauf an. Wenn Projekt eine Entität ist, trägt es ja nur Daten und keine Funktionalität. Die Logik steckt also einzig und allein in ProjectView. Du gibst also ProjectView die Daten in Form des Entitäts-Objektes Project und läßt ProjectView damit arbeiten. Also alles in Butter ;)

Datenbank-Modellierung
Wenn ich nun auf "unser" aktuelles Thema zurückkomme, auf Datenbanken, hätte ich nach den gegebenen Stichwörtern grundsätzlich zwei Ansätze:

1. RDBMS und 2. Key-Value-Stores
(Big Tables lass ich weg, weil ich nicht weiß, wie man das modelliert und es bei diesem Beispiel eh mit Kanonen auf Spatzen geschossen wäre - da gehts ja um mehr als Terabyte).

Mein Entwurf für RDBMS sähe ungefähr so aus:
attachment.php

(* Primary-Keys sind mit Sternchen versehen)

Key-Value-Stores sind (soweit ich das verstanden habe) mit XML-Dateien vergleichbar, demnach sähe mein Entwurf entsprechend so aus:
attachment.php


Welcher Entwurf ist jetzt besser? Mhh... in Key-value-Stores habe ich redundante Daten (=schlecht), außerdem ist es unflexibler - wenn ich die Arbeitsschritte doch noch entferne, müsste ich im KVStore die komplette DB neu machen, in RDBMS nur ne Beziehungs-Tabelle.

Würde mich jetzt darauf bringen, dass RDBMS in diesem Fall besser ist. Sieht das jmd. anders?

Hmmm.. also K-V-Stores haben bei mir nur wenig mit XML zutun. Das sind einfach nur große Datenlager, in denen du unter einem bestimmten Key einen dir beliebigen Value ablegst. Die kannst du sehr schön einzeln referenzieren. Die Daten werden dann flat in den Datencontainer gelegt. Das können natürlich auch XML-Daten sein. Um sie schnell wiederzufinden, haben die KV-Stores Hash-Funktionen, die den Key auf die Adressen in ihren Containern mappen.

Schwierig wird es nur, wenn du zwischen einzelnen Datensätzen noch Relationen hast (geht mit KVS aber auch). Dann ist eine relationale Datenbank von Vorteil. Schau dir an, was Wiki und Google zu NoSQL sagen.

Big Table ist im endeffekt nur die Normalisierung einer relationalen DB auf eine einzige Tabelle. Du hast für einen Datensatz nicht mehr N zugriffe (auf die zum Datensatz gehörenen M Tabellen, M >= N), sondern nur noch einen Zugriff, um die gewünschten Zeilen aus der DB zu holen.

Was verstehst du eigentlich unter einer Beziehungstabelle? Wenn du Objektstrukturen auf RDBMS abbildest, sind komplexe Datentypen in den Membern der Objekte Foreign Keys, die auf andere Tabelleneinträge verweisen.


Gruß Carsten
 
Zuletzt bearbeitet:
Hm, irgendwie scheint die neue Forensoftware noch ihre Probleme zu haben, deine Bildchen sind nicht da.
Bei mir wurden sie angezeigt -.- Hab mal 2 Dinge versucht, um es zu fixen. Könnt ja mal Feedback geben, wieviele Bilder und wieviele Links auf die BIlder nun bei euch angezeigt werden...

n:m ist in der Tat ungünstig. Wenn die Bilder da sind, kann ich dir vielleicht helfen.
Ich hoffe, jetzt gehts...


Du gibst also ProjectView die Daten in Form des Entitäts-Objektes Project und läßt ProjectView damit arbeiten. Also alles in Butter ;)
Nun hat dieses Entitäts-Objekt ja einen Container mit "Arbeitschritten", von denen jeder wiederum einen Container mit "Dateien" hat. Wenn du also nichts an meinem Klassen-Diagram änderst, würde ich mich freuen, wenn du einen kleinen Pseudecode o.ä. skizzieren könntest, wie du ohne Getter auf die Datei 1 im Arbeitschritt 1 zugreifen willst!? *ratlos* Mein Pseudocode sähe vllt. so aus:
Code:
// wir befinden uns in ProjectView. ProjektView hat ein privates Attribute "private Projekt projekt"
Collection temp = projekt.getArbeitschritte().getDateien();
Datei datei1 = erstes Element von temp;
edit: Interessant wäre vllt. auch mal, wie man Entitäts-Objekt eigentlich konkret definiert? Ich verstehe darunter eine Klasse, die nur Attribute und getter-Methoden beinhaltet (da public-Attribute ja böse sind)!? [Warum beschleicht mich gerade das Gefühl, dass ich blutiger Anfänger mit 0 Ahnung bin...]


Hmmm.. also K-V-Stores haben bei mir nur wenig mit XML zutun.
Key-Value Store hatte ich in Wiki direkt nicht gefunden und nahm daher an, dass Dokumentenorientierte Datenbanken dasselbe seihen (die hab ich nämlich auf der suche nach Key-Value-Stores gefunden), wobei ich mittlerweile glaub, dass ich auch Dokumentenorientierte Datenbanken falsch verstanden hatte, weil die ja nicht auf einem, sondern mehreren Dokumenten basieren... Damit erscheinen sie für Dateiverwaltung (um die es im Beispiel ja irgendwie letztendlich geht) prinzipiell geeigneter, allerdings weiß ich immernoch nicht, wie das modell dazu aussähe...

Wenn ich es mittlerweile richtig verstehe, wären K-V-Stores sowas ähnliches wie NSDictionary (oder auch HashTable/HashMap in Java), die Dokumentorientierten Datenbanken dagegen sind sowas wie CFBundle (bzw. jar-Dateien)?

Beispiel: Das hier wäre beispielsweise eine dokumentbasierte Datenbank?
Code:
Projekte
|---Projekt 1
      |---info.xml
      |---Arbeitsschritte
              |---Arbeitsschritt 1
              |       |---Datei 1
              |---Arbeitsschritt 2
                      |---Datei 2

usw.

in info.xml stünden Projektinfos (Titel, beschreibung) und die korrekte Reihenfolge der Arbeitschritte. Die "Datenbank" wäre dann also die Funktionen, die mir z.B. Datei 2 ausgeben, wenn ich nach der aktuellsten Datei im Projekt 1 fragen, richtig?

Big Table ist im endeffekt nur die Normalisierung einer relationalen DB auf eine einzige Tabelle. Du hast für einen Datensatz nicht mehr N zugriffe (auf die zum Datensatz gehörenen M Tabellen, M >= N), sondern nur noch einen Zugriff, um die gewünschten Zeilen aus der DB zu holen.

Oje... wenn ich mir mein Beispiel mit den Tabellen anschaue (siehe Bild oben), frage ich mich spontan wie das gehen soll... aber da werden BigTables wohl techniken für haben. kann ich mir bei gelegenheit mal anschauen.

Was verstehst du eigentlich unter einer Beziehungstabelle?
Im Tabellen-Bild (s.o.) die Tabellen mit der grauen "Titelleiste". Prinzipiell nichts anderes, was du auch sagstest (mit Foreign Keys). Das klassischere Beispiel wäre ein Shop System, das eine Tabelle mit Artikeln und eine mit Kunden hätte. Für die Rechnungen gibts dann z.B. eine Beziehungstabelle:

Tabelle "Rechnungen"
KundenID | ArtikelID | RechnungDatum | Preis

Wobei... mh... dann braucht man den Begriff "Beziehungstabelle" echt nicht, weil Beziehungstabellen nicht ausschließlich Foreign Keys beinhalten müssen.

Gruß Micha
 
Zuletzt bearbeitet:
Nun hat dieses Entitäts-Objekt ja einen Container mit "Arbeitschritten", von denen jeder wiederum einen Container mit "Dateien" hat. Wenn du also nichts an meinem Klassen-Diagram änderst, würde ich mich freuen, wenn du einen kleinen Pseudecode o.ä. skizzieren könntest, wie du ohne Getter auf die Datei 1 im Arbeitschritt 1 zugreifen willst!? *ratlos* Mein Pseudocode sähe vllt. so aus:
Code:
// wir befinden uns in ProjectView. ProjektView hat ein privates Attribute "private Projekt projekt"
Collection temp = projekt.getArbeitschritte().getDateien();
Datei datei1 = erstes Element von temp;
edit: Interessant wäre vllt. auch mal, wie man Entitäts-Objekt eigentlich konkret definiert? Ich verstehe darunter eine Klasse, die nur Attribute und getter-Methoden beinhaltet (da public-Attribute ja böse sind)!? [Warum beschleicht mich gerade das Gefühl, dass ich blutiger Anfänger mit 0 Ahnung bin...]

Nun, dann die gleiche Gegenfrage wie schon vorher im Thread. Warum willst du von außen auf die Dateien in dem Projekt zugreifen, wo sie doch zu dem Projekt gehören und nicht zu irgendetwas von außen?


Key-Value Store hatte ich in Wiki direkt nicht gefunden und nahm daher an, dass Dokumentenorientierte Datenbanken dasselbe seihen (die hab ich nämlich auf der suche nach Key-Value-Stores gefunden), wobei ich mittlerweile glaub, dass ich auch Dokumentenorientierte Datenbanken falsch verstanden hatte, weil die ja nicht auf einem, sondern mehreren Dokumenten basieren... Damit erscheinen sie für Dateiverwaltung (um die es im Beispiel ja irgendwie letztendlich geht) prinzipiell geeigneter, allerdings weiß ich immernoch nicht, wie das modell dazu aussähe...

Was meinst du mit das Modell? Gibt es denn GENAU ein Modell um ein Problem darzustellen? Dokumentenbasierte DBs sind dazu da, um strukturierte gleichartige Datensätze zu gruppieren, wobei diese Datensätze nicht zwingend alle Felder enthalten. Das ist auch schon alles.

Wenn ich es mittlerweile richtig verstehe, wären K-V-Stores sowas ähnliches wie NSDictionary (oder auch HashTable/HashMap in Java), die Dokumentorientierten Datenbanken dagegen sind sowas wie CFBundle (bzw. jar-Dateien)?

Ja so in etwa.

Beispiel: Das hier wäre beispielsweise eine dokumentbasierte Datenbank?
Code:
Projekte
|---Projekt 1
      |---info.xml
      |---Arbeitsschritte
              |---Arbeitsschritt 1
              |       |---Datei 1
              |---Arbeitsschritt 2
                      |---Datei 2

usw.

in info.xml stünden Projektinfos (Titel, beschreibung) und die korrekte Reihenfolge der Arbeitschritte. Die "Datenbank" wäre dann also die Funktionen, die mir z.B. Datei 2 ausgeben, wenn ich nach der aktuellsten Datei im Projekt 1 fragen, richtig?

Hm, eher nicht. Du hast hier eine Hirarchie, eine Relation drin. Dokumentenbasierte DBs machen IMHO dazu keine Aussage. Es werden Dokumente mit strukturiertem Inhalt abgelegt.

Im Tabellen-Bild (s.o.) die Tabellen mit der grauen "Titelleiste". Prinzipiell nichts anderes, was du auch sagstest (mit Foreign Keys). Das klassischere Beispiel wäre ein Shop System, das eine Tabelle mit Artikeln und eine mit Kunden hätte. Für die Rechnungen gibts dann z.B. eine Beziehungstabelle:

Tabelle "Rechnungen"
KundenID | ArtikelID | RechnungDatum | Preis

Wobei... mh... dann braucht man den Begriff "Beziehungstabelle" echt nicht, weil Beziehungstabellen nicht ausschließlich Foreign Keys beinhalten müssen.

Genau. Bei mir wären die Foreign Keys mit in den jeweiligen Tabellen. Deine MxN Beziehung würde ich wahrscheinlich, so du darin nicht suchen möchtest, als Listen in dem Feld ablegen. Wenn du suchen möchtest, wird das kniffeliger und vor allem teurer.

Zum Schluss noch: vielleicht ist es dir aufgefallen, dass nicht jeder Datenbank-Typ für jede Anwendung geeignet ist. Dein Modell schreit förmlich nach einem RDBMS. Du hast Relationen zwischen deinen Entitäten. K-V-Store wäre noch möglich, wenn du die Relationen in deinem Code auflöst. Big Table bedeutet schlussendlich nichts anderes, dass alle Daten zu einem Datensatz aus den verschiedensten Tabellen der RDB
in eine Tabelle fließen. Das kostet zwar ggf viel Speicher, und kann für Redundanzen sorgen, wenn es die aber nicht gibt, beschleunigt es die Applikation massiv, da für einen Datensatz ja immer nur ein Zugriff auf die DB erfolgt. Na mach dir mal ruhig ein paar Gedanken. Schlussendlich wirst du das alles aber erst richtig in den VL lernen. Greif nicht zu viel vor!
 
Zuletzt bearbeitet:
@Kümmelkorn: Eigentlich wurde deine Frage schon richtig beantwortet, trotzdem möchte ich noch etwas dazu schreiben...

Datenbanken, egal in welcher Form Daten gespeichert werden, sind immer eine Sache für sich. Der beste Weg, alles zu erfassen, ist es, sich einfach eine Datenbank aufzubauen und damit zu "arbeiten". Ich habe Datenbanken lange Zeit gehasst, bis ich richtig für ein größeres Projekt damit arbeiten musste. Und erst da hat es wirklich "klick" gemacht. Erst da ist mir klar geworden, was man alles damit machen kann, was man besser lassen sollte und wo die Grenzen zwischen den einzelnen Schichten des n-Tier-Modells sind (wobei das wiederum nochmal eine Sache für sich ist, weil die Grenzen je nach Implementierung sehr schwimmend sein können). Dafür reicht es nicht einen Kurs "Datenbanken" zu belegen und zu bestehen. Man lernt zwar ein "Select"-Statement, ein "Join", eine "Stored Procedure" oder was auch immer zu erstellen, aber die richtigen Zusammenhänge ergeben sich wirklich erst, wenn man richtig mit Datenbanken arbeitet.
 
Wie heißt denn diese neue Programmiersprache, die beim letzten Apple Event von Apple so gelobt wurde?

Will anfangen mir eine App zu programmieren, will dazu gleich die richtige/beste/tollste, Sprache. Gut das ist jetzt etwas hoch gegriffen, letztendlich will ich schlicht weg nicht anfangen 'Sprache X' lernen und programmieren um dann fest zu stellen 'Sprache Y' ist schon immer viel besser, das weis doch jeder, außer mir.

Was könnt ihr mir empfehlen und wo habt ihr die Basics gelernt, könnt ihr das weiter empfehlen?
 
will ich schlicht weg nicht anfangen 'Sprache X' lernen und programmieren um dann fest zu stellen 'Sprache Y' ist schon immer viel besser, das weis doch jeder, außer mir.
Es gibt kein "besser" bei Programmiersprachen. Jede Sprache hat einen bestimmten Zweck für den sie am besten geeignet ist. Die eine für X, die andere für Y. Du wirst bei Programmieren ohnehin mehrere Sprachen lernen. Für eine App auf Mac / iOS Basis wäre Apples Swift derzeit angesagt. Plattformübergreifend eher Java o.ä., für Windows dann wieder etwas anderes
 
  • Gefällt mir
Reaktionen: below
Hatte ich das richtig verstanden, das man, wenn man die App in Apple Swift programmiert, sie dann sowohl auf iOS als auch auf OS X (macOS) läuft? Natürlich, muss man schon das Interface anpassen, müsste man im Prinzip aber nicht, oder wie ist das?

Was war denn die Idee hinter Apple Swift?
 
Naja, das ist etwas kurz gegriffen. Im Prinzip schon, ganz so einfach ist es dann aber doch nicht, da sich die SDKs für die Oberflächen von iOS und macOS doch erheblich unterscheiden.

Die Idee hinter Swift ist: Chris Lattner hat gedroht zu kündigen, wenn er Swift nicht machen darf
 
  • Gefällt mir
Reaktionen: Olivetti
Die Idee hinter Swift ist: Chris Lattner hat gedroht zu kündigen, wenn er Swift nicht machen darf

Wie jetzt? o.o

(War das die Dame, die diese neue Programmierapp für Kinder vorgestellt hatte?)

Okay, und warum wollte sie unbedingt Swift?
 
Nein, das war jetzt ein kleiner Scherz für Insider. Lattner ist der "Director Developer Tools" bei Apple, und hat Swift erfunden.

Warum Apple Swift will kann ich Dir nicht sagen. Da musst Du Apple schon selber fragen. Swift hat einige neue, schicke Features, ob aber alle ziele ("Einfach", "Sicher") damit erreicht werden wage ich im Detail zu bezweifeln.

Wie dem auch sei, klar ist: Das ist die Sprache, mit der in Zukunft auf der Apple Platform entwickelt wird.
 
Hatte ich das richtig verstanden, das man, wenn man die App in Apple Swift programmiert, sie dann sowohl auf iOS als auch auf OS X (macOS) läuft? Natürlich, muss man schon das Interface anpassen, müsste man im Prinzip aber nicht, oder wie ist das?
Du musst sogar ziemlich viel anpassen, je nach dem, was die App kann.
 
  • Gefällt mir
Reaktionen: below
Sprachen sind Werkzeuge und für jede Arbeit gibt es ein spezielles Werkzeug. Du kannst Kreutzschlitzschrauben auch mit einem Schlitzschraubendreher reinbringen, im Notfall mit Gewalt sogar mit einem Hammer, aber beide sind nicht das optimale Werkzeug.
Wenn deine "Arbeit" das Erstellen von Programmen für OSX und iOS ist, dann wäre Swift ein ordentliches Werkzeug, genauso wie Objective-C. Mit letzterem ist etwas mehr möglich, etwas "tiefer" sozusagen, dürfte auch etwas schneller sein, aber ist dafür mit einem schwierigeren Einstieg verbunden.
 
Wenn man die Apple Doku liest kommt man irgendwann zu dem Schluss, dass sie schon so weit sind, dass sie den Compiler auf Swift optimieren und bei Obj-C mal die ein oder andere Optimierung "weglassen" damit die Performancegraphen wieder passen
 
Mit letzterem ist etwas mehr möglich, etwas "tiefer" sozusagen, dürfte auch etwas schneller sein, aber ist dafür mit einem schwierigeren Einstieg verbunden.
Meinst Du jetzt Swift oder Objective-C?

Ich halte die Aussage ja bei beiden für nicht so richtig. Swift mag am Anfang leichter lernbar sein, es mir aber leicht, Swift-Fans immer noch regelmäßig mit Swift Code vollkommen zu verwirren — denn eine Multi-Paradigmen Sprache ist im Detail dann doch sehr viel komplexer als das einfach objektorientierte Objective-C. Und, ja, mit Swift auf's reine Blech zu kommen ist nicht so einfach, dafür muss dann wieder (Objective-)C ran — ich bezweifele allerdings, dass viele Leute das brauchen
 
Ich meinte damit Objective-C ("letzterem").
Okay in dem Falle meinte ich im Prinzip einfach, dass man mit Swift vermutlich schneller zu farbig/bunten Erfolgen kommt. Für viele Leute ist das relevant, verlieren sonst die Lust.
Und Objective-C... nunja, es "enthält" C, daher sind hier die Möglichkeiten bezüglich schwer verständlichem und verwirrenden Code schon auch recht weitläufig. ;D
 
Swift soll vor allem für eins sorgen: Mehr Entwickler für die Apple Plattformen. Und das wird auch durchgezogen.
Allein die fehlenden Pointer in Swift wird schon für 50% mehr Entwickler sorgen, die sonst abgesprungen wären.
 
Okay, dann werde ich mir mal Apple Swift ansehen.

Wie/Wo lernt man das am besten?
Apple macht ja als in der Stores solche Computerkurse für alles mögliche, auch für Swift?
 
Zurück
Oben Unten