News Oracle veröffentlicht Java 7

noxon schrieb:
Also ich kann da aber was anderes berichten.
Ich musste letztens ein Programm schreiben, dass einen ringförmigen Barcode in einem 30 fps Kamerabild einliest. Dieser Ring konnte sich irgendwo auf dem Bild befinden und daher musste ich auf Dinge wie Farbfilter, Entstörungsfilter, Objekterkennung und andere Dinge zugreifen, wofür ich natürlich ein CV Framework genommen habe.

Mein erster Versuch war das Programm in Java zu schreiben, welches das OpenCV Framework verwendet. Das war das reinste Chaos sag ich dir. Da ist überhaupt nichts dokumentiert gewesen. Nichts hat funktioniert wie es sollte und die API war komplexer als sie es hätte meiner Meinung nach hätte sein müssen.
Sorry, was hat das mit der Sprache zu tun? Besch... dokumentierten Code gibt es in jeder Sprache. Ich bin zwar eher Hobby-Programmierer, hatte aber kürzlich ein Erlebnis der umgekehrten Art. Sauber kommentierter Java-Code, strukturiert programmiert. Als Alternative C#-Code, wo ich mir erst denken musste, was der Programmierer mir mitteilen möchte.

.NET-Sprachen haben natürlich durch den Fokus auf Windows andere Möglichkeiten als eine plattformunabhängige Sprache. Und wenn Microsoft in der nächsten Version von Visual Studio die IntelliSence-Funktion für C++/CLI wieder einbaut bin ich auch wieder glücklich damit ;-)
 
Zuletzt bearbeitet:
LersichL68 schrieb:
Sorry, was hat das mit der Sprache zu tun?
Das Thema, das SheepShaver angesprochen hat waren ja Frameworks die nicht direkt Bestandteil der Standardruntime sind. Ich wollte halt nur einmal von meinen persönlichen Erfahrungen berichten.

Aber ganz grob gesprochen kann man schon sagen, dass .NET die besseren Sprachfeatures hat, während Java das bessere Ökosystem vorweisen kann. Meiner Meinung nach entwickelt sich Java als Sprache allerdings viel zu langsam und das Ökosystem von .NET holt gewaltig schnell auf.
Alleine schon die Tatsache, dass es die Lambda Expressions immer noch nicht in Java 7 geschafft haben gibt mir doch sehr zu denken, ob der JCP die richtige Art und Weise ist eine Sprache voranzutreiben. Sprachen die von einzelnen Firmen entwickelt werden sind vielleicht nicht so demokratisch, aber legen zumindest ein deutlich schnelleres Tempo vor und sind auch sehr in sich konsistent.
 
Dann nochmals Entschuldigung ;). Und in der Tat scheint .NET um einiges dynamischer. Ich denke Microsoft schöpft da aus dem Vollen und hat die nötigen Ressourcen (nicht nur finanziell). Im Enterprise-Segment kenne ich mich nicht aus, aber aus Amateur-Sicht wäre Java wohl noch mehr unter Druck, wenn .NET plattformunabhängig wäre.
 
Neija es ist einfach eine gewisse Art der Ausrichtung, Microsoft will sich mit C# als hippe Sprache präsentieren, die auf jeden Zug aufspringt und Java wird eben mehr als "verlässliche Platform" gepflegt bei der neue Sprachfeatures erst reinkommen, wenn diese sich über Jahre hinweg bewährt haben und auch einen sehr deutlichen Vorteil für Java darstellen. Denn Java muss mit jeder Fehlentscheidung die sie machen für immer leben (absolute Abwärtskompatibilität), Microsoft hingegen kann in einer neuen Version sagen, dass sie diese Sprachfunktion einfach wieder rauswerfen, das ist dann kein Problem, weil jede Version eine eigene Runtime hat, bei Java ist es eine Runtime.
Wer mal "Effective Java" gelesen hat, der weiß ziemlich gut welche Fehlentscheidungen im Design Java heute noch aus Kompatibilitätsgründen mitschleppen muss, der größte Fehler war wahrscheinlich clone().
 
Dieses Problem hat eigentlich jede Sprache. Auch die .NET Sprachen. Du kannst praktisch nie wieder Features entfernen ohne die Sprache zu brechen. Die einzige mir bekannte Sprache die versucht diese Problem zu lösen ist Newspeak.
Microsoft ist auch immer sehr sehr vorsichtig bei den Entscheidungen, wenn es darum geht welche Features hinzugefügt werden und vor allen Dingen bei den Entscheidungen welche Features weg gelassen werden. Hinzufügen könne man praktisch alles, sagte mal der Chef Entwickler von C# Anders Hejlsberg. Die Frage wäre, was herausgelassen werden sollte.

Den größten Fehler den MS bisher ihrer Aussage nach gemacht hat war angeblich das Einführen der ArrayList. Eine Version des Frameworks später wurde die nämlich wieder durch die generische List abgelöst und die ArrayList ist jetzt einfach nur aus Abwärtskompatibilitätsgründen im Framework enthalten. Sie sollte aber eigentlich nicht mehr benutzt werden. Sie muss aber bis auf alle Ewigkeit drin bleiben, damit auch alte 2.0 Programme auch noch mit dem .NET >2.0 Framework laufen.

Der Grund warum sich Java langsamer entwickelt sehe ich eigentlich woanders drin. Zum einen denke ich, dass dieser Java Community Process etwas zu lange dauert, bis man da zu einer Entscheidung gekommen ist und zum anderen hat Java schwerer damit zu kämpfen neue Features zu integrieren, weil es auf die Plattformunabhängigkeit achten muss. Die JVM scheint mir auch etwas inkonsistenter konzepiert zu sein als die CLR, was mittlerweile wohl einige Probleme zu bereiten scheint.
Zum Beispiel die Tatsache, dass Strings bisher nicht in select Abfragen genutzt werden konnten hat eventuell was mit der Tatsache zu tun, dass die primitiven Datentypen keine echten Objekte sind. Ich könnte mir vorstellen, dass die .NET Implementation der select Abfrage deutlich einfacher war, da sich selbst Datentypen wie Integer oder String echte Objekte darstellen.
 
Zuletzt bearbeitet:
noxon schrieb:
Also ich kann da aber was anderes berichten...
Also noxon, gibs doch endlich zu, dass du für Microsoft arbeitest. :D
 
Ich hatte mir die Version 7.0 von Java auch installiert, doch jedes mal, wenn ich auf eine Webseite mit Java-Inhalt gegangen ist, hat sich mein PC mit Bluescreen aufgehangen.
Hat noch jemand diese Erfahrung gemacht?
Bin dann auf Version 6 Update 26 zurück, um das zu beheben....
Win 7 x64, Firefox 5 x86, Java x86 + x64
 
Zurück
Oben