Zitat Zitat von Lachsen Beitrag anzeigen
Und Java? Bloß nicht.
Klar kann man mit Java das selbe erreichen wie mit jeder Skriptsprache - nur mit dem Unterschied, dass es keinen Spaß macht und man sich die Finger wund schreiben muss.

Im Vergleich zu Ruby/JavaScript ist Java vom Design sehr viel strikter veranlagt. Typen werden sehr genau genommen und jede Erweiterung muss vom Design exakt berücksichtigt werden (über Interfaces oder abstrakte Klassen).
Shining hat in seinem Beispiel ja bereits erklärt, wie es das Erweitern von Klassen umständlich macht.

Ruby/JavaScript sind hier was Erweiterbarkeit angeht viel flexibler. Natürlich kann man damit viel Mist bauen und sich damit in Richtung "schlechtes Design" bewegen, muss man aber nicht zwangsläufig.

Letztendlich bin ich aber davon überzeugt das gerade bei der Spielentwicklung viele der strikten Design-Praktiken aus der allgemeinen Softwareentwicklung einfach nicht angebracht sind.
Spiele brauchen a) nicht die Wiederverwendbarkeit von generischen Software-Libraries/Modulen und sind b) von ihrer Nutzungs/Lebensdauer derart beschränkt, dass ein besondere Augenmerk auf Erweiterbarkeit und sauberer Struktur ein verschwendeter Zeitaufwand ist. Insbesondere Spiel-spezifischen Inhalte darf man ruhig hacken. (wird z.B. auch von Naughty Dog so gemacht: http://www.dualshockers.com/2014/03/...our-long-talk/ )

...Im Endeffekt ist es natürlich alles persönliche Präferenz. Ich hatte meine paar Jahre mit Java und vermiss die Zeit jedenfalls nicht. :P
Dass Java strikt ist ist ein Vorteil gegenüber den anderen Sprachen. Das, was nicht erlaubt ist (wegen der Striktheit), sind für gewöhnlich Dinge, welche in den anderen Sprachen auch zu einem Absturz führen würden. Aber Java warnt den Programmierer ohne, dass man das Programm dafür testen muss. Wie irgendjemand solch ein Verhalten als Nachteil ansehen kann ist außerhalb meiner Vorstellungskraft.
Ich habe meine Zeit mit Ruby und den ganzen Scriptsprachen verabscheut. Die fehlende Sicherheit eines schützenden Compilers, die zusätzliche Zeit, welche in das Debugging gesteckt werden muss um triviale Fehler zu finden, welche mit anderen Sprachen garnicht möglich gewesen wären.

Das Beispiel von Shining war, wie Shining es auch selbst herausgestellt hat, ein extrem schlechtes Beispiel. Die vorgestellte "Erweiterbarkeit" war hier eher etwas abstoßendes. Das Fehlerpotenzial solcher Scripte ist gigantisch und der Wartungsaufwand explodiert sobald man solchen Code schreibt.

Zu dem was du zur Spieleentwicklung sagst, würde ich das komplette Gegenteil behaupten. Gerade Videospiele profitieren am meisten von gutem Design. Sie zählen zu den komplexesten Programmen überhaupt und eignen sich vortrefflich für die Anwendung von Programmier-Pattern und Software-Prinzipien.
Besonders wenn man bedenkt, was für eine riesige Anzahl an Spiele-Projekten regelmäßig abgebrochen werden, ganz sicher auch wegen zu schlechtem Code. Denk nur darüber nach wie dringend Videospiele heutzutage von Updates abhängig sind. Neue Funktionalitäten, neuer Content, verbesserte Nutzeroberflächen, optimierte Performance, etc etc. Deine Philosophie im Sinne von "hoffen wir, dass es gut wird" ist keine gute Taktik für die großen Spieleentwickler, welche heutzutage Millionenbeträge in die Entwicklung von Spielen stecken. Spiele, welche in dieser Zeit den höchsten Qualitätsanforderungen gerecht werden müssen.