Guten Tag!
ich muss für die Hochschule ein Schachspiel programmieren....
Zwingend für / unter OS-X?
Welche Grafische Bibliothek ist unter OS X zu empfehlen?
Cocoa! (Cocoa!) Cocoa! Carbon definitiv nicht. Wenn Du alte Macs mit dem Spiel versorgen willst (kleiner als OS-X, dann Carbon).
Also was benutzt Ihr so, Cocoa, Carbon?
Cocoa!
Hat jmd Erfahrungen? ... Was ist "leichter"?
Cocoa!
Hat auch jmd nen vergleich zwischen Windows GUI Programmierung
und auf dem Mac? Also von der Schwierigkeit her...
Jein. Kommt jetzt auf Deine Skills an. Bist Du eher Peter Professional oder Norbert Newbie? Also generell mag ich den Begriff "Mac Programmierung" und "Windows Programmierung" nicht, denn was bedeutet das eigentlich? Das bedeutet ja, das ich etwas differenziere, nur was eigentlich? Das ist die Frage. Ein Programm das in sauberem ANSI-C geschrieben ist, das kann sowohl unter OS-X, als auch Windows und sogar Linux lauffähig kompiliert werden ohne jeglichen Portierungsaufwand.
Jetzt ist es aber leider so, das C++ noch lange nicht C++ bzw. C noch lange kein C ist. Dies tritt dann ein, wenn ich externe Bibliotheken verwende, wie Cocoa unter OS-X oder MFC unter Windows. Erst hier beginnt eine Plattformabhängigkeit.
Generell würde ich sagen: Programmierst Du unter Windows, dann benutzt Du etwas aktuelles, Visual Studio zum Beispiel mit .NET 3.0 und C#.
Unter OS-X rate ich Dir dann wiederrum klar zu X-Code, Objective-C und Cocoa.
Wo ist jetzt der Unterschied? Nunja, ich würde sagen, man merkt eindeutig die unterschiedlichen Wurzeln! Zuerst einmal zu der IDE:
X-Code hat sehr viel von Eclipse (oder andersrum), es ist getrennt in den Code-Editor, der bis auf das MDI wirklich stark an Eclipse oder Visual Studio erinnert, und in den Interface Builder, welcher für die Gestaltung der grafischen Oberflächen genutzt wird.
Der integrierte Interface Builder im Visual Studio unterscheidet sich von der Bedienung nicht maßgeblich von dem in OS-X. Aber die Sprache die dahinter steckt tut das gewaltig, finde ich. Man merkt eindeutig das Objective-C "nur" ein C mit objektorientierter Erweiterung ist, die sehr stark an Smalltalk angelehnt ist.
Wenn ich mir die Syntax von Objective-C ansehe, dann finde ich sie sehr "konfus". Ich weiß das jetzt gleich wieder Fanboys rausgekrochen kommen und mich dafür zur Sau machen, aber ich habe mehrjährige Erfahrung und als ich mit Objective-C anfing war es echt einfach nur konfus. Sobald es nämlich um die objektorientierte Programmierung geht ist die Syntax weit ab von allem C, C++ und Java Code. Natürlich Gewöhnungssache und natürlich entdeckt man dann noch Finessen der Syntax, die in anderen Sprachen nicht vorhanden sind oder schlechter umgesetzt. Aber ehrlich gesagt hätte ich diese nicht auf Anhieb verstanden oder als sinnvoll erachtet, wenn ich nicht schon viele andere Sprachen gelernt und aktiv benutzt hätte. (Konkret sprach ich eben von Dingen wie zum Beispiel Kategorien und Protokollen - Sprachfeatures.)
Auch die Arbeit mit dem Interface Builder von OS-X ist ein "wenig seltsam". Man bestimmt den Datenfluss der Objekte per Mausklick und derlei Sachen. Das ist zwar, einmal verstanden, alles nicht weiter schwer und vor allen Dingen - wie allso oft unter Mac OS-X - logisch, aber die Gewöhnungszeit ist hoch, da man das so von keinem anderen Interface Builder / GUI-Designer her gewohnt ist.
Zudem kommt bei Objective-C noch das Speichermanagement hinzu, das gravierend wird, wenn man GUI-Elemente wie ein NSOutlineView (Baumansicht) benutzt. Kurz und knapp ist Mac Programmierung (wenn man von einer anderen Sprache kommt) sehr "neu", spaßig und logisch, erfordert aber einiges an Lernbereitschaft, Umdenken und Aufwand und ist sicherlich (in meinen Augen ganz neutral betrachtet) alles andere als leicht, nicht zuletzt weil Literatur teuer und spärlicher als bei anderen Sprachen gesäht ist.
Studenten würde ich entweder (bei vorhandensein eines Visual Studio) zu C# raten, oder aber zu Java. Diese beiden Sprachen sind syntaktisch sehr leicht im direkten Vergleich zu purem C(++) oder Objective-C und eignen sich auch von den in der Sprache implementierten Konzepten sehr gut zum Erlernen der objektorientierten Programmierung.
Also C# oder Java. Für letztere würde ich dann Eclipse oder Netbeans als IDE und das Buch
Java ist auch eine Insel empfehlen, kostenloser Download. Für C# eignet sich prima
dieses Buch, ebenfalls kostenlos. Für C# nimmt man dann halt als IDE Visual Studio (Express Version ist kostenlos) oder Sharp Develop.
Natürlich wird jemand all das dementieren was ich hier so sage, aber das ist in der Natur der Mac User alles zu verfluchen und zu verpönen was nicht pro Mac ist. Generell rate ich Dir aber nicht dazu mit Objective-C als Programmieranfänger zu starten.
Grüße, CocaColaZero