• 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

Was soll ich als 1. lernen?

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
Falls es Dir entgangen sein sollte, Objective-C 2.0 wird von GNU gcc bisher nicht unterstützt. GNU gcc ... unterstütz[t] nur einen veralteten Subset von Objective-C
Von Objective-C 2.0 habe ich aber gar nicht gesprochen. Und kläre mit bitte auf, an welcher Stelle GNU gcc nur ein Subset von Objective-C (1.0) unterstützt.

Auf zwei Plattformen ist es nicht verfügbar!
Lieber tjp, Du hast von Embedded Systems angefangen. Auf Cisco IOS sind weder ADA noch Objective-C verfügbar. Die Liste lässt sich sicherlich beliebig fortsetzen, wenn wir "über den Tellerrand" schauen und uns noch ein paar andere eher unbekannte Betriebssysteme ansehen.
Das ändert nichts an meiner Aussage: Per se ist Objective-C nicht mehr oder wenig platformunabhängig als andere Sprachen. Es ist natürlich -- wie jede andere Sprache auch -- für manche Aufgaben besser, und für andere schlechter geeignet.

Das war doch nicht Deine Frage!
Doch. "Aber mal konkret: Welche wichtigen Dinge lernt man mit C++, die man nicht mit Objective-C lernt?"
Deine Antwort war "Generische Programmierung, Meta-Programming". Da diese Dinge so wichtig sind würde ich gerne wissen, an welcher Uni das auf dem Informatik-Curriculum steht. An der RWTH Aachen nicht, aber das ist für Dich ja sicher nur eine drittklassige Uni.

Es wäre halt mal angebracht den Blick über den Tellerrand zu wagen und nicht in uralten Vorurteilen zu schwelgen.
Welche Vorurteile wären das genau? Im Kern ist für jede Programmiersprache, ob C++, ADA, Prolog, Modula-2, Lisp, Logo, Pilot, Oberon, Brainfuck oder Objective-C, die Platform erst einmal vollkommen irrelevant und zweitrangig. Selbst Logo kann ich ohne eine mechanische Schildkröte implementieren.

In der echten Welt fangen dann natürlich immer die Probleme an, so sind zum Beispiel in den C basierten Sprachen die Größe von Datentypen eher vage (welche Größe hat ein int?) und das Speicherlayout von Bitfeldern gar nicht definiert. Letzteres bereitet bei der Portierung extreme Schwierigkeiten.

Alex
 
Zuletzt bearbeitet:

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.059
Hallo Alex,
Deine Vorliebe für Cocoa in Ehren, aber …
Ich halte es für vollkommen sinnlos auf die einzelne Argumente zu antworten, denn warum geht es wirklich? Ein absoluter Neuling will programmieren lernen.

Ich finde es absolut unfair einen Anfänger zu verschaukeln und Dinge vorzugeben, die in Realität nicht einzuhalten sind. Wenn jemand unter MacOS X mit Objective-C Programme schreibt, so tut er das mit Cocoa. Darüber braucht man im Grunde kein Wort mehr zu verlieren, denn das sind die üblichen Rahmenbedinungen. Wenn man das iPhone SDK verwendet, kann man mit den iPhone typischen Einschränkungen Applikationen für das iPhone schreiben. Wenn man nun solche Applikationen auf eine andere Plattform portieren will, geht das effektiv nicht. Es gibt weder das iPhone SDK für andere Handys noch Cocoa für andere Computerplattformen. Das sind Fakten, die nicht zu negieren sind.

Das Argument die reine Sprache Objective-C sei portabel ist albern. Du weißt ganz genau auf Grund Deiner Berufserfahrung, daß man mit einem Compiler alleine kaum etwas anfangen kann. Die einzige Ausnahme sind bestimmte Embedded Anwendungsfälle, aber in so einem Umfeld wird meist konsequent auf dynamische Sprachelemente verzichtet. Somit ist Objective-C keine Wahl. In grauer Theorie kann man nun Software schreiben, die alles selbst macht und so auf einer anderen Plattform läuft. Nur wer macht das in Realität? Bis auf einige Nerds niemand - schon gar nicht Anfänger.

Wo liegt das Problem, daß man einem Anfänger sagt, daß er sich für MacOS X und iPhone only Programme entscheidet, wenn er sich für Objective-C entscheidet? Im Grunde gibt es da kein Problem, in den meisten Fällen ist das doch auch so gewollt. Nur ist das ehrlich.

Wozu diesen völlig überflüssigen Nebelkerzen? Ich hatte Dich persönlich für intelligenter und erfahrener gehalten.
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Es ist irgendwie kontraproduktiv, wenn Ihr Euch in 50% aller Developer-Threads Eure diametral entgegengesetzten Programmierphilosophien um die Ohren haut und teils persönlich werdet. :(
 
  • Like
Reaktionen: Jamsven

Jamsven

London Pepping
Registriert
21.11.07
Beiträge
2.046
tjp hat von daher Recht, dass objektiveC außerhalb der Apple Welt wenig Relevanz hat und von daher außerhalb der Mac Plattform für Programmieranfänger ungeeignet ist.
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
C++ ist eine Programmiersprache und GNUstep ein Framework. Wenn man hier einen sinnvollen Vergleich ziehen wollte, dann muß man schon die Sprachen bzw. Frameworks vergleichen. C++ hat eine Standard Library die Objective-C nicht kennt, und beim Vergleich z.B. von Qt und GNUstep sieht es nicht so schlecht für Qt aus. Es wäre halt mal angebracht den Blick über den Tellerrand zu wagen und nicht in uralten Vorurteilen zu schwelgen. Im Gegensatz zu Cocoa ist Qt Plattform unabhängig und auf den vorher aufgeführten Plattformen verfügbar. Es ist definitiv nicht das Mittel um die perfekte MacOS X Applikation zu schreiben, aber das sollte einem nicht dazu verführen Unsinn zu schreiben.

Ich darf dann doch darauf hinweisen, dass du von der Programmiersprache zum Framework gewechselt bist. Und noch einmal: Dass was du als Minus von GNUSTep gegenüber Cocoa begreifst, ist gleichzeitig ein Minus gegenüber den verfügbaren C++-Frameworks. Diese sind in dieser Dimension auf dem Stand von GNUStep, nicht von Cocoa. (Ich meine nicht die Anzahl der verfügbaren Views.)

Insofern kann ich so gut mit Objective-C und GNUStep plattformunabhängig programmieren, wie ich es mit C++ und Standardlibs kann. Qt muss dann gleich schon den Sprachstandard erweitern, um überhaupt zurechtzukommen. (So viel zur Standardisierungsdebatte.)

Dass es kein Framework für C++ gibt, welches die Vorteile von Cocoa gegenüber GNUStep anbietet, ist ein Problem von C++. In bC++ ließe sich das nämlich nicht vernünftig implementieren.

(Übrigens zum Tellerrand: Ich habe mein Geld mit C++-Programmierung verdient. Ich glaube nicht, dass das für dich in Bezug zu Objective-C gilt.)
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Falls es Dir entgangen sein sollte, Objective-C 2.0 wird von GNU gcc bisher nicht unterstützt. GNU gcc und GNUstep unterstützen nur einen veralteten Subset von Objective-C und Cocoa, und man tut niemanden einen Gefallen ständig Nebelkerzen zu werfen und krampfhaft das Gegenteil zu behaupten.
Meines Wissens ist nicht der Compiler das Problem – der Apple-gcc ist IIRC onehin OSS –, sondern das RTE.

Wie dem auch sei … Objective-C 2 bietet neu:

* Garbage Collection (die es für C++ im Standard nicht gibt)
* Einfachere Syntax für Accessoren (die es im C++-Standard nicht gibt)
* Fast-Enumeration-Syntax (die es im C++-Standard nicht gibt)

Es ist hier wieder so: Was du der GNU-Linie an Minus vorwirfst, ist auf C++ von vorne herein nicht verfügbar. Wenn du das also für so einen sagenhaften Nachteil von GNU* hältst, müsstest du es auch für so einen sagenhaften Nachteil von C++ halten, oder?
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Es handelt sich bei dem Schnippsel um eine schöne (!) Kombination aus Codekürze und Programmnutzen, aber nicht im Hinblick auf Ästhetik und Wartbarkeit. Mehr wollte ich nicht behaupten.
Dass du das Wort "schön" nicht in Bezug auf Ästhetik verwendest, konnte ich jetzt aber echt nicht ahnen.
 

michibike

Golden Delicious
Registriert
29.04.09
Beiträge
7
@blueman-benny Ja so richtig blick ich nicht mehr durch :)

Aber jetzt mal konkret: Was würdet ihr an meiner Stelle tun? Gleich mit Objective-C beginnen oder zuerst etwas anderes? Wenn Objective-C: kennt jemand ein Buch, welches wirklich für Anfänger (ohne Programmierkentnisse) geschrieben ist?
Wenn ich etwas anderes zuerst lernen soll: Was würdet ihr mir empfehlen?
 

blueman-benny

Bismarckapfel
Registriert
13.04.09
Beiträge
140
Ein Buchautor befindet sich in diesem Thread, michibike :D
Objective-C und Cocoa von Amin Negm-Awad ist mittlerweile auch von Anfänger besser zu verstehen, als die vorangegangene Ausgabe (nichts für ungut, Amin ;)) Ich finde dieses Buch ziemlich gut, benutze es sehr intensiv, wobei ich mich aber mittlerweile auf die Entwicklung von iPhone-Apps eingeschossen habe. Dafür benutze ich ergänzend Beginning iPhone Development.

Man kann sich also auch mit Grünen Ohren in Sachen Programmierung daran wagen.
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Es mag daran liegen, dass die letzte Ausgabe sich auch nicht an den totalen Programmieranfänger richtete. Es stellte sich bloß heraus, dass viele tatsächlich ganz neu eingestiegen sind. Dafür gab es dann ein Tutorial auf der Webseite. Dieses wurde in die neue Auflage integriert (Kapitel 1 + 2).

Ich kann nur dringend empfehlen, diese auch dann durchzuarbeiten, wenn man sich selbst schon für etwas erfahren hält. Das, was man meint zu wissen, ist häufig anders, als das, was Objective-C und Cocoa meinen, wissen zu müssen.
 

michibike

Golden Delicious
Registriert
29.04.09
Beiträge
7
ok, dann werde ich dieses Buch mal suchen gehen.
Ich hab mal in unserer der grossen Buchhandlung bei uns in der Stadt geschaut. Dort hat es zwei verschiedene Bücher von dir.
http://www.thalia.ch/shop/jae_start...BN3-908497-84-1/ID15630225.html?jumpId=444291
ist dieses das wo auch noch die Tutorials für völligeinsteiger dabei sind?

Lg
Michi

EDIT: Hab grad gesehen, dass dort steht, dass es für Fortgeschrittene ist... Stimmt das so?
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.059
Aber jetzt mal konkret: Was würdet ihr an meiner Stelle tun? Gleich mit Objective-C beginnen oder zuerst etwas anderes?
Die Frage ist schlicht weg nicht zu beantworten, da man Deine Frustschwelle nicht kennt. Wenn man eine Compiler-Sprache (Objective-C, C++, Java und vieles was im Thread gar nicht angesprochen wurde) nimmt, dann ist der Aufwand Fehler im Programm zu finden größer, und das kann insbesondere einen Anfänger mehr frustrieren. Ob das auf Dich zutrifft, kann niemand ohne Dich persönlich zu kennen beurteilen.
 

notranked

Melrose
Registriert
07.05.06
Beiträge
2.493
ich habs gehasst. hatte das vorletztes semester. grauenvoll. C++ ist die hölle
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
ich habs gehasst. hatte das vorletztes semester. grauenvoll. C++ ist die hölle

Na, die Hölle ist dann doch eine andere Kategorie. C++ ist doch gut für systemnahe Programmierung geeignet. Irgendwie machen die aber die Sprache kaputt,indem die immer noch etwas und noch etwas drauf setzen, um noch etwas und noch etwas zu erschlagen, was sich aber in Wahrheit mit der Sprachkonzeption nicht elegant erschlagen lässt. Für mich ist das ein typischer Fall von weniger ist mehr.