Java oder C/C++ erlernen

Nur um etwas zu nerven, call by reference existiert streng genommen nicht einmal bei Java, sondern eine Kopie der Referenz wird übergeben. Aber wir haben im Studium(1. Semester) direkt den Unterschied zwischen call by value und reference gelernt. Wir hatten aber Java und C am anfang.
 
Jack159 schrieb:
Webentwicklung, also mit JEE zu tun haben.
Schon wieder dieser Schmarrn. Webentwicklung und JEE sind zwei grundverschiedene Dinge und haben nur einen sehr kleinen sich überschneidenden Bereich.
Wenn man es schon so sehr vereinfachen will, dann JEE = Java im Enterprise Umfeld. Was Enterprise bedeutet, darauf ist schom mehrfach eingegangen worden.
 
tnoay schrieb:
versuch in c++ nur mal alle dateien aus einem ordner auszulesen...katastrophe

Mit boost::filesystem ziemlich simpel, und die boost-Libraries sind in modernem C++ inzwischen ohnehin quasi standard. Ansonsten halt die jeweilige platformspezifische API nutzen, was jetzt auch nicht unbedingt Teufelswerk ist.
 
Auch wenn die Antwort unsinnig erscheint, aber: Wirf' ne Münze! Du machst mit keiner der beiden Sprachen etwas falsch und kannst beide bestimmt gut gebrauchen. Hier im Forum wirst du dich nur in Grabenkämpfe verwickeln lassen, die dir vermutlich am Allerwertesten vorbeigehen. :)
 
Nunja,

ich komme aus der 8-Bit Zeit, also Sinclair ZX-81,ZX Spectrum, VC-20, C-64 Amiga, X86. Ich habe noch gelernt in Assembler zu programmieren, auf dem 8085 sogar via DIP Schaltern Daten- und Adresswörter anzulegen und den Prozessor die fressen zu lassen sozusagen.

Heutzutage ist die Programmierung sehr viel komfortabler, in welchem Dialekt oder welcher Entwicklungsumgebung auch immer, "Assembler, Pascal, Oberon", C, C++, C# oder Java.

In Assembler habe ich sehr maschinenahe Programme geschrieben, in Kernighan und Ritchie C kam ich 10 mal so schnell voran und in Visual Studio mit C# tausend mal so schnell.

Ich wollte meine Assembler- und Hardwarekenntnisse nicht missen. Die geilste Sprache ist natürlich die Sprache C und Gefolge, weil nur allein die Compiler am besten vorwärts gehen.

Die große Kunst der Fast Floating Point Arithmetics, 1 Vorzeichenbit, 7 Bit Exponent und 24 Bit Mantisse.

Ich würde Dir zu C raten, ideal ist natürlich C++.
 
dcc22 schrieb:
Glaubst du ja selbst nicht :)
Java ist überall. Auf dem Handy, Tablet, fast jedem Touchscreen wie an der Packstation usw.
C/C++ ist speziell auf eine Plattform ausgelegt und das wird heutzutage immer seltener. Java Code kannst überall starten, ohne irgendetwas zu portieren (nur in sehr speziellen Szenarien).

Joke's on you.
Java läuft auf allen Systemen wo eine JVM verfügbar ist.
Und die sind in C (manche in C++) geschrieben ;)
 
Dazu habe ich ja bereits geschrieben, dass die Behauptung nicht auf Fakten, sondern religiösem Selbtsbetrug basiert.

Es gibt gute Gründe, Java zu verwenden (zum Beispiel bietet es eine gewaltige durchlöcherte Angriffsfläche für Schadsoftwareentwickler), aber was der Mann da sagte ist so offensichtlicher Bullshite, dass zu Recht niemand außer uns beiden das weiter beachtet hat. Ich frage mich fast, warum man dagegen überhaupt argumentieren muss und nicht einfach auf die Person zeigen und sie auslachen kann.
 
Demon0no schrieb:
Joke's on you.
Java läuft auf allen Systemen wo eine JVM verfügbar ist.
Und die sind in C (manche in C++) geschrieben ;)
Das ist der Sinn der Sache, dass man nicht immer selbst portieren muss ;)
 
baizon schrieb:
Das ist der Sinn der Sache, dass man nicht immer selbst portieren muss ;)

Wenn man vernünftiges C/C++ schreibt muss man nicht portieren, sondern nur neu kompilieren.

Klar Java ist bequemer, da stimme ich zu... aber das ändert nichts an der Verbreitung, da Java halt immer nur da verfügbar ist, wo C und/oder C++ auch verfügbar sind.

Ob man nun C/C++ oder Java lernt ist eh reine Geschmackssache. Hauptsache man lernt dabei auch wirkliches Programmieren und nicht nur die Sprache.
 
kuddlmuddl schrieb:
Ein großes Plusargument für Java ist meiner Meinung nach: Man lernt wahrscheinlich von vorn herein vernünftiges OOP mit modernen Konzepten.

Das war zu Anfangszeiten von Java durchaus mal richtig. Mittlerweile hächeln sie anderen Sprachen konzeptionell aber ständig hinterher. Das hat auch was mit der weiten Verbreitung von Java in der Industrie zu tun. Da kann man nicht einfach mal so neue Konzepte ausprobieren. Bei Java konzentriert mal sich mittlerweile hauptsächlich darauf, Konzepte die in anderen Sprachen gut funktionieren zu kopieren und zu adaptieren. Manchmal funktioniert das, manchmal kommen dabei nur halbgare Kompromisse heraus, weil man eben nicht einfach so mit alten Konzepten brechen kann (und will).

Jack159 schrieb:
C++ und Spieleentwicklung ist unrealistisch sofern du nicht ins Ausland gehst. Hier in Deutschland werden i.d.R. nur App-Spiele oder Browsergames entwickelt und das geschieht i.d.R. mit Java (JEE besser gesagt).

Apps für Android&Co werden doch nicht mit JEE entwickelt? Zumindest nicht die Client-Seite. Auf der Server-Seite hast du hingegen die freie Auswahl. Ich habe keine Ahnung was da üblicherweise genommen wird, würde aber tendeziell C/C++ im Vorteil sehen, einfach weil man Resourcen-schonender programmieren kann und die Vorteile von JEE kaum zur Geltung kommen würden.
Bei Browser-Games wird sicher häufig Java benutzt, aber ob das JEE ist, möchte ich zumindest anzweifeln. Ich kann keine großen Erfahrungen bei Browser-Games, habe allerdings bereits mit JEE gearbeitet. Ich sehe für diesen Anwendungsbereich keine Vorteile von JEE gegenüber "einfachem" Java.
 
Tuxman schrieb:
Ja, habe ich. Mehrmals. Amüsiert.

Aber bitte - hier eine einsteigerfreundlichere Version:
http://www.jwz.org/doc/java.html
ja super, wieder ein link der zeigt du du keine ahnung hast, bzw. der autor, bzw. du gerne zeug nachplapperst.


Two identical byte[] arrays aren't equal and don't hash the same. Maybe this is just a bug, but:
problem hatte ich nicht, habe ein tool zum überprüfen von prüfsummen geschrieben.

I can't seem to manage to iterate the characters in a String without implicitly involving half a dozen method calls per character.
absoluter schwachsinn...wenn er die anzahl der chars wissen will -> int i = string.length();
 
tnoay schrieb:
absoluter schwachsinn...wenn er die anzahl der chars wissen will -> int i = string.length();

Da ging's wohl eher darum die Buchstaben eines Strings nach und nach auszulesen und nicht um die Länge ;)

Code:
String s = "...";
for(int i=0; i<s.length(); i++) {
  System.out.println(s.charAt(i));
}

Code:
String s = "...";
s.chars().forEach(c -> {
  System.out.println((char) c);
});

Code:
String s = "...";
for(char c=it.first(); c!=CharacterIterator.DONE; c=it.next()) {
  System.out.println(c);
}

und sonst gibt's natürlich noch Apache Commons und Guava...
 
Zuletzt bearbeitet:
tnoay schrieb:
ja super, wieder ein link der zeigt du du keine ahnung hast, bzw. der autor, bzw. du gerne zeug nachplapperst.

Wer jwz fehlende Ahnung attestiert, der hat wohl was Wesentliches verpasst.
 
Tuxman schrieb:
Ja, habe ich. Mehrmals. Amüsiert.

Aber bitte - hier eine einsteigerfreundlichere Version:
http://www.jwz.org/doc/java.html

Welcher der Punkte ist jetzt relevant oder sogar ein KO-Kriterium für einen Einsteiger?

Was man in einen Java-Kurs lernen wird:
-Was sind Datentypen
-Was sind Arrays
-Was sind Sprungbefehle und Schleifen, wie die allseitsbeliebte If-Schleife ;)
-Was sind Funktionen
-Was sind Klassen
-Was ist Vererbung
-Was ist mit Sichtbarkeit
-Wie siehts mit dem Scoping aus
-Was ist die Java-Semantik
-Evtl ein paar einfache Such Sortier oder Baum Algorithmen
Und dann ist die Zeit schon rum. . . .
Ein CPP-Kurs wird ähnlich ablaufen, nur dass man eben statts der Java-Semantik die CPP-Semantik lernt und zusätzlich noch einen weiteren Punkt Zeiger und Speichermanagement hat. Dafür eben weniger Zeit für den Rest. Ingesamt wird man in keinem Kurs wegen der relativ Kurzen Zeit tiefer in die Sprache einsteigen können und nur an der Oberfläche kratzen. Zudem kann man dann in beiden Fällen dann auch relativ leicht noch umsatteln, wenn es sich später herausstellen sollte, dass man doch die andere Sprache braucht, ohne viel Zeit für etwas sprachspezifisches verschwendet zu haben. Denn die gelernten Konzepte sind noch allesamt recht generisch. Deshalb sollte es weitestgehend egal sein, was man nimmt . . . .
 
Zuletzt bearbeitet:
Nai schrieb:
und zusätzlich noch einen weiteren Punkt Zeiger und Speichermanagement hat

Wenn du mal die "Performance" und Ressourcenlast einer typischen Java-Anwendung wie Eclipse anschaust, wirst du feststellen, dass das ein Punkt ist, der viel zu vielen Leuten beim Lernen ganz offensichtlich gefehlt hat.
 
Wenn du mal die "Performance" und Ressourcenlast einer typischen Java-Anwendung wie Eclipse anschaust, wirst du feststellen, dass das ein Punkt ist, der viel zu vielen Leuten beim Lernen ganz offensichtlich gefehlt hat.

Was helfen einem die Basics of the Basics der Art wie man sie in dem Kurs lernen wird:
-Was ist Stack (automatische Variablen)
-Was ist Heap (new/malloc/free)
-Dereferenzieren von Zeigern
-Einfache Zeigermagie
-Wie sieht eine Klasse oder Array im Speicher aus

Um groß die Performance eines in Java geschriebenen Programms wie der Eclipse-IDE zu optimieren? Wahrscheinlich wissen das die meisten fortgeschrittenen Java-Programmierer ebenfalls - eben weil es nur die absoluten Basics sind. . . .
 
Zurück
Oben