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

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

41

05.12.2010, 23:16

Dann begründe deine Meinung doch wenigstens, anstatt einfach zu sagen Java sei ein großer Mist.

Ach, da weiß man immer nie wo man anfangen soll^^ Aus dem Stehgreif auch schwer, da müsste ich mich länger mit beschäftigen (was ich nicht möchte; ist immer noch Java :D) und vorführen, wie andere Sprachen bestimmte Sachen lösen und dann Java-Code als vergleich dazu zeigen.
Aber das Java mir vorschreibt, für jeden noch so kleinen Dreck eine Klasse zu verwenden, reicht eig. schon.
Dazu kommt auch eine von vielen verdrängten Erfahrung im ersten Semester, darunter wäre z.B. die Erkenntnis, dass das switch-Konstrukt mehr Arbeit als Erleichterung bringt.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

42

06.12.2010, 00:33

Ich pflege immer zu sagen: C# ist was Java hätte sein sollen. Nur weil leider alle Welt Java verwendet bedeutet das noch lange nicht dass Java eine besonders gute Sprache ist. Im Gegenteil, ich kenne niemanden mit etwas Ahnung der freiwillig zu Java greifen würde. Der imo einzige rationelle Grund Java zu verwenden ist ein Mangel an Alternativen, denn Java ist nunmal praktisch auf jeder Plattform verfügbar (im Gegensatz zu .NET). Um vielleicht ein paar objektivere Argumente anzugeben: Java hat einige gravierende Schwächen:
  1. Keine Benutzerdefinierten value types => keine Stackallokation möglich
  2. Java Generics sind ein Witz
  3. Kein vernünftiges Boxing (schonmal drüber nachgedacht warum Java die Typen int und Integer braucht?)
  4. Keine unsigned Typen
  5. Kein operator overloading
Davon abgesehen finde ich persönlich dass die Sprache und ihre Umgebung alles andere als schön ist. Und meiner Erfahrung nach scheint es so etwas wie einen gewissen "Java way of coding" zu geben, jedenfalls habe ich den Eindruck dass Java mehr als andere Sprachen die Leute zu einem nicht wirklich guten Programmierstil erzieht. Vielleicht hatte ich aber auch einfach nur reines Pech mit all dem Javacode den ich mir schon antun musste. Rein technisch gesehen sind C# und .NET Java jedenfalls haushoch überlegen wenn du mich fragst...

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


43

06.12.2010, 13:12

das übliche java-bashing...

Ehrlich gesagt kann ich den Javahass nicht so ganz nachvollziehen. Natürlich fehlen Java einige wichtige Sprachelemente, die C# hat, aber jeder Programmierer kann sich ja selbst überlegen, ob er die für die Platformunabhängigkeit opfern will.
Wenn man sich Javacode und den entsprechenden C#-Code anschaut kann man Unterschiede oft mit der Lupe suchen, deshalb verstehe ich nicht, warum viele C#-Programmierer so eine Abneigung gegen Java haben.

Wenn du später sowieso Java lernst ist es relativ egal, ob du jetzt C# oder Java lernst, die Umgewöhnung wird nicht groß sein.

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

44

06.12.2010, 14:31

Deswegen ja auch mein dauerhafter Rat:
Statt Java oder C# lieber was "richtiges" lernen, wie C++, D oder Python. ;)
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

45

06.12.2010, 15:49

Wenn man sich Javacode und den entsprechenden C#-Code anschaut kann man Unterschiede oft mit der Lupe suchen, deshalb verstehe ich nicht, warum viele C#-Programmierer so eine Abneigung gegen Java haben.

Das trifft vielleicht ganz im Groben zu aber gerade im Detail eben absolut gar nicht. Man bedenke einfach mal nur Punkt eins auf meiner Liste der Schwachstellen von Java: Keine benutzerdefinierten value types. Das bedeutet dass ein Konzept wie Stackallokation in Java auf sprachlicher Ebene nicht vorhanden ist (von den eingebauten primitiven Typen abgesehen). Das ist bei weitem mehr als ein kleiner Unterschied, ultimativ bedeutet dies dass Java ein komplettes und imo sehr wesentliches Paradigma fehlt welches in anderen Sprachen wie z.B. C# vorhanden ist. Und ich will an dieser Stelle jetzt gar nicht argumentieren dass Stackallokation ein wesentlicher Performancefaktor ist (ich weiß dass die JVM unter gewissen Umständen Objekte auch am Stack anlegen kann). Worum es mir hier vor allem geht ist dass, wenn einem nun nur Java gelehrt wird, man so mit dem Konzept von value types von vornherein nie in Berührung kommen wird, was für ein grundlegendes Verständnis imo aber sehr sehr wichtig ist.
Wie gesagt, Plattformunabhängigkeit wäre, mangels Alternativen, imo der einzige Grund Java zu verwenden. Wenn er aber genausogut C# verwenden könnte (Plattformunabhängigkeit ist nunmal nicht immer ein relevanter Faktor, vor allem für ihn als Anfänger) so bietet C# imo sehr wesentliche Vorteile gegenüber Java (vor allem wenn man ordentlich programmieren lernen will). Und ich bin dabei garkein C# Programmierer. Ich programmiere die meiste Zeit in C++ und manchmal in C# und möglichst selten in Java (wenn es denn sein muss) und meine Abneigung gegen Java basiert rein auf schmerzlicher Erfahrung. Von einem Javahass kann man imo aber nicht sprechen, ich finde einfach dass Java wirklich keine gute Sprache ist, verwende es darum nur wenn absolut kein Weg daran vorbeiführt und würde es niemals einem Anfänger empfehlen ;)
C# ist dagegen eine solide Sprache die ich guten Gewissens weiterempfehlen kann, vor allem für einen Anfänger wenn er Dinge gerne in top-down Manier lernt. Für den bottom-up Ansatz wäre meine Empfehlung C++ was jedoch aufgrund seiner vielen Fallstricke imo eine oft zu steile Lernkurve hat. Deswegen ist C# meine klare Empfehlung für die meisten Programmieranfänger. Letztenendes hängt es natürlich immer von der jeweiligen Persönlichkeit ab.

Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »dot« (06.12.2010, 16:01)


n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

46

06.12.2010, 16:18

Deswegen ja auch mein dauerhafter Rat:
Statt Java oder C# lieber was "richtiges" lernen, wie C++, D oder Python. ;)
Hast du dir eigentlich schonmal überlegt ein Programm zu schreiben, welches neue Beiträge in dem Forum hier durchgeht und anhand von bestimmten Stichwörtern wie "Welche" "Programmiersprache?" "Java" "C++" "besser" usw. dann einfach danach automatisch Python empfiehlt?

Dann könntest du deine Zeit mit schöneren Dingen im Leben vertreiben :D

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

47

06.12.2010, 18:10

Deswegen ja auch mein dauerhafter Rat:
Statt Java oder C# lieber was "richtiges" lernen, wie C++, D oder Python. ;)
Hast du dir eigentlich schonmal überlegt ein Programm zu schreiben, welches neue Beiträge in dem Forum hier durchgeht und anhand von bestimmten Stichwörtern wie "Welche" "Programmiersprache?" "Java" "C++" "besser" usw. dann einfach danach automatisch Python empfiehlt?

Dann könntest du deine Zeit mit schöneren Dingen im Leben vertreiben :D

Ich sehe mich als eine Art Cyberspace-Missionar, also machen meine Predigten mich glücklich :D
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

48

06.12.2010, 20:35

Dann würde mich mal interessieren ob es C#-Literatur in Richtung "C++ für Spieleprogrammierer" gibt?
„lean over the bowl and then take a dive all of you are dead. i am alive“

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

49

06.12.2010, 22:17

Na alles was mit XNA zusammenhängt. Davon gibts ja schon einiges ;)
Ich kann übrigens das Gerede pro C# mittlerweile bestätigen. An der Uni benutzen wir Java - nach Jahren mit C++ find ich das an sich richtig angenehm - den "Kontrollverlust" nehm ich gerne hin je nach Anwedungsgebiet. Aber als ich in einem freiwilligen Projekt ein wenig mit C# zu hatte sind mir da fast die Augen rausgekullert wie toll man damit Programmieren kann. Sind allerdings nur relativ wenige Eindrücke die ich da bisher gemacht habe. Aber nach dem was ich so gesehn hab, würd ich für Einsteiger mittlerweile C# & XNA empfehlen. Allerdings wird man verschiedenste Gimmicks dann wohl nieeeee so gut schätzen können wie wir echten, coolen C++ Programmierer :thumbup: :lol:

babelfish

Alter Hase

Beiträge: 1 222

Wohnort: Schweiz

Beruf: Informatiker

  • Private Nachricht senden

50

06.12.2010, 23:09

Wieso ich nicht C# nutze? Weil das .NET Framework nicht genug verbreitet ist und weil man .NET Code einfach reflektieren kann. Ansonsten liebe ich diese Sprache :D

Ich empfehle euch einmal Silverlight mit C# anzuschauen, kann man auch sehr nette Sachen damit machen zB. Dr. Dobbs Challenge

Werbeanzeige