Die Fakten:
* Modern: Objective-C wurde vor etwa 25 Jahren veröffentlicht und C-Sharp vor 10 Jahren.
* Zeiger: Objective-C ist eine Ergänzung von C. Und C hat Zeiger. Demzufolge hat die auch ObjC.
* Garbage Collector: Objective-C hat gar keine Garbage Collection.
Der Rest der Diskussion ist Blödsinn.
Ergebnis 1 bis 10 von 37
- 18.12.2011, 02:01 #1
Zeiger sind Mist? C# moderner als Objective-c? Hallo,
Ich finde langsam rein in die Objective-C Programmierung. Gut, es ist kein Visual Basic. Dieses halte ich für sehr gut und schnell erlernbar. Aber es ist machbar und ich sehe langsam, wie toll vor allen Dingen das COCOA Framework ist.
Ein Freund von mir ist Programmierer und programmiert in einer mittelständischen Firma die komplette Unternehmenssoftware (Clipper).
Vor 3 jahren machte ich mit ihm ein Projekt unter C#. Hat Spass gemacht... Aber ich will ja jetzt unter MAC OS und später vielleicht unter IOS programmieren.
Jetzt hat sich der genannte Freund Mal Objective-c angeschaut und ich habe viele Dinge gehört, die an mir abprallten (MAC ist ja ein Nischengerät, der markt ist zu klein, du legst dich da zu fest auf eine Plattform). OK... Will ich ja auch, da ich Apple Produkte für die bessere Wahl halte. Selbst wenn ich nie eine App vermarkten kann, ist das programmieren eine tolle Sache und dümmer macht es bestimmt nicht.
Nur zwei Argumente kann ich nicht entkräftigen, da ich es nicht weiß, ob es stimmt.
1. Der Carbage Collector unter C# sei besser als unter Objective-c. Die ganze Speicherverwaltung wäre altertümlich, da unter C# sich um die Speicherverwaltung nicht gekümmert werden muss.
2.Zeiger seien generell Mist und gefährlich. Wäre eine alte C Last. Unter C# gibt es deswegen auch keine Zeiger bzw. könnte nur als Option aktiviert werden. Also Aussage: Zeiger -> altmodisch und gefährlich.
Kann mir jemand dies bezüglich etwas erklärendes schreiben? Aber bitte keine Flame gegen Windows etc. Darum geht es mir nicht. Möchte nur wissen, was Sache ist.
Danke und ein gute Nacht wünschend...
Martin S.Wenn du den Feind und dich selbst kennst, brauchst du den Ausgang von hundert Schlachten nicht zu fürchten. Sunzi
- 19.12.2011, 09:16 #2
- 19.12.2011, 14:38 #3
Programmierer die Zeiger nicht verstehen sind Mist

Objective-C 2.0 hat schon GC - aber es spricht auch prinzipiell einiges dagegen. Klar ist es für den Programmierer auf den ersten Blick einfacher. Aber es frisst auch Performance. Zudem, es schadet nicht wenn man als Programmierer weiss und versteht was man tut.
- 19.12.2011, 15:21 #4
Dann gebe ich auch noch meinen Senf dazu.
Zu 1. Garbage Collection hat Vor- und Nachteile. Reference Counting hat ebenfalls Vor- und Nachteile. Automatic Reference Counting vereint die Vorteile aus beiden Welten.
Zu 2. Ja, Zeiger können gefährlich sein. Vor allem wenn man mit Zeigerarithmetik herum macht. Zeigerarithmetik braucht man aber in Objective-C nicht. Das beschränkt sich auf simples Zuweisen. Die Gefahr ist überschaubar.
MacApple
- 19.12.2011, 18:05 #5
- 20.12.2011, 07:43 #6
Danke für eure Antworten. Vor allen Dingen, da ich mich jetzt mit ARC auseinander gesetzt habe. Scheint ja eine Entschärfung zu sein und ich mir dieses Retain, Release Gedöns in meiner Lernphase nicht mehr antun muss.
Wenn du den Feind und dich selbst kennst, brauchst du den Ausgang von hundert Schlachten nicht zu fürchten. Sunzi
- 22.12.2011, 21:14 #7
Auch wenn es schon gesagt wurde, hier noch die Meinung eines Java/C/Delphi- Entwicklers: Garbage Collection ist okay solang man weiß wie man programmieren sollte bzw. weiß ungefähr was man tut denn Garbage Collection ist auch nicht wirklich perfekt (Aus Java Erfahrung)
Zeiger sind ne tolle Sache und können ganz schön Geschwindigkeit in die Anendung bringen (Binärbaum beispielsweise) aber sie sind ebenso gefährlich, man sollte also dringenst aufpassen was man tut.
Darüber hinaus: Es gibt Möglichkeiten ObjC auch plattformunabhängig auszuführen oder es je plattform zu kompilieren (weiß es nicht mehr so genau)
- 25.12.2011, 02:04 #8
Dann aber eine Frage. Was ist denn an Zeigern gefährlich. Und das dann aber im Kontext zu Obective-C. Was muss ich hier gleich als Anfänger in dieses Sprache beachten.
Einfach nur "ist gefährlich" hilft da nicht sehr bzw. ist nicht sehr lehrreich.
So. Das wichtigste aber- Ich wünsche euch ein frohes Weihnachtsfest.Geändert von msteffenma (25.12.2011 um 11:07 Uhr)
Wenn du den Feind und dich selbst kennst, brauchst du den Ausgang von hundert Schlachten nicht zu fürchten. Sunzi
- 25.12.2011, 11:33 #9
Um das Zeigermanagement vielleicht zu verstehen und hassen oder leiben zu lernen, Bzw auch mal das ein oder ungewollt andere abzuschießen, bietet sich so eine Programmieraufgabe wie ein Binärbaum an.
Ich selbst habe mit Zeigern nur unter Windows gearbeitet und dort mehrmals alles abgeschossen so das es zu einem BLuescreen gekommen ist (Win XP) Manchmal ach die VM nicht mehr wollte etc.
Vielleicht findest du aber auch das es ein bisschen zu krass ist als Anfänger...
- 25.12.2011, 12:33 #10
Das kann sein
. Es geht mir einfach um folgendes. Wie geschrieben kommt dieses Thema durch den Kommentar eines befreundeten Programmierers. Dieser hält C# für moderner. Als Argument wurde mir wie schon geschrieben die Speicherverwaltung und das Programmieren mit Zeigern genannt. Unter C# gibt es keine Zeiger und das sei richtig so.
Wen ich jetzt Objective-C richtig verstanden habe, muss ich nicht Zeigern arbeiten... Kann es aber. Ist das so richtig? Wegen der C Wurzeln.Wenn du den Feind und dich selbst kennst, brauchst du den Ausgang von hundert Schlachten nicht zu fürchten. Sunzi



Zitieren



(für eure Dummheit!) 