Welche Programmiersprache als Anfänger?

Visual Studio geht nur unter Windows. D.h. er braucht eine Windows Lizenz und Bootcamp oder Parallels (wobei letzteres wohl Probleme verursachen kann wenn du den Hypervisor für Windows Phone 8 Simulator installierst).

Ich bleibe bei Xcode + Objective-C (da der OP ja Mac und iOS Apps programmieren wollte), alternativ Java (mit oder ohne IDE wie Eclipse / Netbeans).
 
Ist für mich viel hilfreiches dabei, Dankeschön. Ist xCode nur die IDE für Objektive-C oder ist die Programmiersprache die für xCode benutzt wird nur an Obj-C angelehnt?
 
Xcode ist die primäre IDE von Apple und bietet dir entsprechende Projektvorlagen für OSX oder iOS Projekte - welche alle in Objective-C geschrieben werden. Du hast allerdings auch die Möglichkeit C / C++ mit Xcode zu kompilieren bzw. in deine Projekte mit einzubauen bzw. ein nur C / C++ Projekt zu erstellen falls du dies wünscht (habe ich zwar schon lange nicht mehr gemacht, aber sollte immer noch gehen).
 
Oh doch, das schadet... Wenn du dich erst einmal daran gewöhnt hast, rein prozedural zu arbeiten, wirst du wirklich Schwierigkeiten bekommen, dich in Objektorientierung hineinzudenken. Blöderweise kommt man ohne OO aber nicht weit.
 
Objekt-orientiert könntest du mit gewissen Einschränkungen auch in C programmieren. Trotzdem fällt mir kein Grund ein, weshalb man C wählen sollte. Für die heutige Zeit bietet C für meinen Geschmack einfach zu wenig syntaktischen Zucker und zu wenig Features. Viele Dinge, die in anderen Sprachen simpel sind, kann man in C nur mit viel Rumgefrickele tun.
 
Es kommt ganz auf das Szenario an. Wenn du Embedded Systeme, Low Power Chips etc. programmierst, oder Linux Kernel mit entwickeln willst, dann brauchst du C. Aber lest euch doch durch was der Threadersteller machen wollte...
 
e-Funktion schrieb:
Vergleich Java und C++ (PDF)

Wenn es einer der zwei sein sollte und es hauptsächlich ums lernen geht würde ich zu C++ tendieren. Java nimmt einem im Hintergrund doch eher die Arbeit ab.

Das ist doch gerade so wichtig. Wenn man etwas lernen will, sollte es einem leicht gemacht werden. Zu lernen, was
Programmieren ist, ist viel zu leicht damit zu verwechseln, zu lernen, welchen Aufwand man für Minimalerfolge treiben
muss, wenn man sich als Anfänger nicht erstmal die schwierigsten Dinge abnehmen lässt.

Und zu dem Herrn, der meinte "ohne Objektorientierung kommt man nicht weit" stelle ich mir nur einen Pfarrer vor, der
sagt, mit Mohammed kommt man nicht weit. Das ist Religion. Man kommt mit oder ohne Objektorientierung, mit oder
ohne Funktionen, mit oder ohne menschenlesbaren Code am Ende an genau den selben Ort. Man sollte die Arbeit, die
man macht nicht mit den Werkzeugen verwechseln, die man dafür nutzt. Und wenn alles, was man kennt ein Hammer
ist, sieht jedes Problem aus, wie ein Objekt, das man in eine Klasse packen muss.

€: Themenverwandtes Bild. Aber bitte, bitte, bitte nicht als Javaflame auffassen. Habe nichts gegen Java oder objekt-
orientierung oder sonst irgendwas, was euch lieb und teuer ist.

problem-factory.jpeg


€2: Was macht man, wenn man nicht pennen kann? Richtig! Man geht ins Internet und lässt einen Wortschwall los, der
keinen interessiert. Also los! Fand, ich könnte doch hierzu noch meinen Senf abgeben:

antred schrieb:
Objekt-orientiert könntest du mit gewissen Einschränkungen auch in C programmieren. Trotzdem fällt mir kein Grund ein, weshalb man C wählen sollte. Für die heutige Zeit bietet C für meinen Geschmack einfach zu wenig syntaktischen Zucker und zu wenig Features. Viele Dinge, die in anderen Sprachen simpel sind, kann man in C nur mit viel Rumgefrickele tun.

Religionsbekenntnis: Ich mag C und benutze es sehr häufig.
Der Mangel an Features ist meiner Meinung nach nicht der Grund, warum C eine schlechte Wahl für einen Anfänger ist.
Es ist vielmehr die Kombination mit der lowleveligkeit der Sprache. Wenn man sich jeden Komfort selber aufbauen muss,
ist das für jemanden, der das Programmieren neu lernen will, eine Garantie für Frust und die falsche Erkenntnis, dass
Programmieren viel zu kompliziert ist und man das ja doch nie hinbekommt.

Es ist ja auch kein Geheimnis, dass ich Lisp (Scheme) so mag und ein sehr wichtiger Grund ist hier gerade die geringe
Zahl an Features, die es einem erlaubt, immer einen guten Überblick zu haben, was man machen kann und nicht erst-
mal den Index von einem dicken Lehrbuch nach einem bestimmten Feature, das man gerade benötigt, durchgucken
muss. Was den Minimalismus von Lisp im Gegensatz zu dem von C zu dessen Stärke macht, ist dass es etwa 8000
Ebenen höher angesiedelt ist. Die Funktionsweise des zugrundeliegenden Computers hat nichts damit zu tun, was man
in Lisp Code sieht oder wie er sich verhält. Man hat einen Garbage Collector, man hat Funktionen höherer Ordnung,
optimierte Rekursion undsoweiterundsofort. Man kann seine Ideen umsetzen, ohne von den Schranken der tiefer-
liegenden Realität eingezwängt zu werden. Daran scheitert C als Programmiersprache für Anfänger.

Und während mein sinnloses Geblubber immer mehr zutrifft, je höher die Programmiersprache ist, machen die aller-
meisten hohen Programmiersprachen den Fehler, Features, Features, Features auf den Tisch zu legen, die einen den
Wald vor lauter Bäumen nicht mehr sehen lassen. Man gewinnt wenig, wenn man alle paar Seiten einen Stapel neue
Features vorgesetzt bekommt und dann wie oben angesprochen anfängt, die Arbeit die man macht, mit den Werk-
zeugen, die man benutzt zu verwechseln und dann aus gefühlter Überforderung aufgibt.

Also: Minimalismus kann dem Benutzer auch wenn man es nicht erwartet ein befriedigendes Erlebnis von Befähigung
geben oder ihn katastrophal scheitern lassen. Aber zumindest tendentiell halte ich ihn für eine gute Sache.

Zuletzt: Wenn das ein Anfänger liest, sollte er nicht denken oh toll, ich lerne jetzt Lisp und sich ein Buch dazu suchen.
Aber wenn er ein gutes Buch findet und die Sprache mit der es einem Programmieren beibringen will ist Lisp, dann ist
das meiner Meinung nach absolut legitim. Nicht umsonst schwärme ich so von SICP, aber das ist am Ende des Tages
auch wieder nichts weiter als Religion.
 
Zuletzt bearbeitet: (Scheißt der Hase in die Tonne, schreit Asdfman nach der Sonne.)
Kannste den Text bitte noch einmal überarbeiten und so schreiben, als würdest du nicht an einer Schreibmaschine mit manuellem Zeilenvorschub sitzen?
Mit anderen Worten: Schmeiß mal bitte unnötigen Enter-Spam raus, das Ding ist ja vollkommen unlesbar.
 
Der Text wurde eh nicht geschrieben, um gelesen zu werden. Werde ihn deshalb so lassen.
 
Nä, mit dem Niveau ist es wie mit der Nullpunkt-Energie in der Quantenmechanik: Tiefer gehts nicht.
 
Wenn du ja iOS Anwendungen als Motivation hast, dann lern Objective-C wie schon geschrieben.
Ansonsten scheiterts eigentlich vor allem am Fleiß/der Motivation. Deshalb empfehle ich eigentlich immer C# mit Visual Studio, da C# einfach ist, eine enorm umfangreiche Klassenbibliothek bietet und gut dokumentiert ist. Außerdem hast du noch einen sehr guten UI Editor in VS und kommst deshalb mit der Kombination am schnellsten zu ersten Ergebnissen -> man bleibt eher am Ball und ziehts durch.
 
Bloß kein C, das ist näher an der Hardware, der Compiler kümmert sich nicht um Fehler und lässt vieles durch was Anfänger falsch machen. Objective C ist auch nix anderes als ein erweitertes C mit Objektorientierung, es ist abwärtskompatibel zu C. Am Ende schiebst du Frust weil du nicht weißt was los ist und auch keinen Debugger gescheit zu nutzen weißt. Da brauchst dann extra tools wie gdb, valgrind usw.

In Java passiert dies nicht, dir wird immer exakt die Zeile gesagt wo etwas faul ist. Außerdem brauchst du dich nicht um das Speichermanagement kümmern, Java entsorgt nicht mehr gebrauchten Code allein. In C musst du Speicher reservieren und ihn wieder freigeben.

Während des Studiums gab es keinen der nach C gesagt hätte C wäre einfacher. Es ist kleiner, kompakter aber zeigt dir mehr die Funktionsweise direkt auf der Hardware, Java versteckt es vor einem.
Java ist DEFINITIV einfacher.

Wenn du dich immer noch nicht entscheiden kannst, dann überlege dir was man wofür einsetzt.
C ist eher was für Betriebssysteme, Treiber usw. - Java eher für multi Plattform Programme.
Und ich sage es mal so, ohne ein Informatik Studium wirst du C nie wirklich zu nutzen wissen - dir fehlt dann der ganze technische Kram dahinter. Spiele Programmieren? Das kannst ohne Studium-Mathe knicken, absolutes Minimum ist der sichere Umgang mit Matrizen, Vektoren und Ebenen.
 
Zuletzt bearbeitet:
black90 schrieb:
Bloß kein C, das ist näher an der Hardware, der Compiler kümmert sich nicht um Fehler und lässt vieles durch was Anfänger falsch machen. Objective C ist auch nix anderes als ein erweitertes C mit Objektorientierung, es ist abwärtskompatibel zu C.
Du hast schon gelesen, dass sich der TE für App/Game-Entwicklung für iOS & OSX interessiert, oder? Also doch Objective-C.

Und ich sage es mal so, ohne ein Informatik Studium wirst du C nie wirklich zu nutzen wissen - dir fehlt dann der ganze technische Kram dahinter.
Es geht auch wunderbar mit genug Übung. Wenn man erst einmal das grundsätzliche Prinzip von malloc() und Pointerarithmetik kommt man spätestens mit etwas Trial&Error zu ersten überzeugenden Ergebnissen. Der Rest ergibt sich dann von selbst.
Die ersten Typen, die Dinge wie Snake oder Breakout geschrieben haben, hatten sicher auch keinen Dipl. Ing. in Mathe... Sie hatten nur eher verdammt viel Freizeit.
 

Ähnliche Themen

Zurück
Oben