Objective-C als Einsteigersprache geeignet?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Objective-C als Einsteigersprache geeignet?

    Hallo!

    Sorry, wenn in in der falschen Untergruppe bin - dann bitte verschieben :)
    Ich spiele schon seit längerer Zeit mit dem Gedanken, mit der Programmierung zu beginnen.
    Habe mir Pascal als Lernsprache angeschaut und überlege auf JAVA umzusteigen.

    Nun habe ich mich mal etwas über iOS (iPhone/iPad) Programmierung informiert und bin nun
    bei der Sprache Objectiv-C hängen geblieben als Voraussetzung für diese Programmierung.
    Könnt ihr mir Objectiv-C als Einsteigersprache empfehlen? Oder muss es vorab C sein?
    Was bringt mir z.B. C - was lässt sich damit zum Beispiel Programmieren?

    Mein Problem ist, dass ich irgendwie nicht zu der für mich richtigen Sprache komme.
    Vielleicht könnt ihr mir Tipps geben, worauf ich dabei achten muss,
    was mit welcher dieser Sprachen möglich ist.

    Ich möchte in Zukunft einfach mal etwas weiter in diesem Bereich einsteigen.

    Gruß, David
  • Hi,

    weißt du denn was du machen willst wenn du programmieren kannst?
    Einfach programmieren lernen wird schwierig ohne Ziele.

    Java ist ein guter Einstieg. War bei mir im Studium wie bei den meisten Hochschulen wohl auch die Einstiegssprache.
    Ich wüsste aber nicht was gegen Objective-C spricht für den Anfang.
    Bei C musst du wohl eher fragen was du damit nicht programmieren kannst.
    C ist im Gegensatz zu Java sehr Betriebssystem- und Hardwarenah.
    Objective-C ist eine Erweiterung von C.

    Also wie ich anfangs angedeutet habe ist es hilfreich wenn du weißt wohin du willst. Dann fällt die Frage nach dem Werkzeug auch einfacher.
  • adiminator schrieb:

    Java ist ein guter Einstieg. War bei mir im Studium wie bei den meisten Hochschulen wohl auch die Einstiegssprache.

    Das sehe ich anders, obwohl ich selber sehr viel mit Java gemacht habe. Pascal ist als Einstieg eigentlich keine schlechte Wahl (aber nichts auf Dauer).

    adiminator schrieb:

    Ich wüsste aber nicht was gegen Objective-C spricht für den Anfang.

    Ja, statt Java kannst Du genauso gut mit Objective-C anfangen, obwohl beide Sprachen für den Anfang recht komplex sind.

    adiminator schrieb:

    Bei C musst du wohl eher fragen was du damit nicht programmieren kannst.

    Was kann man denn mit C nicht programmieren?

    adiminator schrieb:

    Objective-C ist eine Erweiterung von C.

    Wenn Du Objective-C als Ziel hast, ist C vielleicht kein schlechter Einstieg. Dann lernst Du schon mal die teilweise etwas kruden Operatoren kennen. Du musst ja nicht in den ersten Wochen direkt mit Zeigern anfangen. ;)
    „Meine Komplikation hatte eine Komplikation.“
  • Hi!

    Die Sprache ist m. E. vollkommen zweitrangig: Zum einen ist der Lernaufwand einer Programmiersprache zu vernachlässigen, letztlich geht es nur um etwas Syntax, Operatoren und ähnliches. Viel wichtiger sind Kenntnisse der jeweils zu verwendenden Klassen, deren Methoden, der Bibliotheken und Frameworks ... und die haben erst einmal nichts mit der Sprache zu tun. Genauso wie bestimmte Paradigmen wie OOP, MVC oder das Entwickeln von Algorithmen im Allgemeinen.

    All das kannst Du mit fast jeder beliebigen Sprache lernen, wichtiger ist hierbei die Motivation. Also suche Dir ein Projekt, zu dem Du RICHTIG Bock hast und dann wähle die Sprache dazu passend. Bei iOS-Entwicklung wäre das eben Objective-C...

    Meine Meinung, Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • beage schrieb:

    macmoonshine schrieb:

    Zitat von »adiminator«
    Bei C musst du wohl eher fragen was du damit nicht programmieren kannst.


    Was kann man denn mit C nicht programmieren?



    Als ich vor über 20 Jahren mit Ansi-C angefangen habe, hat mein Dozent immer gesagt: C ist ein Geländewagen. Damit kommt man durch jeden Schlamm und Dreck. Aber der Fahrer sieht hinterher auch so aus. ;)


    Naja dann hatte er selber nicht viel Ahnung von C.

    Der Punkt ist doch, dass man in C wunderbar strukturiert programmieren kann wenn man es möchte. Im Prinzip kann ich damit sogar OOP abbilden. Wenn ich ein struct definiere ist das im Prinzip nichts andere als eine Klassendefinition. Ob ich auf diese struct dann direkt zugreife oder aber über Funktionen (Accessoren) die ich in einen eigenen Source schreibe, bleibt dann mir überlassen. Mache ich zweiteres, ist aber das Ganze nichts anderes als wenn ich eine Klasse definiert hätte und alocieren tue ich die Klasse halt mit einer selbstgeschreiebenen alloc routine die ich sogar newMyClass nennen kann und in der dann ein malloc(sizeof(struct myClass))) steht. Fertig.

    Ich arbeite hier teilweise an Projekten die ich vor über 10 Jahren geschrieben habe und ich kann sie immer noch problemlos warten und erweitern. Und das sogar im Kommentarfreien Raum. Denn auch in C konnte man schon immer den Variablen und Funktionen aussagekräftige Namen geben.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • macmoonshine schrieb:

    Aber ich frage mich noch immer, was man mit Java oder Objective-C programmieren kann, was mit C nicht geht. Insbesondere da ja Objective-C eine Obermenge von C ist.


    Ich glaube da hast du den Satz "Bei C musst du wohl eher fragen was du damit nicht programmieren kannst." falsch verstanden. Ich musste den auch zweimal lesen. Ich denke der Autor hat das anders gemeint als es so rüber kommt und mit einem Fragezeichen dahinter wäre es eindeutiger.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Thallius schrieb:

    Wenn ich ein struct definiere ist das im Prinzip nichts andere als eine Klassendefinition.

    +ähm+ Nein.

    Willst Du Daten vorhalten, dann nimmst Du ein Struct.
    Willst Du Daten manipulieren, dann nimmst Du Funktionen.

    Eine Klasse ist eine Kombination aus Datenhaltung und Datenmanipulation.
    Nicht jede Kombination aus Datenhaltung und Datenmanipulation ist aber per se eine Klasse.

    Spätestens wenn man sich mal so ein richtig großes modulares C-Projekt anschaut und sich am ersten Dutzend Stolpersteine die Fresse blutig geschlagen hat lernt man Objekte lieben…
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Marco Feltmann schrieb:

    Nicht jede Kombination aus Datenhaltung und Datenmanipulation ist aber per se eine Klasse.

    Wenn man Klassen bzw. abstrakten Datentypen in C sauber umsetzen möchte, versteckt man in der Regel die Struktur, und der Klassenverwender bekommt nur Zeiger auf die Struktur zu sehen. Genau so, wie es beispielsweise CoreFoundation macht. ^^
    „Meine Komplikation hatte eine Komplikation.“
  • Wie verstecke ich denn die Struktur, wenn jeder Hans, Franz, Fritz und Klaus meinen Quellcode einsehen kann? ;)

    Aber ja, CoreFoundation ist schon was Feines. :)
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Thallius schrieb:

    beage schrieb:

    macmoonshine schrieb:

    Zitat von »adiminator«
    Bei C musst du wohl eher fragen was du damit nicht programmieren kannst.


    Was kann man denn mit C nicht programmieren?



    Als ich vor über 20 Jahren mit Ansi-C angefangen habe, hat mein Dozent immer gesagt: C ist ein Geländewagen. Damit kommt man durch jeden Schlamm und Dreck. Aber der Fahrer sieht hinterher auch so aus. ;)


    Naja dann hatte er selber nicht viel Ahnung von C.

    Der Punkt ist doch, dass man in C wunderbar strukturiert programmieren kann wenn man es möchte. Im Prinzip kann ich damit sogar OOP abbilden. Wenn ich ein struct definiere ist das im Prinzip nichts andere als eine Klassendefinition. Ob ich auf diese struct dann direkt zugreife oder aber über Funktionen (Accessoren) die ich in einen eigenen Source schreibe, bleibt dann mir überlassen. Mache ich zweiteres, ist aber das Ganze nichts anderes als wenn ich eine Klasse definiert hätte und alocieren tue ich die Klasse halt mit einer selbstgeschreiebenen alloc routine die ich sogar newMyClass nennen kann und in der dann ein malloc(sizeof(struct myClass))) steht. Fertig.

    Ich arbeite hier teilweise an Projekten die ich vor über 10 Jahren geschrieben habe und ich kann sie immer noch problemlos warten und erweitern. Und das sogar im Kommentarfreien Raum. Denn auch in C konnte man schon immer den Variablen und Funktionen aussagekräftige Namen geben.

    Gruß

    Claus


    Das war eher positiv gemeint
    Ich bin gegen Signaturen!!!
  • Marco Feltmann schrieb:

    Wie verstecke ich denn die Struktur, wenn jeder Hans, Franz, Fritz und Klaus meinen Quellcode einsehen kann? ;)

    Indem Du die Strukturen nur in den Implementierungsdateien definierst. In den Headern verwendest Du nur Zeiger darauf, z. B.:

    Quellcode

    1. // CoreFoundation/CFURL.h
    2. typedef const struct __CFURL * CFURLRef;

    Wie struct __CFURL aussieht, bekommst Du nur in CFURL.c zu sehen.
    „Meine Komplikation hatte eine Komplikation.“
  • Die Frage, ob man dies oder jenes in einer Programmiersprache kann, ist irrelevant, auch bei der Frage, ob eine Programmiersprache OO ist. Man kann in fast allen Programmiersprachen fast alles. Natürlich kann man in C OO programmieren, so wie man das auch in Assembler kann und mutmaßlich auch in Brainfuck. Dennoch wird das niemand als OOP bezeichnen.

    Relevant ist die Frage, ob einem die Programmiersprache hierbei unterstützt. C unterstützt den Programmierer bei OOP kein Stück weit.

    Natürlich kann man mit einem Schweizer Offiziersmesser Formel-1-Autos bauen. Nur wieso sollte man so blöde sein? Viel einfacher und vor allem deutlich weniger schmerzhaft ist es, sich damit Löcher ins Knie zu bohren.

    Insofern kommt es sehr wohl und außerordentlich zentral darauf an, was als Endergebnis gewollt ist.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?