Zitat:
Zitat von quink
Ja, Java ist ein Abklatsch von C/C++, man wollte C/C++ vereinfachen und dieser Müll ist rausgekommen wo man bei vieles aus der C/C++ Welt gesagt hat ach das braucht man ja nicht in Java, es können so nicht mal Zeiger oder Speicheradressen manipuliert werden, es gibt nicht mal nen Gegenstück zum new Operator der Objekte wieder entfernt, von Destruktoren und Mehrfachvererbung die unter Java völlig unbekannt sind will ich gar nicht anfangen zu reden, was will man mit dem Dreck?
Aber entwickelt ihr mal eure Webapps weiter mit Java und jedes mal beim compelieren denkt an mich und was ich geschrieben das Java Amateurliga ist 
|
Das Problem ist, glaube ich, recht einfach: Du hast Java nicht verstanden!
Beim Design dieser Sprache wurde Wert darauf gelegt, wie man die bei der Entwicklung mit C/C++ immer wieder entstehenden qualitativen Probleme am besten lösen kann. Nach einigen Jahren kam eine Sprache heraus, die genau diese zentralen Probleme angeht: Tote Pointer, memleaks durch fehlallokierten Speicher, Mehrfachvererbung, usw. - genau die Sachen, die Du oben als total tolle Stärke von C/C++ anpreist und über die jede Software-QS Abteilung der Welt nur noch kotzen kann.
Es ist nicht immer toll, wenn man alles kann. Im Gegenteil. Arbeite mal in einem Projekt mit 30 Programmierern und jeder hat einen anderen Stil. Der eine definiert sich die Operatoren einfach um und nur er weiss was ObjectA + ObjectB macht. Nun arbeitet jemand anderes mit seinen Klassen. Addiert er bei + irgendwas? Konkateniert er? Allokiert er Speicher? Niemand weiss es und muss erst in seinen Sourcecode laufen und nachforschen. Super Sache!
Java sagt von Anfang an, dass es eine Operatorenüberladung so nicht geben darf. Per Design. Nun muss jeder eine Methode schreiben und schon sieht man (wenn er sprechende Namen verwendet) genau, was da passiert. Du schreist nun los, dass das ja voll schwach ist - ist es aber nicht. Du hast es nur noch nicht verstanden. Da wird Spaghetticode die Grundlage entzogen und die Qualität des Sourcecodes gesteigert. Per Design.
Javas grosser Vorteil ist nicht die Plattformunabhängigkeit - es ist das viel saubere und strengere Design, welches die Programmierer zwingt, besseren Code zu schreiben. Das ist kein Abklatsch, sondern Evolution - und nur weil man alte Schwachstellen nicht erlaubt, ist das nicht eine Verschlechterung. Sollte Dir doch eigentlich einleuchten. Nicht umsonst werden bei Sprachen wie C/C++ Funktionen durch code conventions unternehmenswert eingeschränkt oder explizit bei Strafe verboten. Das ist keine Schikane, sondern steigert Qualität und Entwicklungseffizienz.
Das "Amateurliga" kannst Du gleich wieder knicken. Ich arbeite seit 15 Jahren als professioneller Entwickler (sprich: Ich verdiene damit mein Geld). Ich habe ewig Assembler, PASCAL und C geschrieben, dann C++, Java und gefühlte 100 Interpretersprachen. Ich denke schon, dass ich weiss, wovon ich rede. Wenn für Dich professionelle Entwicklung immer nur auf Spieleentwicklung hinausläuft, dann solltest Du Deinen Standpunkt mal hinterfragen, ob Du nicht vielleicht noch eher in der Amateurmannschaft spielst und einen kleinen Realitätsabgleich benötigst. Die Spieleentwicklung ist ein überschaubarer Bruchteil der eigentlichen Softwareentwicklung und die industrielle Softwareentwicklung ist qualitativ i.d.R. weit höher.
Meine persönliche Lieblingssprache ist C. Schlicht, cool, mächtig, technisch und schnell. Aber damit möchte ich ums Verrecken kein grosses Projekt (>2 Mio Codezeilen) angehen müssen.
Und danke, daß Du mir die Demoszene erklärst! Nun weiss ich endlich, was das für komische Veranstaltungen mit den verstrahlten Typen neben mir waren ..