Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

idontknow

unregistriert

41

10.09.2011, 18:26

Das soll es glaube ich auch nicht. ;)


SupremeDeveloper hat danach auf einen Post von dot geantwortet er habe nichts negatives über C++ gesagt nur deshalb habe ich das zitiert.

Letztenendes ist C++ doch vollkommen in Ordnung, wenn man weiß wie man damit umgzugehen hat (RAII usw.) ob man das tut istjedem selber überlassen, aber dann heulen, dass man Speicherprobleme hat ist genauso unpassend wie zu sagen, dass man bei C++ nen GC vermisst der sich um den Speicher kümmert.

42

10.09.2011, 18:35

Letztenendes ist C++ doch vollkommen in Ordnung, wenn man weiß wie man damit umgzugehen hat (RAII usw.) ob man das tut istjedem selber überlassen, aber dann heulen, dass man Speicherprobleme hat ist genauso unpassend wie zu sagen, dass man bei C++ nen GC vermisst der sich um den Speicher kümmert.
Sehe ich auch so. Nur ist es auch unpassend sich Java so wie C++ zu wünschen. Und auf diese Kommentare antworte ich einfach mit dem gleichen Prinzip. Man muss die Eigenheiten einer Sprache akzeptieren oder sie nicht benutzen. Über die Eigenheiten rum zu jammern und diese Jammerei dann als Argument für eine andere Sprache zu benutzen ist ziemlich sinnfrei. Man kann Sprachen eigentlich nur für bestimmte Zwecke vergleichen. Und wenn wir das tun und uns wie im Ursprungsthema mit dem Zweck der PC Spieleprogrammierung beschäftigen, dann spricht mittlerweile eigentlich nichts mehr gegen Java, aber natürlich auch nichts gegen C++. Ein durchschnittliches Beherrschen der Sprache setze ich bei dieser Aussage natürlich voraus.

Und ich möchte noch einmal betonen, dass dieses Thema wieder mal mit Spott gegenüber Java Programmieren begann.

Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von »Chromanoid« (10.09.2011, 18:57)


drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

43

10.09.2011, 19:21

Ich hab hier doch bisher noch nichtmal ein böses Wort über Java verloren, mehr zusammenreißen geht doch fast gar nimmer :P

Ich meinte das mit dem Thread Hijacking. ;)

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

44

10.09.2011, 20:19

Ich versteh nicht worum ihr euch streitet? Ohne C++ kein Java, ohne Java keine einfache, schnelle Entwicklung. Ohne C++ aber evt. auch unnötig aufwendige Maschinensteuerung usw.

Ich hab nichts gegen Java, allerdings gefällt mir die Freiheit (so wie jedem Menschen) das selbst zu organisieren was ich organisieren will. Natürlich kommen damit auch unangenehme Dinge, bei denen man Fehler macht. Aber es ist halt Geschmacks und Situationssache. Und außerdem hasse ich den Zwang OOP zu programmieren. Ich hab zwar keine Probleme damit und verstehe es auch, ist aber trotzdem oft einfach Unnötig und (meiner Meinung nach) unleserlich.
Oft lohnt es halt nicht in C++ anzufangen, da man das gleiche Programm doppelt so schnell in Java schreiben könnte. Aber solange ich nicht wirtschaftlich denken muss benutze ich C++. Und jemand der viel Erfahrung in C++ hat wird auch effizient arbeiten. Es teilt sich halt nach Bedarf.

45

10.09.2011, 21:13

Das würde bei mir so aussehen:

C-/C++-Quelltext

1
a *= pow(dot(v1, v2), dot(v3, v4));
Das Skalarprodukt als * zu überladen, wäre imo ein ziemlich unglücklicher Einsatz von Operator Overloading
Nur fürs Protokoll: Wenn man unbedingt will bekommt man das mit static imports in java auch hin. (Abgesehen vom *= wenn a keine Zahl ist). Also einfach import static java.lang.Math.*; usw.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

46

10.09.2011, 22:32

Das würde bei mir so aussehen:

C-/C++-Quelltext

1
a *= pow(dot(v1, v2), dot(v3, v4));
Das Skalarprodukt als * zu überladen, wäre imo ein ziemlich unglücklicher Einsatz von Operator Overloading
Nur fürs Protokoll: Wenn man unbedingt will bekommt man das mit static imports in java auch hin. (Abgesehen vom *= wenn a keine Zahl ist). Also einfach import static java.lang.Math.*; usw.

Ich denk, dir ist klar, dass das nicht der Punkt ist. Das Beispiel ist einfach kein gutes Beispiel für den sinnvollen Einsatz von Operator Overloading. Nehmen wir besser sowas:

C-/C++-Quelltext

1
p = lookat - r * w;

vs.

Quellcode

1
p = lookat.Subtract(w.Multiply(r));

Zugegeben, eine Vektorklasse ist prädestiniert für sowas. Aber eben auch wirklich alles andere als ein Einzelfall. Arithmetische Typen sind jetzt nicht gerade eine Seltenheit. Mir fallen da spontan hunderte Anwendungsfälle ein: Vektoren, Matritzen, komplexe Zahlen, Quaternionen, Octonionen, Fixkommazahlen, Half, Big Numbers, Daten, Intervalle, Restklassen, Tensoren, rationale Zahlen, ... Aber gut, Java kennt ja sowieso keine benutzerdefinierten Typen mit Wertsemantik, von da her könnte man argumentieren, dass es eh schon wurscht is :P

Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von »dot« (10.09.2011, 22:59)


xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

47

10.09.2011, 23:14

Ich mag Java eigentlich sehr gerne, habe es jedoch lange nicht mehr benutzt.

Das was ich immer am liebsten hatte bei Java war die weite Auswahl an freien Bibliotheken. Man findet für fast alles hilfreiche Bibliotheken und die meisten haben ein Klassendesign welches aus einem Lehrbuch für Design Pattern stammen könnte. Meist braucht man noch nicht mal Tutorials oder externe Dokumentation und kommt mit Syntax Completion und Context Hilfe von der IDE direkt klar.

Ich denke das ist das Resultat der sehr restriktiven Sprachphilosophie. Dafür kann das Programmieren damit manchmal ein wenig pain-in-the-ass sein ;)

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

48

10.09.2011, 23:26

Und was ist mit meinen geliebten >> bzw <<? Ohne sie gäbe es kein:
buffer >> intvar >> string >> blubber >> bla;
Und mal ganz ehrlich?
buffer.read(intvar).read(string).read(blubber).read(bla);
sieht nicht sonderlich aus.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

49

10.09.2011, 23:47

Wenn ihr auf sowas nicht verzichten wollt, ist Java keine Sprache, die euch Spaß machen kann. Ich kann auf den Komfort, den ich für den Verzicht auf solche Sachen bekomme, nicht verzichten. C# ist da schon eine echt gute Mischung, aber Java gefällt mir irgendwie trotzdem noch mehr. C# ist mir schon wieder an der Grenze zur Unübersichtlichkeit. Die Strukturierung und das generelle Umfeld von Java gefällt mir auch besser...

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

50

10.09.2011, 23:56

C#/.NET ist imo das, was Java hätte sein sollen. Werttypen, richtige Generics, vernünftiges Boxing, unsigned, Operator Overloading, nicht alles autom. virtual, ... Java done right, wenn du mich fragst. C# mag ich sehr gerne ;)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dot« (11.09.2011, 00:07)


Werbeanzeige