C vor Java erlernen oder geht auch umgekehrt ?

Hallo Forengemeinde, auch soeiner wie ich wollte noch was an Programmiergrundwissen dazulernen.

Jetzt möchte ich einen richtig schweren Brocken als Programmiersprache verdauen und habe mir da eigentlich in erster Linie entweder (einen Abkömmling von) C und/oder Java vorgestellt.

Vor allem stelle ich mir die Frage in welcher Reihenfolge man diese max. 2 Sprachen lernen soll.

Bisher lernte ich über 25Jahre eben Basic, Turbopascal, Fortran und Cobol.

Im Endeffekt sind das bis auf die primitive Interpretersprache Basic alles procedurale Sprachen und es gibt keinen soo großen Unterschiede auch nicht zwischen Fortran und Cobol.

Ich möchte jetzt eben eine gleichermaßen klassische wie auch gängige Sprache lernen, die mehr Möglichkeiten hat. Eine Supersprache wie Pyton oder so aber auf keinen Fall.

Und die Sprache sollte ein Mindestmaß für objektorientierte Programmierung haben, denn genau das haben die Programmiersprachen, die ich bisher lernte nicht.

Woanders hier im Forum wurde es eher so gesagt, daß Java wegen seiner etwas höheren Eingeschränktheit leichter zu erlernen ist aber man dann keinen Anschluß an C findet.

Hatte es so verstanden, daß wenn man Java lernt zwar schneller Erfolge verbuchen kann dann aber in einer Einbahnstraße weil man mit dem höheren Umfang von C nicht zurechtkommt.

Es wäre dann besser sich das umfangreichere C anzueignen auch wenn mans vom ganzen Umfang nicht lernt würde man beim Nachfolgenden lernen von Java wenig Schwierigkeiten haben.

Könnt ihr das so bestätigen, daß man bei Java in einer Sackgasse landet ?

Der Reiz die beliebteste und einfacherere Computersprache die jetzt im Handyzeitalter sehr große Bedeutung hat ist eben sehr groß aber sollte eben doch eine Erleichterung der rennomiertesten Programmiersprache nämlich C nicht im Wege stehen.

hallo.

Und die Sprache sollte ein Mindestmaß für objektorientierte
Programmierung haben, denn genau das haben die
Programmiersprachen, die ich bisher lernte nicht.

c aber auch nicht unbedingt. da mußt du schon mit c++ anfangen.

Woanders hier im Forum wurde es eher so gesagt, daß Java wegen
seiner etwas höheren Eingeschränktheit leichter zu erlernen
ist aber man dann keinen Anschluß an C findet.

? es gibt keinen anschluß zu finden. java und c++ sind beides objektorientierte sprachen, die sich teilweise ähneln, teilweise unterscheiden und nebeneinander und unabhängig voneinander existieren.

Hatte es so verstanden, daß wenn man Java lernt zwar schneller
Erfolge verbuchen kann dann aber in einer Einbahnstraße weil
man mit dem höheren Umfang von C nicht zurechtkommt.

wie gut man womit zurechtkommt, hängt in erster linie vom intellekt ab, und nicht (nur) davon, in welcher reihenfolge man was lernt.

Könnt ihr das so bestätigen, daß man bei Java in einer
Sackgasse landet ?

ich kenne java-programmierer, die sich mit c schwer getan haben. allerdings hab ich sie nie in java arbeiten sehen. kann also gut sein, daß es generell pfeifen waren :smile:

Der Reiz die beliebteste und einfacherere Computersprache die
jetzt im Handyzeitalter sehr große Bedeutung hat ist eben sehr
groß aber sollte eben doch eine Erleichterung der
rennomiertesten Programmiersprache nämlich C nicht im Wege
stehen.

was heißt reiz? letztendlich hat jede sprache ihre berechtigung für bestimmte zwecke. du solltest dir klarmachen, wofür du deine neue sprache einsetzen willst und dich dann entscheiden, welche dafür besser geeignet ist.

gruß

michael

Danke Michael für Deine Antwort

c aber auch nicht unbedingt. da mußt du schon mit c++
anfangen.

Und genau aus diesem Grund weil C selber nicht objektorientiert ist wollte ich gleich mit einem „etwas“ objektorientierten C-Derivat anfangen und wollte mich unter den 3 Abkömmlingen (C++, C# und objective C) erstmal einfach dem größten Strom anschließen und C++ lernen (ich denke den Umstieg auf objective C kann ich immer noch machen wenn ich merke daß C++ das falsche Derivat war). Das Objectorientierte ist bei mir aber nur ein Nebenaspect beim Erlernen von was neuem (wenns mir nur um eine saubere objectorientierte Schulsprache gehen würde dann würde ich ja eher Delphi lernen).

Woanders hier im Forum wurde es eher so gesagt, daß Java wegen
seiner etwas höheren Eingeschränktheit leichter zu erlernen
ist aber man dann keinen Anschluß an C findet.

? es gibt keinen anschluß zu finden. java und c++ sind beides
objektorientierte sprachen, die sich teilweise ähneln,
teilweise unterscheiden und nebeneinander und unabhängig
voneinander existieren.

Ja man muß ja auch bedenken, daß alle alten Hasen, die jetzt 40 oder 50 alt sind alle C gelernt haben (denn es gab in den 80igernnund90ern ja noch kein Java). Von daher ist ja evtl. teilw. historisch (auch wegen der Nähe zu den Unixrechnern) bedingt, daß jeder in der Ausbildung mal C programmieren lernte.

Nun ja ich denke wenn man 70% des Umfangs von C lernen will ist das bestimmt zeitaufwendiger als wenn man 70% des Umfangs von Java lernt weil C eben wegen der vielen Möglichkeiten umfangreicher ist.

Wenn man 70% der Java-Kenntnisse sich angeeignet hat dann hat man natürlich nicht soviel Zeit investiert und da kann man sich ja nicht wundern wenn der Übergang zu C schwieriger ist.

wie gut man womit zurechtkommt, hängt in erster linie vom
intellekt ab, und nicht (nur) davon, in welcher reihenfolge
man was lernt.

Könnt ihr das so bestätigen, daß man bei Java in einer
Sackgasse landet ?

ich kenne java-programmierer, die sich mit c schwer getan
haben. allerdings hab ich sie nie in java arbeiten sehen. kann
also gut sein, daß es generell pfeifen waren :smile:

Ja das sind dann die Leute die damit prahlen was sie früher im Studium alles gemacht haben

Der Reiz die beliebteste und einfacherere Computersprache die
jetzt im Handyzeitalter sehr große Bedeutung hat ist eben sehr
groß aber sollte eben doch eine Erleichterung der
rennomiertesten Programmiersprache nämlich C nicht im Wege
stehen.

was heißt reiz? letztendlich hat jede sprache ihre
berechtigung für bestimmte zwecke. du solltest dir klarmachen,
wofür du deine neue sprache einsetzen willst und dich dann
entscheiden, welche dafür besser geeignet ist.

Wenn ichs jetzt beruflich brauchen würde und ich eher so ne Art Affinität zu den Kleincomputern und Handies habe würde ich eher Java lernen wollen. C (und für mich erstmal C++) hat beruflich eher Affinität zu den Großrechner und den großen Programmen in den Firmen.

Da ich das beruflich eben nicht brauche sondern eher ne umfangreichere Sprache lernen wollte entscheide ich mich wohl eher für C++. Den Ehrgeiz ein Javaspiel zu Programmieren um es auf dem Handy zu spielen habe ich dann auch nicht…wenn man bessere Speile für lau runterladen kann. Ich wollte eher auch Berechnungen und Kalkulatuionsprogramme machen was teilwieise in den Bereich der Numerk geht. Ich hatte mir mal ein bißchen MatLab aneignen müssen (was eine Untermenge von C ist, kann wenigstens von C-Compilern kompiliert werden).

Gruß

C, C# und Java
Hallo robespierre,

C ist sehr Maschinennah, d.h. man kann die Leistungsfähigkeit eines Computers (egal ob Handy oder Großrechner) sehr gut nutzen. C ist

  • auf wirklich allen Prozessoren verfügbar (naja, auf jeden Fall fast)
  • sehr klein (Sprachumfang, compiler, Bibliothek, Funktionalität…)
  • sehr gut portierbar auf verschiedenste Hardware
    Das ist der Grund, warum Matlab z.B. C (und nicht Java) für den Einsatz auf anderen Plattformen erzeugen kann, oder zur weiterentwicklung erlaubt. Matlab ist aber in keiner Form eine Untermenge von C oder irgendwie damit verwandt.!!!

C++ ist eine objektorientierte Weiterentwicklung von C, ist aber etwa auf halben wege zwischen C und Java.

C# ist Java schon recht ähnlich. Beide haben riesige Bibliotheken (Framework, z.B. .NET) mit dabei, in denen hochkomplexe Funtkionen wie in einem Baukasten zusammengeschaltet werden können.

Woanders hier im Forum wurde es eher so gesagt, daß Java wegen
seiner etwas höheren Eingeschränktheit leichter zu erlernen
ist aber man dann keinen Anschluß an C findet.

Die beiden sprachen haben miteinander nichts zu tun, ausser einigen Sprachstrukturen um C/C+±Programmierer anzulocken

Der Unterschied zwischen Java und C ist vermutlich vergleichbar wie zwischen Windows und DOS. Oder Word und Schreibmaschine, wobei auch heute noch Romane der Weltliteratur geschrieben werden können.

C macht m.E. nur Sinn,

  • wenn Du einfache Konsolenprogramme schreiben möchtest um das Programmieren von der Pike auf zu lernen
  • irgendwann mal abgefahrene Handyprogramme schreiben möchtest
  • Deinem Router neue Features beibringen möchtest (also z.B. Treiber unter Linux).
  • Mikrokontroller bzw. embedded programmierst
  • höchstoptimierten Code schreiben willst (was meist nur seeehr seeehr selten notwendig ist!)

Für komfortable Handy-Apps, PC-Programme oder Datenmanipulation ist Java/C# (je nach Plattform) völlig OK und richtig.

Viel Erfolg

achim

hallo.

Wenn ichs jetzt beruflich brauchen würde und ich eher so ne
Art Affinität zu den Kleincomputern und Handies habe würde ich
eher Java lernen wollen. C (und für mich erstmal C++) hat
beruflich eher Affinität zu den Großrechner und den großen
Programmen in den Firmen.

naja… C ist auch sehr weit verbreitet im embedded-bereich. automotive-steuergeräte werden fast ausschließlich in c programmiert.

Da ich das beruflich eben nicht brauche sondern eher ne
umfangreichere Sprache lernen wollte entscheide ich mich wohl
eher für C++.

sicher eine gute wahl :smile:

Ich hatte mir mal ein bißchen
MatLab aneignen müssen (was eine Untermenge von C ist

das nicht…

kann
wenigstens von C-Compilern kompiliert werden).

… und das auch nicht. aber man kann aus matlab-code c-code erzeugen lassen.

gruß

michael

Bedanke mich bei euch beiden,

werde mich dann nur auf C++ konzentrieren, weil ich mich lieber mit dem Hardwarenäheren beschäftigen möchte. Das Matlab so nah mit C verwandt ist hatte ich dann wohl in den absolut falschen Hals bekommen. Ich habe mit MatLab nur mal hauptsächlich numerische Berechnungen und Matrizenrechnung machen müssen danach nicht mehr damit beschäftigt.

Java werde ich jetzt überhaupt nicht weiterverfolgen. Und selbst wenn ich das C++Lernen bald wieder aufgebe scheints mir immer noch das Beste zu sein selbst wenn wenig hängen bleibt. Ist dannn wohl die Programmiersprache mit den meisten Tutorials (da ist auch für den Dümmsten noch was dabei). Und gibt jede Menge Literatur (auch gebraucht) billlig hinterhergeschmissen.

Sicherlich werden auch einige Opensource Programme in Java realisiert so habe ich gerade gesehen (also z.B. einige Businessprogramme wie Aktienchartdarstelllung für Smartphone) aber nicht so in dem Maße wie C bei den PC-Programmierungsprojekten und in den Betriebssystemforen gehts ja hauptsächlich um die C-Sprachen (bei den sehr professionellen OpenSourceProgrammiercommunities wie bei gimp, freecad, blender usw. dann eher eine sehr umfangreiche Sprache wie python). Aber ich habe ja nicht den Ehrgeiz bei der Elite der Allroundprogrammierern mitzumischen.