Sprachen für die JVM im Zusammenspiel mit Java

< Beitrag >

< Thread >

Re: Ich bin skeptisch ...

Avatar von jannekk

jannekk

166 Beiträge

28.02.2012 12:55 Permalink

> Ich habe bereits in C# entwickelt und bin gerne wieder zu Java zurück
> gegangen, weil die Sprache nur ein Bestandteil der Software ist. Gute
> Bibliotheken sind genauso wichtig um kompakten Code zu schreiben. Ich
> stelle nicht in Abrede, dass man mit Scala kompakteren Code schreiben
> kann, doch ob die Lernkurve den angeblichen Gewinn rechtfertigt, wage
> ich zu bezweifeln. Dafür ist die Sprache in meinen Augen zu komplex.

Das mit der Komplexität und der Lernkurve ist so ein Ding. Erkläre
mal einem
PHP/Python/Ruby Entwickler warum er mit Annotationen und XML um sich
schmeissen muss
nur um eine triviale Webanwendung zu realisieren. Java ist nämlich so
"einfach",
dass sich komplexere Probleme *nur* über Byte Code Generierung
(Hibernate, Spring, JSF...)
lösen lassen. In Scala kann man das mit den gegebenen Sprachmitteln
lösen. 

Ach ja, die Java Sprachspezifikation umfasst 600 Seiten - Einfach ist
anders!

> Das Problem ist das das Operator Overloading (egal wie man es nennt)
> eine gute Möglichkeit ist, Code zu schreiben, der von anderen
> Entwicklern falsch interpretiert wird, weil diese Symbole bereits
> feste Bedeutungen haben. Man kann damit nämlich folgendes schreiben:

> var x = a + b; 

> Ohne die Klassen von a, b und x genauer zu kennen *und* zu wissen,
> was der Entwickler sich bei der Funktion "+" gedacht hat kann man den
> Code nicht verstehen. Im schlimmsten Fall nimmt man eine andere
> Funktionalität an. 

Mann kann *keinen* code verstehen ohne den Kontext zu kennen - egal
ob Java, Scala oder....

> Object x = a.add(b);

Sagt mit ja auch nicht was es tut (ist "a" eine Liste, so wird am
Ende eingefügt, ist es BigDecimal so wird eine Addition durchgeführt
- ist es was anderes musst Du die Klasse in der die Methode definiert
ist angucken). 
Wenn Du den Kontext hast (und damit den Typ von a und b) weisst Du
auch welchen Typ x hat und somit weisst Du auch was "a+b" so machten
sollte. Das man Methoden vernünftige Namen geben muss ist eh klar -
wer das nicht tut schreibt auch in Java murks. 

Grüße, Jan

Thread-Anzeige einblenden

Anzeige