• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Programmieranfänger: Einige Fragen!

tobsch.com

Zabergäurenette
Registriert
18.04.06
Beiträge
601
Hi ihr,

ich möchte in nächster Zeit anfangen programmieren zu lernen. Ich kenne mich ein wenig schon aus, aber nicht genug. Hier einige Fragen:

Welche Bücher könnt ihr mir für den Anfang empfehlen?
Was muss ich alles für Programmiersprachen können, um normale Programme in XCode zu schreiben?
Was ist der Unterschied zwischen Carbon und Cocoa?

Das wär's für's erste.
Aber ich denke ich werde bald noch einige Fragen haben...

Ich hoffe ihr könnt mir einige Fragen beantworten.

Gruß tobsch.com
 

stoebe

Uelzener Rambour
Registriert
23.12.05
Beiträge
371
tobsch.com schrieb:
Welche Bücher könnt ihr mir für den Anfang empfehlen?
I.d.F. kann ich dir nicht wirklich weiterhelfen. Für den Einstieg reicht meistens schon ein gutes Tutorial - davon findet man im Netz mehr als genug.

tobsch.com schrieb:
Was muss ich alles für Programmiersprachen können, um normale Programme in XCode zu schreiben?
Das ist völlig egal. Von C++ über Java bis hin zu Cocoa ist alles vertreten. Im Zweifelsfalle findest du auch noch genug Xcode-Plugins (z.B. um Pascal programmieren zu können). Am besten schaust du dich einfach mal um, welche Programmiersprache dir am Meisten zuspricht.

tobsch.com schrieb:
Was ist der Unterschied zwischen Carbon und Cocoa?
Cocoa:

de.wikipedia.org/wiki/Cocoa schrieb:
Cocoa ist ein objektorientiertes API zur Programmierung unter dem Betriebssystem Mac OS X von Apple Computer.
Cocoa-Programme sind meist solche mit einer graphischen Benutzeroberfläche (GUI), wobei ebenso auch die Entwicklung von z. B. Kommandozeilen-Tools oder Daemons möglich ist.
Als primäre Programmiersprache dient dabei das an Smalltalk angelehnte Objective-C (eine objektorientierte Obermenge von C); alternativ ist die Programmierung aus Java heraus möglich.
Carbon:

de.wikipedia.org/wiki/Carbon (Apple) schrieb:
Carbon ist eine Sammlung von Programmierschnittstellen für das Macintosh-Betriebssystem. Carbon wurde von Apple entwickelt, um es Programmentwicklern möglichst leicht zu machen, ihre Programme auf Mac OS X zu portieren.
Hier ist eigentlich gar nicht die Frage, für welche Sprache du dich entscheiden solltest; ganz klar Cocoa. Jedoch muss man dazu sagen, dass Cocoa als Einstieg verdammt schwer ist (wie ich finde). Falls du's trotzdem angehen willst, findest du hier ein paar echt gute Tutorials.


Grüße,

stoebe
 

Demo

Süssreinette (Aargauer Herrenapfel)
Registriert
02.04.04
Beiträge
411
Und vorallem am Anfang ohne IDE arbeiten. Damit lernt man unteranderem Dinge, die die IDE automatisiert.
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
stoebe schrieb:
Hier ist eigentlich gar nicht die Frage, für welche Sprache du dich entscheiden solltest; ganz klar Cocoa.
Cocoa ist keine Programmiersprache, sondern ein API, welches in der Programmiersprache Objective-C geschrieben wurde und eben mit Objective-C genutzt werden kann.

MacApple
 

Egger1000

Osnabrücker Reinette
Registriert
26.12.03
Beiträge
994
Ich würde dennoch mit einer prozeduralen Programmiersprache, wie z.B. C anfangen, dann zur objektorientierten mit C++ übergehen. Dann lernt sich vieles (Java usw.) wesentlich leichter - genauso wie weitere/andere Programmiersprachen.
 

stoebe

Uelzener Rambour
Registriert
23.12.05
Beiträge
371
MacApple schrieb:
Cocoa ist keine Programmiersprache, sondern ein API, welches in der Programmiersprache Objective-C geschrieben wurde und eben mit Objective-C genutzt werden kann.

MacApple
Jo, die Kernaussage war, dass er Cocoa gegenüber Carbon vorziehen sollte. Das Objective-C saumäßig schwer ist (wie ich finde - kann auch sein, dass ich mich noch nicht genug reingelesen habe), erwähnte ich aber schon.
 

cyberchriss

Becks Apfel (Emstaler Champagner)
Registriert
07.04.06
Beiträge
339
Kennt jeder ein paar gute Anfänger howtos oder Bücher zum Thema C++ unter Xcode und dem Mac compiler?
Wenn ich mit meinem C++ in 21 Tagen, das wohl für Visual C++ geschrieben wurde die Beispiele nachvollziehen möchte, gibt es schon in den ersten Kapiteln Probleme wegen unterschiedlicher Syntaxe.
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.059
cyberchriss schrieb:
Kennt jeder ein paar gute Anfänger howtos oder Bücher zum Thema C++ unter Xcode und dem Mac compiler?
"Accelerated C++; Moo; Koenig" oder "The C++ Primer; Lippman; Lajoie" sind gute Einsteigerbücher zu C++. Für die Bedienung von Xcode nimmt man die Original Apple Doku. Oder am Anfang erspart man sich das alles und compiliert die Miniprogramme auf der Shell, dann hat man das "IDE Lernen müssen" Problem geschickt umgangen.
 

sumpfmonsterjunior

Morgenduft
Registriert
17.03.05
Beiträge
167
Hi,

ich würde Dir auf jeden Fall am Anfang von C abraten. Ebenso von C++, was noch viel komplexer ist. Um eine objektorientierte Sprache zu lernen, sind Kenntnisse in einer prozeduralen Sprache unnötig und können sogar hinderlich sein.

Ob Objective-C saumäßig schwer ist, sei einmal dahin gestellt. Es ist in jedem Fall einfacher als C++. Dennoch eignet es sich besser als zweite Sprache, wenn man in objektorienterter Programmierung sattelfester ist.

Ich würde Dir auf jeden Fall zu Java raten.
Es ist leicht zu erlernen und ist eine ziemlich saubere Sprache.
Es gibt massig gute Doku und Tutorials sowie Bücher in allen möglichen Sprachen und vor allem auf deutsch (obwohl Englischkenntnisse nie schlecht sind, die Referenzdoku der IDEs ist so gut wie immer in Englisch).

Gruß, SMJ
 

MatzeLoCal

Rheinischer Bohnapfel
Registriert
05.01.04
Beiträge
2.422
Jap, ich würde auch zu Java raten. Ist eine ideale Einsteigersprache. Von experimenten mit PHP usw würde ich absolut abraten (ausser du willst was für Webseiten machen)...

Wenn Du dich allerdings auf den Mac spezialisieren willst oder zumindest anfangs nur dafür was machen willst, dann lern gleich Obj-C und Cocoa...
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.059
sumpfmonsterjunior schrieb:
Ich würde Dir auf jeden Fall zu Java raten.
Wenn man Objective-C lernen will halte ich diesen Schritt für kontraproduktiv, da man hier nicht lernt wie man Speicher selbst verwaltet muß. Und da Objective-C nun einmal massiv von C Interfaces abhängig ist, muß man das lernen. Entweder man lernt das von Anfang an oder man muß sich nachher liebgewonne Java Eigenheiten wieder abgewöhnen.

C als Vorstufe für Objective-C ist nicht die schlechteste Wahl. ISO-Pascal oder Modula-II wären zwar besser, da man hier nicht so einem Humbug (insbesondere Zeigerspielereien) zusammenprogrammieren kann wie mit C, wenn man nicht weiß was man da tut, aber das fällt mangels brauchbarem Compiler faktisch aus.
 

sumpfmonsterjunior

Morgenduft
Registriert
17.03.05
Beiträge
167
tjp schrieb:
Wenn man Objective-C lernen will halte ich diesen Schritt für kontraproduktiv, da man hier nicht lernt wie man Speicher selbst verwaltet muß.

Gerade die Speicherverwaltung ist ein Gebiet, mit dem Anfänger oft hoffnungslos überfordert sind. Wenn man einmal eine OO-Sprache beherrscht, ist es viel viel leichter, Objective-C zu lernen, als wenn man direkt von C kommt.
Ausserdem unterscheidet sich die Speicherverwaltung von C doch erheblich von der unter Objective-C, insofern erfordert es eh einen Lernaufwand.

Java hat neben der Doku den Vorteil, dass er OO-Konzepte von der Pike auf mitbekommt (die in Cocoa genauso essentiell wie in den Java Bibliotheken sind), die Programme auf jeder Platform laufen und es Cocoa auch unter Java gibt.

Gruß, SMJ
 

MatzeLoCal

Rheinischer Bohnapfel
Registriert
05.01.04
Beiträge
2.422
sumpfmonsterjunior schrieb:
Gerade die Speicherverwaltung ist ein Gebiet, mit dem Anfänger oft hoffnungslos überfordert sind. Wenn man einmal eine OO-Sprache beherrscht, ist es viel viel leichter, Objective-C zu lernen, als wenn man direkt von C kommt.

Richtig, aber ich würde deswegen trotzdem eher mit Obj-C anfangen als mit Java (wenn man eh nur auf dem Mac bleibt), denn es ist auch so, dass es schwierig ist, die Speicherverwaltung nach zu lernen bzw nicht zu vergessen... so von wegen "gewohnheitstier" und so.

sumpfmonsterjunior schrieb:
Java hat neben der Doku den Vorteil, dass er OO-Konzepte von der Pike auf mitbekommt (die in Cocoa genauso essentiell wie in den Java Bibliotheken sind), die Programme auf jeder Platform laufen und es Cocoa auch unter Java gibt.

Gruß, SMJ

Hmm... Cocoa und Java, das Thema ist nicht mehr sonderlich aktuell. Apple hat die Weiterentwicklung eingestellt, darum ist die Zunkunft davon wohl eher düster.
 

tobsch.com

Zabergäurenette
Registriert
18.04.06
Beiträge
601
Erstmal danke für eure Zahlreichen Ratschläge.

Ja also, ich arbeite auch viel mit Macromedia Flash 8 und lerne deswegen gerade ActionScript 2.0. Und ActionScript ist ja seit der Version 2.0 eine objektorientierte Sprache. Also wenn ich das dann richtig verstehe, kann ich, wenn ich ActionScript 2.0 beherrsche, auch gleich mit objective-C anfangen, oder?

Gruß tobsch.com
 

MatzeLoCal

Rheinischer Bohnapfel
Registriert
05.01.04
Beiträge
2.422
Ich kenne zwar ActionScript nicht, aber Du kannst IMMER mit Obj-C einsteigen... IMHO

Ich finde die Sprache auch sehr schön... bei mir liegen die Schwierigkeiten eher im InterfaceBuilder bzw in der Kommunikation zwischen eigenen Klassen und der GUI. Ich kenne das von Java halt anders. Dort ist sämtlicher Code unter meine Kontrolle.. mit dem IB verliere ich die etwas.. und hab ich wenns komplexer wird noch Schwierigkeiten... aber ich hab im Moment auch nicht so viel Zeit um...

Trotzdem bleibe ich dabei.. der Einstieg mit Obj-C ist 100% ratsam
 

mullzk

Linsenhofener Sämling
Registriert
04.01.04
Beiträge
2.529
ich würde mit java anfangen, vor allem weil es sehr viel mehr literatur und online-tutorials für anfänger gibt. die überwiegende mehrheit von obj-c-literatur setzt c- oder java-kenntnisse voraus, oder geht zumindest nicht gross auf die grundlegenden prinzipien ein.

das mit dem speicher-management hat ein dafür und ein dawieder, einerseits ist es für anfänger praktisch, sich nicht damit herumschlagen zu müssen, andererseits kann es auch nie schaden, so etwas von pike auf drin zu haben und nicht am schluss viel gelerntes wieder auf den haufen zu werfen.
allerdings: mit an sicherheit grenzender wahrscheinlichkeit wird mit os x.5 leopard fertig sein mit memory-management, die objective-c runtime wird mit einer garbage collection ausgestattet werden. siehe dazu John Siracusa. Wenn du dir mit deinem ersten produkt zeit lassen kannst, wird sich dieser lernschritt daher erledigen. und dann bist du sehr gut gefahren, wenn du mit java angefangen hast.

schlussendlich ist java vs. obj-c reine geschmackssache. beides sind tolle sprachen, die nicht unendlich schwierig zu erlernen sind, grosse frameworks beinhalten und von beginn weg zu gutem code animieren.

hände weg von c und c++, diese sprachen sind einfach nur scheisse. grundlegend ok, aber die prinzipien lernt man auch anderen orten. aber dafür unhandlich, verwirrend und zu schlechtem code verleitend. wenn du c lernst wirst du danach als zweites lernen müssen, sämtliche patterns wieder zu vergessen und mit objektorientiertem denken anzufangen.

literatur-empfehlungen hätte ich zwei:
hillegass: cocoa programming for mac os x. sagt recht wenig zu obj-c, aber sehr viel zu cocoa und auch etwas zu xcode. der absolute klassiker
kochan: programming in objective-c. sagt nichts zu cocoa und xcode, aber sehr viel zu obj-c, insbesondere auch für leute ohne c-kenntnisse.

cheesemans 'cocoa recipes for mac os x' (auch als vermont recipes) ist auch ein gutes buch das auf viele aspekte von cocoa sehr detailliert eingeht, allerdings ist es halt schon recht alt und geht auf die absoluten hammerframeworks von panther und tiger (bindings, core data etc.) nicht ein. damit würdest du vielleicht ein bisschen sehr viel lernen, was du nachher nicht mehr brauchen würdest, weil cocoa es unterdessen für dich macht.