Technikfreund schrieb:
Was bitteschön ist an der Java-Syntax grausam? Java ist die beste objektorientierte Sprache die ich kenne.
Dann kennst Du offenbar nicht Viele. :-)
Technikfreund schrieb:
Schau dir mal im Vergleich dazu C++ an. Ein wahres Syntaxmonster.
C++ ist weder eine gute objektorientierte Programmiersprache noch hat es eine schöne Syntax. Aber was beweist das? Es beweist nur, das es noch schlimmer als Java geht. Sonst nix.
Wenn Du Dir eine gut designte objektorientierte Sprache ansehen willst, guck Dir
Smalltalk an. Gibt dazueine moderne Open Source Implementation namens
Pharo.
Bei Java fängt es ja schon damit an, dass man unterscheidet zwischen primitiven Datentypen und objektorientierten Datentypen. Weil das natürlich doof ist und man bestimmte OOP-Techniken auf priimitive Datentypen gar nicht anwenden kann, gibt es dafür Wrapper-Klassen. Ist aber auch irgendwie wieder doof. Wegen viel Code schreiben und so also hat man überlegt, man macht solche Sachen wie Autoboxing. SO zieht allein diese falsche Designentscheidung ein ganzen Rattenschwanz hinter sich.
Wobei falsche Entscheidung nicht ganz korrekt ist. Man wusste von Anfang an, dass das keine gute Idee ist. Aber man musste es damals machen, weil man anders Performanceprobleme nicht in den Griff bekommen hat.
Pragmatische Entscheidung. Man kann die von mir aus auch befürworten. Aber machte halt die Sprache kaputt und man kann dann nicht mehr sagen: tolle OOP Sprache.
Das soll ja jetzt nicht bedeuten, dass man Java nicht nehmen kann oder das es generell schlecht ist. Aber solche Attribute wie "beste OOP Sprache" etc. haut einfach nicht hin.
Technikfreund schrieb:
Java ist für einen Anfänger überhaupt nicht simpel.
Ob es jetzt die optimale Anfängersprache ist, will ich gar nicht beurteilen. Ich bin da eher der Ansicht, dass die Sprache weitestgehend egal ist wenn man mit Programmierung anfängt.
Fakt ist aber auch, dass Java gern als Lehrsprache genommen wird und es auch sehr viele Java-Programmierer gibt. Sie scheint also zumindest nicht völlig ungeeignet zu sein.
Technikfreund schrieb:
Das Konzept der Objektorientierung kann nicht tiefgehend verstanden werden, sofern man noch nicht einmal weiß, wie imperative Programmierung funktioniert.
Gut. aber auch das kann man mit Java lernen. Man muss ja Java nicht objektorientiert programmieren. Sieht zwar nicht hübsch aus und man muss Sachen wie
public static void main(String args[])
schreiben, obwohl man sie eigentlich nicht braucht. Aber geht.
Und ja. Das ist einfach. Weils halt Konsequent ist. Es muss eben alles als Objekt definiert werden. Bei Python ist das anders aber halt auch inkonsequent. Warum kann ich einfach so Code schreiben und muss nicht alles in ein Objekt?
Man kann vielleicht sagen, dass der Python-Weg für den Anfänger zumindest am Anfang einfacher zugänglich ist. Das bedeutet aber nicht, dass es simpler ist.
Meiner Ansicht nach ist Python sehr viel komplizierter als Java.
Klar. Bei Java muss man manchmal viel schreiben. Dafür gibts für bestimmte Problemstellungen genau einen Weg, wie man es in Java typischerweise löst. Python bietet mehr Möglichkeiten und damit hast Du auch mehr Ansätze bestimmte Dinge zu lösen. Das heißt aber auch, dass es schwieriger sein kann sich die passende Lösung herauszusuchen. Es macht es auch schwieriger anderen Code zu lesen.
Ein großes Pfund was Java ebenfalls hat ist der Compiler. Java deckt halt schon viele Probleme zur Compilezeit auf die in Python erst zur Laufzeit auffallen oder sich in nicht unbedingt einfach zu findenden Bugs äußern.
Und Fehler zur Laufzeit finden bedeuten halt auch, Du musst jeden möglichen Codepfad durchlaufen haben. Desto mehr der Compiler vorher aufdecken kann, desto besser.