C++ GUI Programmierung unter OS X

Diskutiere mit über: C++ GUI Programmierung unter OS X im Mac OS X Entwickler, Programmierer Forum

  1. maic

    maic Thread Starter MacUser Mitglied

    Beiträge:
    216
    Zustimmungen:
    3
    Registriert seit:
    29.12.2005
    Hallo Zusammen,
    ich muss für die Hochschule ein Schachspiel programmieren....
    Welche Grafische Bibliothek ist unter OS X zu empfehlen?
    Also was benutzt Ihr so, Cocoa, Carbon?

    Hat jmd Erfahrungen? ... Was ist "leichter"?
    Hat auch jmd nen vergleich zwischen Windows GUI Programmierung
    und auf dem Mac? Also von der Schwierigkeit her...


    Viele Grüße
    Maic
     
  2. below

    below MacUser Mitglied

    Beiträge:
    13.882
    Zustimmungen:
    1.086
    Registriert seit:
    15.03.2004
    Wenn ich es mir aussuchen kann, nehme ich Cocoa. Das ist aber nicht für C++, sondern Objective-C

    Alex
     
  3. maic

    maic Thread Starter MacUser Mitglied

    Beiträge:
    216
    Zustimmungen:
    3
    Registriert seit:
    29.12.2005
    Hmm weiß jmd wie es mit QT unter OS X aussieht?
    Also gibt es irgendwelche Einschränkungen?

    Grüße Maic
     
  4. sir.hacks.alot

    sir.hacks.alot MacUser Mitglied

    Beiträge:
    2.406
    Zustimmungen:
    113
    Registriert seit:
    10.03.2005
    Eigentlich nicht. Ich verwende es immer wenn ich Sachen für die Uni machen muss, es hat eigentlich nur Vorteile, da man ja schön portabel arbeiten kann.
     
  5. CocaColaZero

    CocaColaZero unregistriert

    Beiträge:
    365
    Zustimmungen:
    7
    Registriert seit:
    07.09.2006
    Guten Tag!

    Zwingend für / unter OS-X?

    Cocoa! (Cocoa!) Cocoa! Carbon definitiv nicht. Wenn Du alte Macs mit dem Spiel versorgen willst (kleiner als OS-X, dann Carbon).

    :rolleyes: Cocoa!

    :zwinker: Cocoa!

    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. :no:

    Grüße, CocaColaZero
     
    Zuletzt bearbeitet: 20.11.2006
  6. Magicq99

    Magicq99 MacUser Mitglied

    Beiträge:
    6.875
    Zustimmungen:
    273
    Registriert seit:
    18.05.2003
    Lässt sich denn Cocoa nicht auch über Objective-C++ programmieren? Das könnte man ja dann vielleicht mit C++ kombinieren, so wie man ja auch reinen C Code in Objective-C verwenden kann.
     
  7. CocaColaZero

    CocaColaZero unregistriert

    Beiträge:
    365
    Zustimmungen:
    7
    Registriert seit:
    07.09.2006
    Das ist Schwachsinn. Wie willst Du C++ mit Objective-C kombinieren, wie man C mit C++ kombiniert? C++ und Objective-C sind schon Erweiterungen zu C, die C beide um die objektorientierte Programmierung aufwerten. Objective-C und C++ entwickelten sich nur in zwei getrennte Richtungen beim Ansatz, wie man C erweitern soll. Apple (bzw. Next) entschied sich für Objective-C, weil sie es als das "bessere objektorientierte C" erachtet haben. Die zusätze "Objective" und "++" kennzeichen doch gerade diese objektorienterte Erweiterung.
     
  8. jpv

    jpv MacUser Mitglied

    Beiträge:
    159
    Zustimmungen:
    10
    Registriert seit:
    09.06.2006
    Hallo, ich wollte nur auf den Eingangssatz bei Wikipedia zu Objective C aufmerksam machen ... dort wird auch von Objective-C++ gesprochen als verquickung beider Ansätze. Auf diesem Wege müßte es doch eigentlich möglich sein, Cocoa mit C++-Syntax anzusprechen, oder?
    Leider sind meine C++-Zeiten schon länger vorbei, da ich im Beruf hauptsächlich Java benötige ...

    P.S.: Danke an CocaColaZero für die umfangreiche Beschreibung! Die finde ich sehr interessant :)
     
  9. Magicq99

    Magicq99 MacUser Mitglied

    Beiträge:
    6.875
    Zustimmungen:
    273
    Registriert seit:
    18.05.2003
    Als ich bin gewiss kein Experte im Programmieren, aber es gibt doch Objective-C++:
    http://developer.apple.com/releasenotes/Cocoa/Objective-C++.html
     
  10. CocaColaZero

    CocaColaZero unregistriert

    Beiträge:
    365
    Zustimmungen:
    7
    Registriert seit:
    07.09.2006
    Ja, natürlich geht das grundsätzlich erst einmal. Aber auf der von Dir verlinkten Seite werden als Grund dafür auch Templates und Namensräume angegeben, Sprachfeatures die sowohl C als auch Objective-C vermissen lassen.

    Wenn man sich das im Detail anschaut, dann steckt hinter X-Code die GNU-Compiler Collection und ein paar Cocoa Bibliotheken. Natürlich kann man so ganz einfach C++ Code in ein Programm einbauen, sofern der GCC ihn versteht. Aber sinnvolle Einsatzmöglichkeiten lassen sich an fünf Fingern abzählen.

    Es würde zum Beispiel keinen Sinn machen Klassen in C++ zu schreiben und dann in einem Cocoa Programm diese zu nutzen, da Objective-C von sich aus die Möglichkeit der Implementierung von Klassen bietet, welche dann auch alle von NSObject abgeleitet sind und so Speichermanagement und viele andere Methoden erleichtern.

    Zusatz: Natürlich macht die Nutzung von C++ auch dann Sinn, wenn ich bereits fertige Bibliotheken in einem Cocoa Programm benutzen möchte, so dass ich diese nicht erst neu schreiben muss, klar. Aber wenn ich ein Programm von Grund auf neu schreibe und das mal reinzufällig nichts mit denen gemeinsam hat, die ich bisher entwickelt habe (eine Textverarbeitung wird keine mp4 Bibliothek benutzen), dann gibt es erstmal keine Gründe das ganze noch weiter zu verkomplizieren und C, C++ als auch Objective-C zu vermischen. Das verkompliziert die Angelegenheit nur unnötig. Man beachte dazu bitte die unterschiedlichen Wurzeln, auf die ich noch einmal mit Nachdruck hinweise:

    Quelle: http://de.wikipedia.org/wiki/Objective-C

    Quelle: Buch Objective-C und Cocoa (von Klaus M. Rodewig) Kapitel 3 (C und Objective-C), Seite 73, ISBN: 3-908497-20-5 / Smart Books Verlag
     
    Zuletzt bearbeitet: 20.11.2006
Die Seite wird geladen...
Ähnliche Themen - C++ GUI Programmierung Forum Datum
C++ einfache GUI erstellen Mac OS X Entwickler, Programmierer 22.08.2011
GUI mit C++ in Xcode Mac OS X Entwickler, Programmierer 03.03.2009
Suche dt. C++ GUI Tutorial xCode Mac OS X Entwickler, Programmierer 28.02.2007
GUI für C Programm, Carbon od. Cocoa? Mac OS X Entwickler, Programmierer 07.09.2006
c++ plattformübergreifende GUI Programmierung Mac OS X Entwickler, Programmierer 17.06.2004

Diese Seite empfehlen

Benutzerdefinierte Suche