Discussion:
[INFO] Java vs. C#, nächste Runde
(zu alt für eine Antwort)
Marco Schmidt
2003-09-16 10:42:40 UTC
Permalink
Über die Slashdot-Diskussion
<http://developers.slashdot.org/developers/03/09/15/2057209.shtml?tid=126&tid=156&tid=185&tid=190&tid=201>
bin ich auf einen weiteren Vergleich von Java, C#, C (zwei Compiler),
C++ (zwei Compiler) und D (?) gestoßen: "Windows Developer Network",
Fall 2003 Volume 2, Issue 13, "Does C# Measure Up?".

Auf <http://www.windevnet.com/wdn/webextra/2003/0313/> muß man sich
registrieren, um das 23-seitige gezippte PDF zu bekommen. Die
Emailadresse, die man dazu angibt, wird aber nicht verifiziert,
insofern kann man sich schnell zur Datei durchklicken. Inhaltlich kann
ich noch nichts dazu sagen.

Gruß,
Marco
--
Bitte nur in der Newsgroup antworten, nicht per Email!
de.comp.lang.java Homepage: http://www.dclj.de/
FAQ: http://www.faqs.org/faqs/de/comp-lang-java/faq/
Meine Java-Seiten: http://www.geocities.com/marcoschmidt.geo/java.html
Carl Rosenberger
2003-09-16 13:17:57 UTC
Permalink
Post by Marco Schmidt
"Does C# Measure Up?".
Ich finde die Diskussion über den Performanceunterschied
ausgesprochen langweilig. Als Entscheidungsgrundlage, welche
Sprache/Plattform ich für meine Entwicklungen einsetze, gibt
es für mich wesentlich wichtigere Kriterien.

Wir treffen gerade in diesem Moment eine Entscheidung, auf
welcher GUI-Basis ein db4o Browser entstehen wird. Er soll
sowohl in Java als auch in C# zur Verfügung stehen, als
auch auf möglichst vielen mobilen Geräten laufen. Bei den
Mobilen ist die WindowsCE/PocketPC/WindowsMobile2003
Plattform Priorität 1, einfach weil dort klar ist, welchen
"Dialekt" wir verwenden können. Es gibt nur einen der in
Frage kommt, das CompactFramework. Bei Java für Handhelds
und Handies ist es wesentlich schwieriger, eine Entscheidung
zu treffen, weil es so viele unterschiedliche Rahmenwerke gibt.
AWT, SWT, Swing und Symbian sind als mögliche Auswahl
offensichtlich, graphische Bibliotheken von Drittanbietern
gibt es wie Sand am Meer.

Um so portabel wie möglich zu bleiben, überlegen wir alle
Controls selber zu zeichnen. Dann brauchen wir nur auf
MouseEvents und auf #paint() zu reagieren und unser Code läuft
auf allem.

Dieses finanzielle und zeitliche Risiko, das Rad selbst neu zu
erfinden, nehmen professionelle Firmen sonst selten in Kauf.
Hier haben wir schon mal den allerwichtigsten Punkt für eine
Plattformentscheidung:
Planungssicherheit!

Damit geht die Liste der Kriterien für eine Entscheidung zwischen
C# und Java auf jeden Fall los:

(1) Planungssicherheit
Microsoft setzt voll auf .NET, mit allen Programmiersprachen, die
angeboten werden. Das wird reichen, um die Plattform für die
nächsten 10 Jahre gesund am Leben zu erhalten.
Bei Java gibt es Unwägbarkeiten. Wird Sun aufgekauft? Was macht IBM?
Bleibt die Plattform kostenlos? In welche Richtung geht es weiter?
Rein rechtlich gesehen ist es möglich, daß sich die Situation von
heute auf morgen dramatisch ändert. Meiner Meinung nach ist das hier
(2) Plattformen
Java läuft auf allem. Sobald man aber GUI programmiert, ist das
"läuft" mit einem großen Auskotzzeichen zu versehen. Was läuft auf
allem? AWT?, Swing?, kAWT?, SWT?
Ich finde auch SWT den falschen Weg.
Ich halte einen eigenen nicht-plattform-konformen Look, der auf
allen Plattformen gleich aussieht und 100% stabil funktioniert für
den besseren Weg. Es gehört etwas her wie Swing, nur schlanker,
schneller, hübscher und überall verfügbar.
C# läuft erstmal nur auf Microsoft, das ist aber bei PCs und Handhelds
schon ein marktfähiger Prozentsatz. Von den OpenSource-Projekten wie
Mono verspreche ich mir nicht sehr viel, lasse mich aber gerne
überraschen.


(3) IDEs
Eine leistungsfähige IDE kann die Entwicklungszeit halbieren. Eclipse
schlägt VS.NET um Längen. Die ganz großen Früchte der Plugin-Entwicklung
werden erst noch kommen. Eclipse ist sogar kostenlos. Bei VS.NET
ist die GUI-Entwicklung schon weiter (legitime Frage: im Vergleich zu
welchem Plugin?) Ausserdem kann ich mich mit VS.NET superbequem mit
meinem PocketPC/Emulator verbinden und Applikationen direkt debuggen.
Zugegeben, das geht mit Websphere Studio Device Developer ähnlich,
aber dieses J9-Gewurschtel ist heute alles noch nicht so ganz rund.
<Zwischenfrage>
Was kostet eine legale J9 Runtime?
Wo bekomme ich sie?
</Zwischenfrage>


(4) Bibliotheken
Die Java-Welt ist viel, viel, viel weiter. Ich tue mich aber immer schon
schwer, OpenSource langfristig in meine Projekte zu integrieren. Nichts
ist so richtig fertig und funktioniert perfekt. Wenn man sich dann endlich
mit einem Projekt gut auskennt, wird die Entwicklung bei 93% eingestellt
und man kann alles selbst pflegen. Dann wird der Aufwand schnell so hoch,
daß man auch gleich alles von null weg hätte schreiben können, perfekt
abgestimmt auf die eigenen Bedürfnisse. Von Microsoft ist zu erwarten, daß
sie weiter überall Ideen für Frameworks sammeln und sie fest in die .NET
Umgebung integrieren. So setzt man Standards. Skrupel und rechtliche Bedenken
scheint es da keine zu geben. Desto länger ich mit C# arbeite, desto mehr
wundere ich mich, daß sie mit einer 90% Kopie von Java rechtlich durchgekommen
sind. Wenn Microsoft dann mal eine Funktionalität zur Verfügung stellt, dann
kann man auch davon ausgehen, daß die Entwicklung einigermaßen schnell voran
geht und auch die Qualität zügig ein akzeptables Level erreicht. Zugegeben,
ich kann Bugs nicht selbst beheben. Dafür tut es aber Microsoft sehr zügig,
auf jeden Fall um Welten schneller als Sun bei Java. Nach einer Microsoft-
internen Initiative, sich viel mehr um Newsgroups zu kümmern, haben sie
jetzt auch wirklich ein weit offenes Ohr für Kundenbedürfnisse. In der
microsoft.*.compactframework Newsgroup posten die Entwickler selbst und man
bekommt sogar Interna über zukünftige Pläne zu hören. Die Qualität entspricht
aus meiner Sicht schon fast den Eclipse-Newsgroups.


Die Liste lässt sich bestimmt noch um eine ganze Reihe von Punkten verlängern,
bis man bei Performance ankommt.

Wen bitte interessiert Performance denn wirklich?
Falls es wirklich dramatisch kritische Bereiche gibt, dann kann man in beiden
Sprachen von Hand eine Bibliothek einbinden, die man in einer "schnelleren"
Sprache geschrieben hat. Dazu könnte man sogar wahlweise Java aus C# aufrufen
und umgekehrt.

Viel wichtiger als die Grundperformance der Sprache selbst erscheint es mir,
die Bottlenecks schnell identifizieren zu können. Mit der Verfügbarkeit eines
exakten guten Profilers holt man meiner Ansicht nach bei weitem mehr raus
als bei den paar Prozentpunkten, um die sich Java und C# unterscheiden.


Soll Java halt schneller sein, oder C#.
Mirdochegal.



Viele Grüße,
Carl
--
Carl Rosenberger
db4o - database for objects - http://www.db4o.com
Daniel Völkerts
2003-09-16 13:52:35 UTC
Permalink
Ich weiß, völlig OT aber ich musste es einfach loswerden. Er ist wieder da!
;)

Nach den schlappen Postings und Flames (s. XUL Guru) hält wieder Qualität
Einzug in dclj.
Ich persönlich freu mich, dass wir wieder einen Regular mehr haben.

Bitte mehr solcher Postings.

Gruß,
--
Daniel Völkerts
JKeySource Passwort Generator (http://www.voelkerts.de/projekte.php)
"This is not a black or white world..." | Live
Frank Radermacher
2003-09-16 15:09:21 UTC
Permalink
Post by Daniel Völkerts
XUL Guru
der XUL Geist von SMA gefiel mir besser. :-)

Frank
Daniel Völkerts
2003-09-16 15:30:48 UTC
Permalink
Frank Radermacher wrote:
| Daniel Völkerts wrote:
|
|| XUL Guru
|
| der XUL Geist von SMA gefiel mir besser. :-)
|
| Frank


Jepp. Falsche Wortwahl ;)

--
Daniel Völkerts
JKeySource Passwort Generator (http://www.voelkerts.de/projekte.php)
"This is not a black or white world..." | Live
Sven Köhler
2003-09-16 13:58:48 UTC
Permalink
Post by Carl Rosenberger
C# läuft erstmal nur auf Microsoft, das ist aber bei PCs und Handhelds
schon ein marktfähiger Prozentsatz. Von den OpenSource-Projekten wie
Mono verspreche ich mir nicht sehr viel, lasse mich aber gerne
überraschen.
Eben, und solange man kein C# programm schreiben kann welches unter
Linux _und_ Windows läuft - solange ist es meiner Meinung nach der
falsche Weg irgentwas für .NET zu programmieren. Wenn das mit dem
Linux-Hype so weiter geht, dann sind z.B. bald alle Verwaltungsrechner
in Deutschland auf Linux (ob das nun gut ist oder nich sei hier mal
egal, wir sind ja in der Java-Newsgroup).
Bernd Eckenfels
2003-09-17 16:40:51 UTC
Permalink
Hmm, warum? Ich schätze Java als Sprache die erstmal auf vielen
Platformen läuft.
Das tut C auch :)
Eine umfangreiche API bietet sich mir ebenfalls, wobei
auch nur von den Teilen, die in 100% Java implementiert sind, erwartet
werden kann, dass die überall gleich gut/schlecht arbeiten.
Und dann will man seine J2EE Anwendung dmit XDoclet ie EJB 2.x und JVM 1.4
benutzt unter WAS5 auf iSeries zum laufen bringen :) Oder auch nur nen Swing
Client auf DOS.

Gruss
Bernd
--
eckes privat - http://www.eckes.org/
Project Freefire - http://www.freefire.org/
Alexander Gran
2003-09-16 14:38:18 UTC
Permalink
Post by Carl Rosenberger
(2) Plattformen
Java läuft auf allem. Sobald man aber GUI programmiert, ist das
"läuft" mit einem großen Auskotzzeichen zu versehen. Was läuft auf
allem? AWT?, Swing?, kAWT?, SWT?
AWT, und Swing Auf allem was groß genug ist. Aber du willst doch sicher
keine Handheld-applikation 1-1 auf einen PC übertragen.
Post by Carl Rosenberger
Ich finde auch SWT den falschen Weg.
ACK.
Post by Carl Rosenberger
Ich halte einen eigenen nicht-plattform-konformen Look, der auf
allen Plattformen gleich aussieht und 100% stabil funktioniert für
den besseren Weg. Es gehört etwas her wie Swing, nur schlanker,
schneller, hübscher und überall verfügbar.
Swing kann hald extrem viel. Aber man kann nicht alles haben.
Post by Carl Rosenberger
werden erst noch kommen. Eclipse ist sogar kostenlos. Bei VS.NET
ist die GUI-Entwicklung schon weiter (legitime Frage: im Vergleich zu
welchem Plugin?) Ausserdem kann ich mich mit VS.NET superbequem mit
netbeans ;)
Post by Carl Rosenberger
(4) Bibliotheken
Die Java-Welt ist viel, viel, viel weiter. Ich tue mich aber immer schon
schwer, OpenSource langfristig in meine Projekte zu integrieren. Nichts
ist so richtig fertig und funktioniert perfekt. Wenn man sich dann endlich
Bei Microsoft / ClosedSource denn?
Post by Carl Rosenberger
abgestimmt auf die eigenen Bedürfnisse. Von Microsoft ist zu erwarten, daß
sie weiter überall Ideen für Frameworks sammeln und sie fest in die .NET
Umgebung integrieren. So setzt man Standards. Skrupel und rechtliche
Oder irgendwann wegen neuerer, "besserer" Ideen in die Tonne kloppen.
Post by Carl Rosenberger
Falls es wirklich dramatisch kritische Bereiche gibt, dann kann man in
beiden Sprachen von Hand eine Bibliothek einbinden, die man in einer
"schnelleren" Sprache geschrieben hat. Dazu könnte man sogar wahlweise
Java aus C# aufrufen und umgekehrt.
Ich weiß eh nicht, wo die Leute ein Problem haben. Ich möchte ein Programm
sehen, was "zu" langsam in java ist (und in was anderem schneller und
trotzdem lesbar), wo es nicht optimierbar ist...
Post by Carl Rosenberger
Viel wichtiger als die Grundperformance der Sprache selbst erscheint es
mir, die Bottlenecks schnell identifizieren zu können. Mit der
Verfügbarkeit eines exakten guten Profilers holt man meiner Ansicht nach
bei weitem mehr raus als bei den paar Prozentpunkten, um die sich Java und
C# unterscheiden.
ACK.

Alex
--
Some operating systems are called `user friendly',
Linux however is `expert friendly'.
Encrypted Mails welcome. Send spam to ***@gmx.net, please.
PGP-Key at http://zodiac.dnsalias.org/misc/pgpkey.asc | Key-ID: 0x6D7DD291
Tor-Einar Jarnbjo
2003-09-16 18:14:43 UTC
Permalink
Post by Carl Rosenberger
Ich finde die Diskussion über den Performanceunterschied
ausgesprochen langweilig. Als Entscheidungsgrundlage, welche
Sprache/Plattform ich für meine Entwicklungen einsetze, gibt
es für mich wesentlich wichtigere Kriterien.
Warum schreibst du dann so eine lange Antwort, wenn es dir langweilt? Ich
stimme dir in deinen Überlegungen zwar in den allen meisten Fällen zu, es
gibt aber auch Anwendungsfälle wo die Performance sehr wohl relevant sind.
Spätestens dann, wenn wir von fünf bis zehnfacher Laufzeit reden.

Gruß, Tor
Frank Radermacher
2003-09-16 18:52:20 UTC
Permalink
Post by Tor-Einar Jarnbjo
Warum schreibst du dann so eine lange Antwort, wenn es dir langweilt? Ich
stimme dir in deinen Überlegungen zwar in den allen meisten Fällen zu, es
gibt aber auch Anwendungsfälle wo die Performance sehr wohl relevant sind.
Spätestens dann, wenn wir von fünf bis zehnfacher Laufzeit reden.
Das stellt IMHO nicht den geringsten Widerspruch dar. Die Frage ist
wodurch und insbesondere an welcher Stelle deartige Performance
"verluste" auftreten. Genau da ist eben ein Profiler sehr wichtig.

Ich glaube nicht das es grundlegende Designunterschiede gibt die die
oben angegebenen Unterschiede hervorruft.

Frank
Tor-Einar Jarnbjo
2003-09-17 07:50:08 UTC
Permalink
Ich hatte noch nie mit dem ogg-Format zu tun und habe daher
recherchiert, womit ich wie dieses Format erzeuge. Interessanterweise
kann CDex, welches ich schon hatte dieses Format erzeugen und ich habe
spaßeshalber mal Fassade von Lacrimosa ge-ogg'd. Mit den
Grundeinstellungen entstehen 8 Dateien mit gerade mal 23 MB Größe -
nett. Offenbar ist das mit variabler Bitrate so um 64kbps kodiert.
Für mein ungeübtes Ohr klingt das Ergebnis so wie die CD, vielleicht
Ja, bei Bitraten unter 128kbps schneidet Vorbis gegeüber MP3 recht gut
ab. Darüber kann ich nicht wirklich viel Unterschied mehr hören.
minimal dumpfer... Der bei CDex beiliegende Player kann die Stücke
mit einer CPU-Belastung von ca. 3-7% unter Windows abspielen.
Ich habe mir das j-ogg-Paket gezogen und geschafft, den
Kommandozeilen-Player zu starten. Klingt genauso :) Ich erhalte eine
CPU-Belastung von 15-20%. Noch erträglich, aber deutlich höher. Ich
bilde mir ein, dass mit -server ca. 3% weniger verbraucht werden.
Ja, die Server-VM ist hier auch ein Bisschen schneller. Der Server-
Hotspot braucht aber länger um alle Methoden zu kompilieren, also ist er
am Anfang langsamer, wird aber nach einer Weile schon etwa 15% schneller
als die Client-VM. Komisch ist auch, dass nach -Xprof sind bei der
Server-VM einige Methoden viel schneller, andere Methode aber viel
langsamer (zwei bis dreifache Laufzeit), so dass unterm Strich nicht
allzu viel Mehrleistung rauskommt.
Compiled + native Method
22.1% 240 + 0 de.jarnbjo.vorbis.MdctFloat.imdct
20.4% 221 + 0 de.jarnbjo.vorbis.MdctFloat.kernel
10.2% 60 + 51 de.jarnbjo.vorbis.AudioPacket.<init>
9.8% 89 + 17 de.jarnbjo.vorbis.Floor1.computeFloor
6.7% 73 + 0
de.jarnbjo.util.io.ByteArrayBitInputStream.getInt 5.0% 54 +
0 de.jarnbjo.vorbis.AudioPacket.getPcm
42% der Rechenzeit werden also in einer Klasse verbraucht, die
restliche Zeit verrinnt irgendwo anders. Der Hotspot ist damit nicht
so klar, wie cih das gedacht hätte. Selbst wenn imdct 5x schneller
wäre, würde das nicht viel bringen, etwa 17% der Gesamtlaufzeit.
Die kernel-Methode in MdctFloat wird aber von imdct aufgerufen. Wenn ich
irgendwo sinnvoll optimieren sollte, denke ich, dass ich hier, wo
insgesamt über 40% der CPU-Zeit vergeht anfangen sollte.

Der Code stammt eigentlich aus der Referenzimplementierung libvorbis
(also in C geschrieben) und ist von mir nur für Java ein Bisschen
angepasst. Ich habe zwar "vom Scratch" einen IMDCT nach einer
mathematischen Beschreibung selbst implementiert, die aber viel langsamer
war als die eingesetzte Implementierung.
Bei der Methode fällt mir auf: Sie ist sehr lang. Versuche, sie kürzer
zu machen... überall wo ein //-Kommentar steht, ist dies ein zeichen
für eine eigene Methode. Vielleicht bringt das etwas.
Das habe ich gedankenlos aus dem C-Code übernommen. Der Grund dort war
wohl nur die Möglichkeit zu haben in dem {}-Block neue Variabeln zu
deklarieren. Ich habe es jetzt rausgenommen, aber für die Geschwindigkeit
spielt das keine Rolle.
Warum muss in
der Methode ganz am Anfang getestet werden, ob zwei Arrays evtl zu
klein sind? Kann man die nicht immer groß genug machen?
Doch. Hatte ich aber nicht als besonders kritisch eingestuft. Die Arrays
werden beim ersten Aufruf groß genug gemacht (n bleibt zur Laufzeit
konstant) und danach wird bei einer typischen Vorbis-Datei die Methode
etwa 88 Mal pro Sekunde aufgerufen. Am Anfang der Methode einfach die
Array-Länge zu prüfen sollte meiner Meinung nach nicht allzu viel
ausmachen. Habe ich übrigens noch geändert und es bringt nichts.
Und warum
berechnest du 4x n/2? Schließlich ist n eine privat Exemplarvariable
die jedes Mal neu ausgelesen wird - vermute ich mal.
Wo wird das gemacht?
Ansonsten fände
ich sprechendere Variablennamen ja nett. Was ist xx und xxx und o1
bis o4 usw?
Wie gesagt, ich habe den Code einfach übernommen. Ich hatte zwar vor eine
effizientere Java-Implementierung zu machen oder zu finden, aber ich habe
das noch nicht geschafft.
Zu dem Algorithmus kann ich nichts sagen. Sollten
wirklich Array-Zugriffe das Problem sein, wäre ein test mit der IBM-VM
interessant oder mit JET und der Option, die Boundchecks dort
auszuschalten.
Ich wollte schon länger die IBM-VM testen, für Windows kriegst du aber
nur ein 130MB Bundle mit irgendwelchen SDKs für Web-Services dazugepackt,
die ich nicht wirklich brauche. Mal sehen, ob ich nicht auf der Arbeit es
auf einer Linux-Kiste ausprobieren kann. Als "Benchmark" lässt sich
übrigens, sollte jemand testen wollen, ganz gut das Ogg2Wav-Tool, wenn
das Schreiben der Wav-Datei im Quell-Code auskommentiert wird:

//outFile.write(buffer, 0, read);


Gruß, Tor
Stefan Matthias Aust
2003-09-17 10:04:57 UTC
Permalink
Post by Tor-Einar Jarnbjo
Ja, bei Bitraten unter 128kbps schneidet Vorbis gegeüber MP3 recht gut
ab. Darüber kann ich nicht wirklich viel Unterschied mehr hören.
Wie wäre es mit einem pure-Java-ogg/vorbis-Player für Eclipse? :)
Post by Tor-Einar Jarnbjo
Ja, die Server-VM ist hier auch ein Bisschen schneller. Der Server-
Hotspot braucht aber länger um alle Methoden zu kompilieren, also ist er
am Anfang langsamer, wird aber nach einer Weile schon etwa 15% schneller
als die Client-VM.
Das spielt aber doch bei einem typischen Player, der eine CD mit 40-70
min abspielt, keine wirkliche Rolle. Selbst bei einzelnen Stücken von
3-9min nicht.
Post by Tor-Einar Jarnbjo
Die kernel-Methode in MdctFloat wird aber von imdct aufgerufen. Wenn ich
irgendwo sinnvoll optimieren sollte, denke ich, dass ich hier, wo
insgesamt über 40% der CPU-Zeit vergeht anfangen sollte.
Schon klar. Eventuell solltest du nicht versuchen, die für C-optimierte
Variante in java einzusetzen, sondern selbst mit dem Algorithmus nochmal
loszulaufen. Dazu kann ich nicht viel sagen. Ich höre zwar gerne
Musik, habe mir aber nie Gedanken gemacht, was wohl auf dem Weg von der
Datei bis zu meinem Ohr passiert.

Ich habe mal versucht, gcj auf den Player anzusetzen, doch da fehlen
Klassen für sounds in GNU classpath. JET probiere ich vielleicht mal
heute nacht.
Post by Tor-Einar Jarnbjo
Der Code stammt eigentlich aus der Referenzimplementierung libvorbis
(also in C geschrieben)
Stand da nicht auf der Webseite, dass die ausschließlich mit ints
arbeiten? Bei dir habe ich aber floats gesehen?
Post by Tor-Einar Jarnbjo
und ist von mir nur für Java ein Bisschen
angepasst. Ich habe zwar "vom Scratch" einen IMDCT nach einer
mathematischen Beschreibung selbst implementiert, die aber viel langsamer
war als die eingesetzte Implementierung.
Ach so.
Post by Tor-Einar Jarnbjo
Und warum
berechnest du 4x n/2? Schließlich ist n eine privat Exemplarvariable
die jedes Mal neu ausgelesen wird - vermute ich mal.
Wo wird das gemacht?
Ganz am Anfang der Methode.


bye
--
Stefan Matthias Aust // "Ist es normal, nur weil alle es tun?" -F4
Tor-Einar Jarnbjo
2003-09-17 11:21:37 UTC
Permalink
Algorithmus kann ich nichts sagen. Sollten wirklich Array-Zugriffe das
Problem sein, wäre ein test mit der IBM-VM interessant oder mit JET und
der Option, die Boundchecks dort auszuschalten.
Habe es jetzt unter Linux mit IBMs JDK1.4.1 gegen Suns JDK1.4.2_01
getestet. Ich habe eine Vorbis-Datei (235s, 128kbps) eingelesen und
nur im Speicher dekodiert, die Methode zwei Mal als Aufwärmung laufen
lassen und die durchschnittliche Laufzeit der folgenden vier
Durchläufe waren:

Sun -client: 7,9s
Sun -server: 5,6s
IBM : 5,9s

Gruß, Tor
Stefan Matthias Aust
2003-09-17 11:53:07 UTC
Permalink
Post by Tor-Einar Jarnbjo
Habe es jetzt unter Linux mit IBMs JDK1.4.1 gegen Suns JDK1.4.2_01
getestet. Ich habe eine Vorbis-Datei (235s, 128kbps) eingelesen und
nur im Speicher dekodiert, die Methode zwei Mal als Aufwärmung laufen
lassen und die durchschnittliche Laufzeit der folgenden vier
Sun -client: 7,9s
Sun -server: 5,6s
IBM : 5,9s
Denke ich falsch?

Wenn du ca. 6 sek brauchst, um 235 sek zu dekodieren, dann sind das
gerade mal 2,5% der Zeit (verteilt über die 235 Sekunden), die notwendig
sind, um das zu machen. Damit sollte das zum Abspielen bestenfalls 3-4%
CPU-Zeit verbrauchen und wäre dann genauso gut wie der CDex-Player.

Kann es sein, dass die eigentliche Musikausgabe die hohe Rechenzeit
verursacht?


bye
--
Stefan Matthias Aust // "Ist es normal, nur weil alle es tun?" -F4
Tor-Einar Jarnbjo
2003-09-17 21:34:46 UTC
Permalink
Post by Stefan Matthias Aust
Kann es sein, dass die eigentliche Musikausgabe die hohe Rechenzeit
verursacht?
Nein, es kann sein, dass ich es auf einem Linux-Server auf der Arbeit mit
vier 2,8GHz-Xeon-Prozessoren getestet habe. Ich denke, dass die CPU-
Auslastung von 2,5% nicht auf Desktop-Rechner übertragbar ist :)

(Hätte ich wohl eigentlich erwähnen sollen)

Gruß, Tor
Steve Ulrich
2003-09-17 18:07:16 UTC
Permalink
Ok. Ich biete als Beispiel den Vorbis-Dekoder von www.j-ogg.de an
Hmm... Die Seite ist down. Jetzt wollt ich grad mal reinschnüffeln und
schaun, ob ich auf Optimierungsmöglichkeiten finde.

Gruß

Steve
Tor-Einar Jarnbjo
2003-09-17 21:39:18 UTC
Permalink
Post by Steve Ulrich
Hmm... Die Seite ist down. Jetzt wollt ich grad mal reinschnüffeln und
schaun, ob ich auf Optimierungsmöglichkeiten finde.
Huch, was tut da ein Apache... Ist jetzt gefixt.

Gruß, Tor
Stefan Matthias Aust
2003-09-17 09:00:22 UTC
Permalink
(1.) Wir überlegen ein klitzekleines GUI Rahmenwerk für eine
Applikation zu bauen, die auf den folgenden Plattformen
- Java Desktop
- Java Mobile (PersonalJava dialekt, ungefähr J9 Foundation Profile)
- C# (.NET) Desktop
- C# (.NET) CompactFramework
- langfristig eventuell auch HTML Dialekte
(z.B. Servlets oder ASP.NET hinten und
Javascript oder JScript oder DHTML vorne)
Du sagtest, paint und Events und den rest selbstmachen. Dieser Ansatz
wird kaum für HTML und co funktionieren.
(2.) Wie sieht die rechtliche Lage für Java wirklich aus?
Meine Laienmeinung ist auf keinen Fall ausgereift. Kann es uns
passieren, daß uns der Hahn zugedreht wird?
- Microsoft kauft Sun und stellt Java ein.
- IBM kauft Sun und Java kostet auf einmal Geld.
- Oracle kauft Sun und Java gibt es nur noch als Bundle mit Ohrekel.
Das sind IMHO relativ irrationale Befürchtungen. Schon jetzt könntest
du gcj/gij benutzen (insbesondere du, der mit JDK 1.1 level zufrieden
ist). Und dann gibt es eben Compiler für jeve oder VMs für jiwi.
(3.) Wie sieht es bei den GUI-Rahmenwerken für die kompakten
Java-Plattformen aus? Gibt es da etwas, was sich durchsetzt, um
GUI zu schreiben?
Ich finde es komisch, dass du Microsofts Monopol und mangelnde Auswahl
als Vorteil nicht überlegen zu müssen hinstellst. Das Kompakt-FW passt
wirklich überall?
...er bekommt es in-VS.NET2003-fertig-eingebaut-mit-Emulator.
(Best Buy für kleine Beutel: MSDN Professional-3-Jahre-Ratenkauf
http://www.zoschke.com/products/Microsoft/MSDN/MSDN.asp )
Und da hast du bei Java angst, es könnte mal was kosten und bei MS kein
Problem damit, ein vergleichsweise teures Abo einzugehen?! Das ist
irrational.
Besonders super und vertrauenserweckend ist auch die PersonalJava
http://java.sun.com/products/personaljava/
"End of Life Preannouncement"
Ja, das ist in der Tat vertrauenserwechend. Die Stellen nicht einfach
ein Produkt ohne Vorankündigung ein, sondern weisen fair und rechtzeitig
darauf hin, dass veraltete Technologien wie PersonslJava schon lange
durch CDC und CLDC der J2ME abgelöst wurden und empfehlen die Migration
dahin.
(4.) Was gibt Neues bei Mono?
Hat mal wieder wer gekuckt? Stefan?
Ximian wurde von Novell gekauft. Mono ist jetzt ein von Novell
gefördertes Projekt. Ansonsten basteln die weiter vor sich hin, der
Schwerpunkt liegt darauf ASP zum Laufen zu bekommen und auf dem
GUI-Bereich ist das langfristige Ziel, Webmatrix unter Linux zum Laufen
zu bekommen, um so auch eine kostenlose ASP-Entwicklungsumgebung zu
bekommen. Microsoft könnte natürlich jederzeit ihn dessen
Lizenzbestimmungen einbauen, dass der Einsatz auf nicht-Windows-Rechnern
nicht gestattet ist und damit das ganze Unterfangen sinnlos machen.
GUI wär geil.
Für GUIs kann du so ziemlich jede existierende Bibliothek unter Linux
einsetzen, von GTK über Qt zu WX, Fox und eben auch basierend auf der
Winelib ein bisschen SWF. Selbst SWT wird portiert. Fertig ist aber
weder das eine noch das andere.

Mono ist aber kein Geschwindigkeitsriese. Es fehlen doch etliche Java
VM-Entwicklungserfahrung, um auch in nicht trivialen Microbenchmarks
Performance zu erzielen.

Dafür soll man das GNU-Gegenprodukt zu Mono, pnet, sogar auch für den
Zaurus kompilieren können und hätte so den ersten Grundstein für ein
Compact-FW für .NET.
(5.) GUI-Plugins für Eclipse?
Ich weiß, ein wirklich dauerhaft verwendbarer graphischer Editor für
hohe Ansprüche bei OO-Programmierung ist Utopie. Da kommt auch VS.NET
ganz und gar nicht hin. Wenn man komplette eigene Controls schreiben
will, ist WYSIWYG einfach nicht drin.
(Warum eigentlich nicht?)
Weil die Editoren falsch ansetzen. Man will nicht eine GUI-Beschreibung
(grafisch) editieren, sondern IMHO sollte man das GUI der laufenden
Anwendung selbst bauen können - also die Anwendung muss ihr eigenen
GUI-Builder sein.
(7.) Was kostet eine legale J9 Runtime?
Wo bekomme ich sie?
IBM verkauft das WSDD für ca. 500EUR, ist da eine J9-Lizenz bei? Ich
kann aber nur die zweite Frage beantworten: Bei IBM :)


bye
--
Stefan Matthias Aust // "Ist es normal, nur weil alle es tun?" -F4
Stefan Matthias Aust
2003-09-17 09:57:52 UTC
Permalink
Du meinst Objekte werden objektabhaengig gerendert (Controls)
und durch den Benutzer dynamisch zusammengestellt (GUI-Builder)
und die "Zusammenstellung" (Anwendung)
als neues Objekt weggeschmissen oder gesichert?
Ja, so ungefähr. Die Unterscheidung zwischen Design-Modus (Editieren,
Compilieren) und Ausführungsmodus muss entfallen. Dann brauche ich auch
keine komplizierten Editoren, die sich damit abquälen müssen, zur
Design-Zeit Komponenten nachzuladen, Code zu generieren oder mangelnde
Funktionen haben, weil man ggf. einfach ein Command-Fenster zu seinem
GUI aufmacht und "(ui clone allSubviewsDo: [|v| v color: #red]) saveAs:
'redview'" eingibt. Derartige Manipulationsmöglichkeiten fand ich bei
Self sehr interessant.


bye
--
Stefan Matthias Aust // "Ist es normal, nur weil alle es tun?" -F4
Frank Radermacher
2003-09-17 10:03:40 UTC
Permalink
"(ui clone allSubviewsDo: [|v| v color: #red]) saveAs: 'redview'"
Ist das Selfsyntax?
Derartige Manipulationsmöglichkeiten fand ich bei Self sehr interessant.
Auf was fuer einem System hast Du Self getestet?

Frank
Stefan Matthias Aust
2003-09-17 10:29:21 UTC
Permalink
Post by Frank Radermacher
"(ui clone allSubviewsDo: [|v| v color: #red]); saveAs: 'redview'"
Ist das Selfsyntax?
Ja. Würde

View v = ((View) ui.clone();
v.allSubViewsDo(new Block() {
public void call(Object v) {
((View) v).setColor("red");
}
});
v.saveAs("redview");

entsprechen.
Post by Frank Radermacher
Derartige Manipulationsmöglichkeiten fand ich bei Self sehr interessant.
Auf was fuer einem System hast Du Self getestet?
Solaris. Lange Jahre gab es das System nur für Solaris. Inzwischen ist
auch eine offizielle Version für MacOSX verfügbar
(http://research.sun.com/self/release_4.2/release.html) und für Linux...
nein warte, ich sehe gerade auch eine Windows-Version... beide sind
aber älter und basieren wohl auf Self 4.1. Insebsondere haben sie nicht
die original-hotspot-Compilertechnologie weil diese damals in
Sparc-Assembler realisiert wurde und man sich schwer tat, das zu
portieren. Man bedenke, das System wurde das letzte Mal 1995 angefasst.


bye
--
Stefan Matthias Aust // "Ist es normal, nur weil alle es tun?" -F4
Carl Rosenberger
2003-09-17 10:28:33 UTC
Permalink
Post by Stefan Matthias Aust
Du sagtest, paint und Events und den rest selbstmachen. Dieser Ansatz
wird kaum für HTML und co funktionieren.
Das stimmt. Für HTML dürfte die Funktionalität aber eingeschränkt
sein. Ein "Viewer" würde ausreichen, während für die anderen
Plattformen ein "Editor" notwendig ist. Ich stelle mir das vom
Prinzip her so ähnlich vor wie auch schon in dem bereits bestehenden
Programm.
Post by Stefan Matthias Aust
(2.) Wie sieht die rechtliche Lage für Java wirklich aus?
Meine Laienmeinung ist auf keinen Fall ausgereift. Kann es uns
passieren, daß uns der Hahn zugedreht wird?
- Microsoft kauft Sun und stellt Java ein.
- IBM kauft Sun und Java kostet auf einmal Geld.
- Oracle kauft Sun und Java gibt es nur noch als Bundle mit Ohrekel.
Das sind IMHO relativ irrationale Befürchtungen. Schon jetzt könntest
du gcj/gij benutzen (insbesondere du, der mit JDK 1.1 level zufrieden
ist). Und dann gibt es eben Compiler für jeve oder VMs für jiwi.
Ich wünsche mir, daß Du Recht hast.

Es hat aber auch in der Vergangenheit schon manchmal Erdrutsche
gegeben, die die Landschaft auf den Kopf gestellt haben.

Zum Beispiel hat MS voll auf Java gesetzt und es dann wieder sein
gelassen. Ich würde ungern von sowas komplett überrascht werden.
Post by Stefan Matthias Aust
Ich finde es komisch, dass du Microsofts Monopol und mangelnde Auswahl
als Vorteil nicht überlegen zu müssen hinstellst. Das Kompakt-FW passt
wirklich überall?
Gute Frage.
Post by Stefan Matthias Aust
Und da hast du bei Java angst, es könnte mal was kosten und bei MS kein
Problem damit, ein vergleichsweise teures Abo einzugehen?! Das ist
irrational.
Warum?
Ich weiß was ich langfristig bekomme und kann mich darauf einstellen.

Beim MS Abo bekomme ich alle Betriebssystem dazu und kann sie legal
auf beliebig vielen Rechnern für Entwicklungszwecke einsetzen.

Zum Testen sind auch Backoffice-Komponenten dabei
(die ich nicht brauche).

In Anbetracht der Menge qualitativ ausreichender Software, mit der ich
legal arbeiten kann, finde ich den Preis angemessen.

(Hässlich: Seit ich von NT4 auf W2K umgestiegen bin, ist mein Rechner
nicht mehr stabil. Beim Service-Pack und Fixes auf- und abspielen geht
mal dieses nicht und dann wieder jenes nicht. Es ist ein Glückspiel,
eine Kombination zu finden, in der alles läuft, was man verwendet.)
Post by Stefan Matthias Aust
http://java.sun.com/products/personaljava/
"End of Life Preannouncement"
Ja, das ist in der Tat vertrauenserwechend. Die Stellen nicht einfach
ein Produkt ohne Vorankündigung ein, sondern weisen fair und rechtzeitig
darauf hin, dass veraltete Technologien wie PersonslJava schon lange
durch CDC und CLDC der J2ME abgelöst wurden und empfehlen die Migration
dahin.
Das ist für einen Entwickler vertrauenserweckend. Für einen
Business-Entscheider ist eine Seite in dieser Aufmachung ein
absolutes K.O.-Kriterium.
Post by Stefan Matthias Aust
(4.) Was gibt Neues bei Mono?
Ximian wurde von Novell gekauft. Mono ist jetzt ein von Novell
gefördertes Projekt. Ansonsten basteln die weiter vor sich hin, der
Schwerpunkt liegt darauf ASP zum Laufen zu bekommen und auf dem
GUI-Bereich ist das langfristige Ziel, Webmatrix unter Linux zum Laufen
zu bekommen, um so auch eine kostenlose ASP-Entwicklungsumgebung zu
bekommen. Microsoft könnte natürlich jederzeit ihn dessen
Lizenzbestimmungen einbauen, dass der Einsatz auf nicht-Windows-Rechnern
nicht gestattet ist und damit das ganze Unterfangen sinnlos machen.
Danke für das Update.
Ich glaube, Du hast hier auch schon ein paar Mal Deine Befürchtung
gepostet, daß Microsoft erst dann mit Lizenz-Einwänden kommen wird,
wenn Mono fertig ist.
Post by Stefan Matthias Aust
GUI wär geil.
Für GUIs kann du so ziemlich jede existierende Bibliothek unter Linux
einsetzen, von GTK über Qt zu WX, Fox und eben auch basierend auf der
Winelib ein bisschen SWF. Selbst SWT wird portiert. Fertig ist aber
weder das eine noch das andere.
Ich will aber nicht "jede" existierende Bibliothek einsetzen.
Ich will *eine* Bibliothek haben, die mir als quasi-Standard
Sicherheit gibt.
Post by Stefan Matthias Aust
Dafür soll man das GNU-Gegenprodukt zu Mono, pnet, sogar auch für den
Zaurus kompilieren können und hätte so den ersten Grundstein für ein
Compact-FW für .NET.
Nö.
Damit hat man ein proprietäres System für den Zaurus.
Post by Stefan Matthias Aust
Wenn man komplette eigene Controls schreiben
will, ist WYSIWYG einfach nicht drin.
(Warum eigentlich nicht?)
Weil die Editoren falsch ansetzen. Man will nicht eine GUI-Beschreibung
(grafisch) editieren, sondern IMHO sollte man das GUI der laufenden
Anwendung selbst bauen können - also die Anwendung muss ihr eigenen
GUI-Builder sein.
Ich sehe das ganz genauso. Bei einem guten GUI-System müssten die
Development-Features bereits fest in die Komponenten eingebaut
sein. Man will die Applikation nie anhalten müssen, sondern
einfach Controls hinzufügen und verdrahten, während sie laufen.

So schwierig sollte es eigentlich gar nicht sein, so etwas zu bauen.
Während der Entwicklung könnte man mit einem voll interpretierten
System arbeiten.
Post by Stefan Matthias Aust
(7.) Was kostet eine legale J9 Runtime?
Wo bekomme ich sie?
IBM verkauft das WSDD für ca. 500EUR, ist da eine J9-Lizenz bei? Ich
kann aber nur die zweite Frage beantworten: Bei IBM :)
Danke. Ich habe mich schon ein paar Mal durch die WSDD Seiten geklickt
und noch nie Preise gefunden.


Viele Grüße,
Carl
Stefan Matthias Aust
2003-09-17 12:16:21 UTC
Permalink
Post by Carl Rosenberger
Post by Stefan Matthias Aust
Das sind IMHO relativ irrationale Befürchtungen. Schon jetzt könntest
du gcj/gij benutzen (insbesondere du, der mit JDK 1.1 level zufrieden
ist). Und dann gibt es eben Compiler für jeve oder VMs für jiwi.
Ich wünsche mir, daß Du Recht hast.
Es hat aber auch in der Vergangenheit schon manchmal Erdrutsche
gegeben, die die Landschaft auf den Kopf gestellt haben.
Ja und du glaubst ernsthaft, das du da bei Microsoft vor geschützt bist?
Frag doch mal all die VB6-Programmierer, die jetzt auf .NET umsteigen
müssen? Oder allgemein den Windows-Programmierern, denen einfach immer
wieder neue APIs vorgesetzt werden ohne das man sie zu irgendeinem
Zeitpunkt beteiligt? Bei Java hast du die Chance, dich an der
Entwicklung neuer APIs aktiv zu beteiligen. Bei Microsoft erfährst du
einfach nur, dass man mit API-X wohl ins Klo gegriffen hat und jetzt
API-Y angesagt ist. Zumindest unterstützt Microsofot X normalerweise
noch eine Weile, aber dadurch wird's auch nicht einfacher, denn wer sagt
dir, was von den Tausenden von Funktionen nun der richtige Ansatz ist,
wenn du ohne das ganze jahrelang mitzuverfolgen einmal mal naiv im MSDN
suchst? Die Idee von "deprecated" APIs wurde meines Wissens auch so
explizit das erste Mal von Java der breiten Masse als Idee eingeimpft.
Ich denke nicht, dass dir das VS.NET bei einer Funktion, wenn du sie im
Editor hinschreibt sagt, dass diese deprecated ist... oder können die
das mitlerweile auch?
Post by Carl Rosenberger
Zum Beispiel hat MS voll auf Java gesetzt und es dann wieder sein
gelassen. Ich würde ungern von sowas komplett überrascht werden.
Kannst du nicht verhindern. Niemals, wenn du nicht auf eine eigene
quelloffene Sprache setzt und bereit bist, diese notfalls selbst an neue
OS-Versionen anzupassen.
Post by Carl Rosenberger
Post by Stefan Matthias Aust
Ich finde es komisch, dass du Microsofts Monopol und mangelnde Auswahl
als Vorteil nicht überlegen zu müssen hinstellst. Das Kompakt-FW passt
wirklich überall?
Gute Frage.
Na, die Antwort ist doch wohl offenbar nein.

Ich finde, du misst mit zweierlei Maß. Bei Sun bist du irritiert, das
die dich warnen, dass ein API demnächst obsolet wird - es aber schon
lange ein Nachfolge API gibt und bei Microsoft vertraust du (blind)
darauf, dass diese nicht einfach ihre Meinung ändern - wohl sie das
schon öfters gemacht haben. Wieviele Versuche brauchten sie, um ein für
Spiele geeignetes API zu bauen? Ich glaube drei bis dann DirectX soweit
war, dass es nur noch erweitert aber nicht mehr geändert werden musste.
Und was ist mit OLE, ActiveX, OCX, wo man immer mal wieder umbenannt
und nachgebessert hat? Oder ASP, welches jetzt inkompatibel durch
ASP.NET ersetzt wird oder VB6, welches inkompatibel durch VB.NET ersetzt
wird?

Zufällig heißt es gleich, aber das ist einfach eine Marketing-Lüge und
wer diese nicht erkennt (ja vermutet) hat seine Hausaufgaben nicht
gemacht. Ob man sich trotzdem darauf einstellt, ist ja eine ganz andere
Sache. Aber mal sollte sich zumindest bewußt sein, wo man wie angelogen
und betrogen wird - überall - bei allen Herstellern.
Post by Carl Rosenberger
Warum?
Ich weiß was ich langfristig bekomme und kann mich darauf einstellen.
Das ist genauso langfristig wie Bill eine neue Idee hat oder Microsoft
meint, anders ist es doch besser? Müssen die jetzt ActiveX aus dem IE
ausbauen weil sie doch diesen Patentstreit verloren haben? Vielleicht
stoßen die lieber tausende Entwickler von Lösungen, die auf diese eh
inherent unsichere Web-Technologie gesetzt haben, vor den Kopf als das
sie Millarden zahlen. Es gab mal eine Zeit, da hat der IE auch
Netscape-Plugins unterstützt. Darauf hatte die Firma ObjectArts gesetzt
und ein Smalltalk-Plugin für NS und IE gebaut. Dann hat Microsoft "über
Nacht" beschlossen, dass man diese Schnittstelle nicht weiter
unterstützt will und prompt war sowohl die Firma als auch all deren
Kunden abgeschnitten. Pech...
Post by Carl Rosenberger
Beim MS Abo bekomme ich alle Betriebssystem dazu und kann sie legal
auf beliebig vielen Rechnern für Entwicklungszwecke einsetzen.
Scheiß 'drauf. Zusammen mit Java kannst du dir Linux kostenlos laden.
Was ist das für ein Argument? Du sagt, hey, ich muss was bezahlen, aber
ich bekomme ja auch viel mehr. Das ist doch für diese Diskussion egal,
ob man dir eine Windows-Lizenz gibt oder nicht. Es ging darum, Sun Java
einfach fallen lässt oder Microsoft einfach C# fallen lässt.
Post by Carl Rosenberger
Zum Testen sind auch Backoffice-Komponenten dabei
(die ich nicht brauche).
Bei Sun bekommst du Solaris und JavaOne und noch ein Office-Paket
kostenlos... oder gegen Geld. Brauchst du auch alle nicht, ist alles
irrelevant.
Post by Carl Rosenberger
(Hässlich: Seit ich von NT4 auf W2K umgestiegen bin, ist mein Rechner
nicht mehr stabil. Beim Service-Pack und Fixes auf- und abspielen geht
mal dieses nicht und dann wieder jenes nicht. Es ist ein Glückspiel,
eine Kombination zu finden, in der alles läuft, was man verwendet.)
Kann ich nicht nachvollziehen - hatte nie NE aber W2K ist stabil. Mein
XP-Rechner im Büro hat 'ne Macke aber das ist das Mainboard - außer XP
hat einen Sensor ob ich auf's Mainboard drücke und dann die Funktion,
dann abzustürzen.
Post by Carl Rosenberger
[EOL-Warnung]
Das ist für einen Entwickler vertrauenserweckend. Für einen
Business-Entscheider ist eine Seite in dieser Aufmachung ein
absolutes K.O.-Kriterium.
Ein Entscheider, der so wenig Sachverstand hat, sollte sich entscheiden,
keine Entscheidungen mehr zu treffen oder sich mehr mit der Materie
beschäftigen. Das wäre besser für alle.
Post by Carl Rosenberger
Danke für das Update.
Ich glaube, Du hast hier auch schon ein paar Mal Deine Befürchtung
gepostet, daß Microsoft erst dann mit Lizenz-Einwänden kommen wird,
wenn Mono fertig ist.
Ausgeschlossen ist es nicht. Miguel sagte gerade neulich, er glaubt es
nicht, da a) Microsoft das beim Core-API (was aber zum Entwicklen
.NET-kompatibler Software nicht ausreicht) die Nutzung freigegeben hat
und b) Novell ein größerer Laden ist, der sich zur Not besser als Ximian
gegen Microsoft wehren kann und (meine Ergänzung) ja auch eigene Patente
zum Tausch anbieten könnte.
Post by Carl Rosenberger
Ich will aber nicht "jede" existierende Bibliothek einsetzen.
Ich will *eine* Bibliothek haben, die mir als quasi-Standard
Sicherheit gibt.
Ach, Auswahl ist schlecht und Bindung an ein proprietäres System (auf
einmal ist die Angst der Abhängigkeit vergessen?!) ist okay?
Post by Carl Rosenberger
Post by Stefan Matthias Aust
Dafür soll man das GNU-Gegenprodukt zu Mono, pnet, sogar auch für den
Zaurus kompilieren können und hätte so den ersten Grundstein für ein
Compact-FW für .NET.
Nö.
Damit hat man ein proprietäres System für den Zaurus.
proprietäres = herstellerspezifisch. Das ist nicht gegeneben, da pnet
ja freie Software ist. Damit ist deine Schlussfolgerung falsch.
Post by Carl Rosenberger
Ich sehe das ganz genauso. Bei einem guten GUI-System müssten die
Development-Features bereits fest in die Komponenten eingebaut
sein. Man will die Applikation nie anhalten müssen, sondern
einfach Controls hinzufügen und verdrahten, während sie laufen.
So schwierig sollte es eigentlich gar nicht sein, so etwas zu bauen.
Während der Entwicklung könnte man mit einem voll interpretierten
System arbeiten.
So sehe ich das auch... lass uns darüber reden :)


bye
--
Stefan Matthias Aust // "Ist es normal, nur weil alle es tun?" -F4
Frank Buss
2003-09-17 14:14:43 UTC
Permalink
from Tkinter import *
from ImageTk import PhotoImage
import Image
root = Tk()
root.title('Hallo Welt!')
label=Label(text='Test')
label.pack()
huch, war ein Copy-And-Paste Fehler von meiner Seite, die Image-Library
braucht man natürlich nicht, nur um ein Label anzuzeigen. Das geht
ultimativ kurz so:

from Tkinter import *
root = Tk()
Label(text='Test').pack()

Man betrachte dagegen dasselbe in Java, was dreimal so lang ist:

import java.awt.*;

class T extends Frame {
public T() {
add(new Label("Test"));
pack();
setVisible(true);
}
public static void main(String a[]) {
new T();
}
}
--
Frank Buß, ***@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Stefan Matthias Aust
2003-09-17 14:53:10 UTC
Permalink
[Rant gegen meine Pro-Microsoft-Monokultur Argumente]
Danke Stefan, die Stories kenne ich im Prinzip auch alle,
ich hatte sie aber wohl verdrängt. In der Tat ist bei
Microsoft ganz extrem viel Mist passiert.
Ich wäre trotzdem der Meinung, daß man bei .NET relativ
gesehen auf der sicheren Seite ist, weil Microsoft
*komplett* darauf setzt
...sagt Carl, der zuvor Microsoft vorgeworfen hat, dass die komplett auf
Java setzen und dann wieder umgeschwenkt sind...
und dabei schon alle VB und ASP
Entwickler von den Kopf stösst. MS baut mit .NET die
ganze Architektur um und sie machen es gründlich und
qualitativ akzeptabel. Ich halte einen Rückzieher in
absehbarer Zeit für ganz extrem unwahrscheinlich.
Wenn du das extrem streichst, mag ich das akzeptieren. Trotzdem, wenn
ich aus dem Bauch heraus entscheiden sollte, ob ich eher Microsoft, IBM
oder Sun trauen sollte, ich würde nicht Microsoft wählen. Und auch
nicht IBM...
...wenn ich es mir genau überlege ungefähr gleich
unwahrscheinlich wie eine plötzliche Nichtverfügbarkeit
eines kostenlosen Java.
Tatsächlich gibt es mit GCJ und CLasspath schon mehr und ausgereifteres
freies Java als mit Mono für .NET. Allerdings wird da mit kommerziellem
Interesse von Ximian dran gearbeitet, während gcj und co. freiwillig und
freizeitlich gebaut werden.

Vielleicht genauso wichtig ist aber, dass es mit Jikes einen weiteren
freien java-Compiler gibt und dann gibt es natürlich den (wohl besten,
jedenfalls hat er mindestens einen Fehler weniger als javac bei der
Initialisierung wechselweise aufeinanderverweisender Klassen)
Java-Compiler von Eclipse, der ja auch als Kommandozeile funktionieren
würde. und IBM hat mit der Jikes-Reasearch-VM eine komplette in Java
geschriebene moderne Java-VM, die sie sich glaube ich nur aus
politischen Gründen nicht trauen, für Windows zu portieren.

Mit ein paar Geburtswehen könnte man denke ich relativ schnell komplett
auf Suns JDK verzichten. Nur die Performance wird erstmal wieder leiden
und auch diverse featuers von JDK 1.4 fehlen noch. Aber zumindest
serverseitig, wo es eh nur auf Tomcat, Struts usw. ankommt, ist gar kein
Problem.
Ja, in der Tat, das sehe ich so.
Mit Microsoft bilde ich mir ein, weniger Arbeit bei der Wartung
und beim Zusammensuchen von Komponenten zu haben.
Also fast jede Woche installiere ich schweißgebadet in Panik den neusten
Fix für IE und co. Ich wage nicht, das .NET-FW komplett mit IIS zu
installieren, alles nur, weil irgendeine Software IE oder IIS einbetten
könnte und dann Sicherheitslücken aufweist, die ich nicht haben will.
Das nenne ich keine einfache Wartung, dass ich verdammt viel und
unnötige Arbeit.

Ausserdem läuft
- VS.NET (wohl doch noch die beste C# Entwicklungsumgebung)
Wozu brauche ich die beste C# Entwicklungsumgebung, wenn ich gar nicht
auf .NET setzen würde. Kein Argument für .NET.
- ActiveSync (sonst komme ich nicht auf PocketPC)
Das ist dann ein Problem des PocketPCs. Mit Palm ginge es auch unter
MacOS oder Linux.
- Outlook + Outlook-Express (zugegegen war das vor Jahren vielleicht
nicht die beste Entscheidung für ein Mailprogramm, aber der Zug ist
erstmal abgefahren, ich brauche mein Archiv aus rund 3000
Kunden-Emails.)
Das ist ja schon mal gar kein Argument. Erst die Software einsetzen, die
wohl für 80% (oder wohl mehr) oder mehr allen Spam- und Virus-Mail
aufkommens verantwortlich ist und dann noch weinen...

Wer bitte mit einer solchen ungepatchen Virenschleuder ausgestattete
User versickt übrigens mit meiner Domain immer Würmer, auf dass genauso
gehirnamputierte Virenchecker, die wissen könnten, das die
Absendeadresse gefakt ist, mir täglich den Posteingang vollmüllen, dass
"meine" Viren nicht verschickt werden konnte.

Outlook gehört verboten!
Ich halte auch die Entscheidung der öffentlichen Verwaltung, auf
Linux zu setzen, für die teurere Option, aufgrund des Mehraufwands
für Schulungen und Wartung.
Ich halte sie für richtig. Das Schulungsargument ist ein Witz. Wenn
sich die Leute, die das System für die Anwender konfigurieren, mühe
geben, sehen die Anwender kaum, dass es nicht Windows ist und die
Bedienung ist (sogar inzwischen per Studie) belegter Maßen nicht
schwerer zu erlernen.

Die Administration kann zentral und von geschultem Personal erfolgen
wodurch es wesentlich einfacher wird. Das heißt natürlich auch billig.
Statt 20.000 "Powerusern", die ihre Einzelplatzsystem in bester Absicht
verkonfigurieren, können wenige Leute (die dann auch als spezialisten
gerne etwas mehr kosten dürfen) ein funktionierendes System am laufen
halten. Was sind wohl 20.000x nur je 1h pro Woche an Arbeitszeit und an
Geld?

Desweiteren - was ich für wichtiger halte - macht sich der deutsche
Staat so nicht von einem amerikanischen Konzern abhängig. Wer sagt
denn, dass ansonsten nicht der CIA nur mal schauen will, was so seine
Freunde und besten Bundesgenossen in schweren Zeiten so planen.

Letztendlich kommt durch die Umstellung auf eine Nicht-Windows-Plattform
Java als Sprache für Anwendungen zu Geltung. Alleine das ist aus meiner
eigennützigen Sicht interessant und hat hoffentlich eine Signalwirkung.
Wenn George Bush die Welt endlich komplett erobert und uns mit
unserer Abhängigkeit von Microsoft erpresst, kann es in 10 Jahren
schon wieder ganz anders aussehen.
Und ich hoffe (denn die Hoffnung stirbt bekanntlich zuletzt) dass duch
wenigsten eine Leute in unserer Regierung doch über den nächsten
Wahltermin hinausschauen können.
Es lag an ZoneAlarm Pro. Der ist ausgeschaltet auch noch eingeschaltet.
Deinstalliert ist mein System wieder gesund.
Nimm XP - das hat 'ne eigene Firewall. Oder besser ein dediziertes
System, was das besser kann, als ein Windows-Desktop-Rechner. In
Tresoren baut man ja auch keine Sperrholz/Presspappe-Türen ein. Das mit
Zonealarm hatte ich auch mal festgestellt.
Post by Stefan Matthias Aust
Ein Entscheider, der so wenig Sachverstand hat, sollte sich entscheiden,
keine Entscheidungen mehr zu treffen oder sich mehr mit der Materie
beschäftigen. Das wäre besser für alle.
Ich finde, der Entscheider hätte Recht.
Ich bleibe dabei: Jemand, der sich sofort von Prospekten und
Werbaussagen blenden lässt statt sich fundiert seine eigene Meinung zu
bilden oder zumindest seine Grenzen zu kennen, verdient seinen Posten
als Entscheider nicht.
Sun's Politik bei den "kleinen" Plattformen ist eine Katastrophe.
Die "Referenzimplementationen" werden nicht produktreif gemacht.
Falsch. Suns (genauer JavaSofts - falls die Java-Division noch so
heißt) Aufgabe ist genau das: Referenz-Implementierungen zu erstellen.
Sie haben gerade nicht das Ziel und die Aufgabe, Produkte zu schaffen.

Wenn du das erkannt hast, dann erfüllen sie ihre Aufgabe sehr gut.
Stattdessen gibt es 17 verschiedene Spezifikationen, ohne
ernstzunehmende Implementation. "IBM wird es mit der J9 schon
richten", denken die sich wohl.
Firmen wie IBM und die mit Jeode sind es, die die Produkte nach
Sun-Lizenz entwickeln sollen. Sun kann und soll nicht alles alleine machen.

Offenbar ist die Denke "Microsoft als Einheit für Plan, Spec, Impl,
Marketing und Kunden für Dumm verkaufen" schon so verhaftet, dass der
offene Prozess von getrennt enwickelten gemeinsamen Specs und dann
verschiednen darauf aufbauenden Produkten als unangenehm empfunden wird.
Post by Stefan Matthias Aust
Post by Carl Rosenberger
Ich will aber nicht "jede" existierende Bibliothek einsetzen.
Ich will *eine* Bibliothek haben, die mir als quasi-Standard
Sicherheit gibt.
Ach, Auswahl ist schlecht und Bindung an ein proprietäres System (auf
einmal ist die Angst der Abhängigkeit vergessen?!) ist okay?
Lieber ein Löwe als zweihundert Ratten.
Ich kann nur sagen: Ratten sind mir lieber, denn sie können mir einzelnd
nie gefährlich werden. Der Löwe kann mich fressen und das mag ich nicht.
Sogar Property-Windows und ähnliche Controls, um das Verhalten
der Controls zu steuern, würde man in der eigenen Sprache
schreiben.
Interpretiert könnte man an der paint-Methode basteln und sich
sofort ansehen, wie es aussieht, völlig ohne Kompilierung.
Ja, ich glaube, das muß gebaut werden.
Ich sach' doch...


bye
--
Stefan Matthias Aust // "Ist es normal, nur weil alle es tun?" -F4
Stefan Matthias Aust
2003-09-17 14:56:09 UTC
Permalink
Sowas gibt es doch schon mit Python und Tkinter, da kannst du interaktiv
from Tkinter import *
from ImageTk import PhotoImage
import Image
root = Tk()
root.title('Hallo Welt!')
label=Label(text='Test')
label.pack()
und siehst bei jedem Schritt die aktuelle Änderung. Fühlt sich an wie die
Logo-Umgebung früher auf dem C64'er, wenn man damit experimentiert :-)
Das ist längst nicht, wo ich hin will. Wie kannst du denn jetzt in der
laufenden Tk (Ursprünglich das UI-Toolkit für TCL, dann für Perl und
gibt es auch für Ruby) Anwendung mal den Text ändern? Oder das Label
verschieben? Oder mal einen Inspektor aufmachen und schauen, wann
welche Events da ankommen.


bye
--
Stefan Matthias Aust // "Ist es normal, nur weil alle es tun?" -F4
Frank Buss
2003-09-17 15:11:33 UTC
Permalink
Post by Stefan Matthias Aust
Das ist längst nicht, wo ich hin will. Wie kannst du denn jetzt in
der laufenden Tk (Ursprünglich das UI-Toolkit für TCL, dann für Perl
und gibt es auch für Ruby) Anwendung mal den Text ändern?
Gibt es übrigens auch für Haskell und einige weitere Sprachen. Text eines
Labels ändern geht z.B. so:

label.configure(text='ein anderer Text')

wird auch automatisch das Layout angepasst, also in diesen Fall das
Fenster vergrößert, wenn der Text zu lang wird.
Post by Stefan Matthias Aust
Oder das Label verschieben?
Ist ja in einem Layout drin, aber dazu kenn ich mich zuwenig mit Tk aus,
geht bestimmt auch irgendwie.
Post by Stefan Matthias Aust
Oder mal einen Inspektor aufmachen und schauen,
wann welche Events da ankommen.
Dazu bräuchte man eine grafische Umgebung, wie bei Smalltalk, so wie in
Squeak, per Kommandozeile ist das sehr umständlich.
--
Frank Buß, ***@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Stefan Matthias Aust
2003-09-18 08:15:54 UTC
Permalink
Post by Frank Buss
[...]
Dazu bräuchte man eine grafische Umgebung, wie bei Smalltalk, so wie in
Squeak, per Kommandozeile ist das sehr umständlich.
Ja, das habe ich vorausgesetzt. Diese grafische Umgebung ist dann genau
der GUI-Builder (und die Entwicklungsumgebung, der Debugger, usw) - eben
eine *I*DE.


bye
--
Stefan Matthias Aust // "Ist es normal, nur weil alle es tun?" -F4
Raskolnikow
2003-09-16 20:22:37 UTC
Permalink
Post by Carl Rosenberger
Post by Marco Schmidt
"Does C# Measure Up?".
Ich finde die Diskussion über den Performanceunterschied
ausgesprochen langweilig. Als Entscheidungsgrundlage, welche
Sprache/Plattform ich für meine Entwicklungen einsetze, gibt
es für mich wesentlich wichtigere Kriterien.
Die Frage, wo man denn Performance braucht, ist ganz leicht
zu beantworten:
für den Desktop.

Wenn Java den Desktop nicht völlig verlieren will, müssen
performante Klassen her, gerade da, wo es eben weh tut,
und wo ein bisschen Profiling und Optimierung nicht mehr
hilft (Bildbearbeitung, Numbercrunching, 3D, Office).
Es gibt in Java weiß Gott genug Negativbeispiele, die die
Sprache pauschal mit dem Attribut "langsam" in Verruf
gebracht haben. Der Imageschaden, den bspw. Swing mit
seiner Langsamkeit verursacht hat, wirkt heute noch
nach, obwohl ab Java 1.3 Swing zumindest erträglich ist.
Und die Frage sei erlaubt, ob Otto-Normal-User nicht in
einigen Jahren noch lapidar auf Java mit "zu langsam" reagiert.
Man beachte einfach mal einschlägige Foren.
Mir tut das gerade deshalb weh, weil Swing im speziellen
und Java im allgemeinen wirklich sehr gut zu programmieren
und enorm flexibel ist.

Meine Lieblingskatastrophen in Java: javac und Netbeans.
Wer mit javac (anstatt mit jikes oder sj) arbeitet, verliert
wertvolle Arbeitszeit. Mir scheint das aktuelle javac (1.4.2)
sogar noch langsamer zu sein als vorige Versionen (liegt
wahrscheinlich an der größeren Klassenbibliothek). Wenn ich
auf einem Mittelklassecomputer eine Minute braucht, um
eine einzige Klasse zu kompilieren, dann kann Sun das nicht
mehr entschuldigen, vor allem dann, wenn jikes in <10 Sekunden
fertig ist. Und es kann mir keiner glaubhaft versichern, dass diese
unglaubliche Langsamkeit nicht furchtbar nervt.
Netbeans auf Linux: muss ich mehr sagen? Mein erster Gedanke
nach der Installation war: die Geschwindigkeit ist ein Witz.
Der zweite Gedanke: wer soll mit sowas arbeiten ?
Mit einem 2-Ghz-Rechner auf Windows ist Netbeans schon
erträglich, aber angenehm ? Eher nicht.

Wenn eine performante Alternative da ist, wird der Kunde
danach greifen und Java links liegen lassen. Mir ist eben nicht
wohl bei dem Gedanken, dass Java halt nur noch irgendwo
im Geheimen auf Servern läuft, die sowieso nur 10% Last haben
und wo Performance egal ist. Und mir gefällt es auch nicht, dass bei
vielen Projekten Java gar nicht in Frage kommt oder kommen
kann. Deshalb sage ich ja, ja, ja zu Performance.
Es ist schön zu sehen, dass z.B. mit SWT endlich ein leistungsfähiges
UI auf dem Markt ist, mit der eine reaktionsschnelle Oberfläche
möglich wird und der Markt (vereinfacht gesagt) damit wieder
etwas offener für den Java-Desktop wird und der eine oder andere
Entwickler wieder Java in Betracht zieht, wo er es vorher nicht getan
hätte.

Bitte hängt euch nicht an meinem Beispiel mit Swing auf, es ist
nur beispielhaft gewählt, ich hätte genauso gut IO, Grafik, oder
sonstwas nehmen können.

Mein Fazit: Sun muss das Möglichste tun, um Java auf Performance
zu trimmen. Zum einen wegen der Konkurrenz zu anderen Sprachen,
ib. C#, zum anderen, um neue Märkte zu erobern (in meinem Beispiel
den Desktop). Ein langsames, speicherhungriges Java bringt keinem was.

Gruß
Bernhard
Post by Carl Rosenberger
Wir treffen gerade in diesem Moment eine Entscheidung, auf
welcher GUI-Basis ein db4o Browser entstehen wird. Er soll
sowohl in Java als auch in C# zur Verfügung stehen, als
auch auf möglichst vielen mobilen Geräten laufen. Bei den
Mobilen ist die WindowsCE/PocketPC/WindowsMobile2003
Plattform Priorität 1, einfach weil dort klar ist, welchen
"Dialekt" wir verwenden können. Es gibt nur einen der in
Frage kommt, das CompactFramework. Bei Java für Handhelds
und Handies ist es wesentlich schwieriger, eine Entscheidung
zu treffen, weil es so viele unterschiedliche Rahmenwerke gibt.
AWT, SWT, Swing und Symbian sind als mögliche Auswahl
offensichtlich, graphische Bibliotheken von Drittanbietern
gibt es wie Sand am Meer.
Um so portabel wie möglich zu bleiben, überlegen wir alle
Controls selber zu zeichnen. Dann brauchen wir nur auf
MouseEvents und auf #paint() zu reagieren und unser Code läuft
auf allem.
Dieses finanzielle und zeitliche Risiko, das Rad selbst neu zu
erfinden, nehmen professionelle Firmen sonst selten in Kauf.
Hier haben wir schon mal den allerwichtigsten Punkt für eine
Planungssicherheit!
Damit geht die Liste der Kriterien für eine Entscheidung zwischen
(1) Planungssicherheit
Microsoft setzt voll auf .NET, mit allen Programmiersprachen, die
angeboten werden. Das wird reichen, um die Plattform für die
nächsten 10 Jahre gesund am Leben zu erhalten.
Bei Java gibt es Unwägbarkeiten. Wird Sun aufgekauft? Was macht IBM?
Bleibt die Plattform kostenlos? In welche Richtung geht es weiter?
Rein rechtlich gesehen ist es möglich, daß sich die Situation von
heute auf morgen dramatisch ändert. Meiner Meinung nach ist das hier
http://groups.google.com/groups?as_umsgid=9a7ct8%24qab%2402%***@news.t-onlin
e.com
Post by Carl Rosenberger
(2) Plattformen
Java läuft auf allem. Sobald man aber GUI programmiert, ist das
"läuft" mit einem großen Auskotzzeichen zu versehen. Was läuft auf
allem? AWT?, Swing?, kAWT?, SWT?
Ich finde auch SWT den falschen Weg.
Ich halte einen eigenen nicht-plattform-konformen Look, der auf
allen Plattformen gleich aussieht und 100% stabil funktioniert für
den besseren Weg. Es gehört etwas her wie Swing, nur schlanker,
schneller, hübscher und überall verfügbar.
C# läuft erstmal nur auf Microsoft, das ist aber bei PCs und Handhelds
schon ein marktfähiger Prozentsatz. Von den OpenSource-Projekten wie
Mono verspreche ich mir nicht sehr viel, lasse mich aber gerne
überraschen.
(3) IDEs
Eine leistungsfähige IDE kann die Entwicklungszeit halbieren. Eclipse
schlägt VS.NET um Längen. Die ganz großen Früchte der Plugin-Entwicklung
werden erst noch kommen. Eclipse ist sogar kostenlos. Bei VS.NET
ist die GUI-Entwicklung schon weiter (legitime Frage: im Vergleich zu
welchem Plugin?) Ausserdem kann ich mich mit VS.NET superbequem mit
meinem PocketPC/Emulator verbinden und Applikationen direkt debuggen.
Zugegeben, das geht mit Websphere Studio Device Developer ähnlich,
aber dieses J9-Gewurschtel ist heute alles noch nicht so ganz rund.
<Zwischenfrage>
Was kostet eine legale J9 Runtime?
Wo bekomme ich sie?
</Zwischenfrage>
(4) Bibliotheken
Die Java-Welt ist viel, viel, viel weiter. Ich tue mich aber immer schon
schwer, OpenSource langfristig in meine Projekte zu integrieren. Nichts
ist so richtig fertig und funktioniert perfekt. Wenn man sich dann endlich
mit einem Projekt gut auskennt, wird die Entwicklung bei 93% eingestellt
und man kann alles selbst pflegen. Dann wird der Aufwand schnell so hoch,
daß man auch gleich alles von null weg hätte schreiben können, perfekt
abgestimmt auf die eigenen Bedürfnisse. Von Microsoft ist zu erwarten, daß
sie weiter überall Ideen für Frameworks sammeln und sie fest in die .NET
Umgebung integrieren. So setzt man Standards. Skrupel und rechtliche Bedenken
scheint es da keine zu geben. Desto länger ich mit C# arbeite, desto mehr
wundere ich mich, daß sie mit einer 90% Kopie von Java rechtlich durchgekommen
sind. Wenn Microsoft dann mal eine Funktionalität zur Verfügung stellt, dann
kann man auch davon ausgehen, daß die Entwicklung einigermaßen schnell voran
geht und auch die Qualität zügig ein akzeptables Level erreicht. Zugegeben,
ich kann Bugs nicht selbst beheben. Dafür tut es aber Microsoft sehr zügig,
auf jeden Fall um Welten schneller als Sun bei Java. Nach einer Microsoft-
internen Initiative, sich viel mehr um Newsgroups zu kümmern, haben sie
jetzt auch wirklich ein weit offenes Ohr für Kundenbedürfnisse. In der
microsoft.*.compactframework Newsgroup posten die Entwickler selbst und man
bekommt sogar Interna über zukünftige Pläne zu hören. Die Qualität entspricht
aus meiner Sicht schon fast den Eclipse-Newsgroups.
Die Liste lässt sich bestimmt noch um eine ganze Reihe von Punkten verlängern,
bis man bei Performance ankommt.
Wen bitte interessiert Performance denn wirklich?
Falls es wirklich dramatisch kritische Bereiche gibt, dann kann man in beiden
Sprachen von Hand eine Bibliothek einbinden, die man in einer
"schnelleren"
Post by Carl Rosenberger
Sprache geschrieben hat. Dazu könnte man sogar wahlweise Java aus C# aufrufen
und umgekehrt.
Viel wichtiger als die Grundperformance der Sprache selbst erscheint es mir,
die Bottlenecks schnell identifizieren zu können. Mit der Verfügbarkeit eines
exakten guten Profilers holt man meiner Ansicht nach bei weitem mehr raus
als bei den paar Prozentpunkten, um die sich Java und C# unterscheiden.
Soll Java halt schneller sein, oder C#.
Mirdochegal.
Viele Grüße,
Carl
--
Carl Rosenberger
db4o - database for objects - http://www.db4o.com
Alexander Gran
2003-09-16 22:08:18 UTC
Permalink
Raskolnikow wrote:
^^^^^^^^^^^
Realname wäre schön..
Post by Raskolnikow
Die Frage, wo man denn Performance braucht, ist ganz leicht
für den Desktop.
IMO braucht ein Desktop die meißte Zeit keine Performance, weil die gängigen
Desktop-Rechner eh überdimensioniert sind.
Post by Raskolnikow
Wenn Java den Desktop nicht völlig verlieren will, müssen
performante Klassen her, gerade da, wo es eben weh tut,
und wo ein bisschen Profiling und Optimierung nicht mehr
hilft (Bildbearbeitung, Numbercrunching, 3D, Office).
die 1.3ja (Wobei 3d eh nicht java wirklich betrifft, da gehts doch nur ums
weiterreichen an OpenGL),aber office? Wo bitte brauche ich da Performance?
Post by Raskolnikow
wahrscheinlich an der größeren Klassenbibliothek). Wenn ich
auf einem Mittelklassecomputer eine Minute braucht, um
eine einzige Klasse zu kompilieren, dann kann Sun das nicht
? Du machst irgendwas ganz falsch..
Centrino 1.6Ghz, ohne Plattenzugriff gerechnet (2.durchlauf).
3,14Sekuden für 1.2MB und 38k loc.
jdk 1.4.2-b19 auf Linux 2.6.0-test5
Post by Raskolnikow
Netbeans auf Linux: muss ich mehr sagen? Mein erster Gedanke
nach der Installation war: die Geschwindigkeit ist ein Witz.
Der zweite Gedanke: wer soll mit sowas arbeiten ?
Mit einem 2-Ghz-Rechner auf Windows ist Netbeans schon
erträglich, aber angenehm ? Eher nicht.
Also, ich habe dein kein Problem. Klar, das Starten dauert eine Weile, aber
das hat jedes größere Programm (Starte mal CatiaV5...). Worauf musst du
anschließend genau warten?
Post by Raskolnikow
Mein Fazit: Sun muss das Möglichste tun, um Java auf Performance
zu trimmen. Zum einen wegen der Konkurrenz zu anderen Sprachen,
Klar.
Post by Raskolnikow
ib. C#, zum anderen, um neue Märkte zu erobern (in meinem Beispiel
den Desktop). Ein langsames, speicherhungriges Java bringt keinem was.
[TOvFU] lass das!

alex
--
Some operating systems are called `user friendly',
Linux however is `expert friendly'.
Encrypted Mails welcome. Send spam to ***@gmx.net, please.
PGP-Key at http://zodiac.dnsalias.org/misc/pgpkey.asc | Key-ID: 0x6D7DD291
Karsten Lentzsch
2003-09-16 22:10:12 UTC
Permalink
[...] Ich bin soweit einverstanden, dass diese Dinger grausam
lange zum Starten haben, aber wenn sie mal gestarted und
aufgewärmt sind, gibt es IMHO nichts mehr auszusetzen.
Ich lasse deswegen meine Anwendungen warm laufen.
Der Anwender braucht viele Mikrosekunden, um die Maus
auf das erste Klickziel zu schieben oder um seinen Namen
und Kennwort in eine Anmeldeseite zu tippen. In dieser Zeit
bereite ich im Hintergrund Komponenten vor, lade Klassen,
ziehe Resource an, baue Panel und binde native Bibliotheken.

Kann man im JDiskReport fühlen, einstellen und beobachten:
java -DlogLevel=info -jar jdiskreport-1.1.1.jar

Beste Grüße,
Karsten
Frank Buss
2003-09-16 22:43:35 UTC
Permalink
Und ich füge noch Audio- und Videobearbeitung dazu, wobei ich mit
Bearbeitung auch die einfache Anzeige oder Wiedergabe meine. Ist das
auch ein Spezialgebiet?
Da gibt es das Java Media Framework für. Z.B. ein AVI mit 320x240 Pixeln
und 25 frames/second wird auf meinem 1.5 GHz P4 mit durschschnittlich 10
% CPU-Auslastung angezeigt (Windows Media Player: ca. 5 %), mit der JMF-
Pure-Java-Version. Gibt auch noch eine native-Version, die dann
wahrscheinlich genauso schnell wie der Windows Media Player ist, da Java
zwar viel optimieren kann, wenn es um eigene Datenstrukturen geht, aber
ein direktes Schreiben in die Grafikkarte per DirectX wahrscheinlich noch
problematisch ist.

Für die Bearbeitung macht das aber nichts aus, was z.B. Raja gut
demonstriert, ein Raytracer in Java:

http://raja.sourceforge.net/

Ich habe den eben mal ausprobiert und er kommt mir ähnlich schnell vor
wie PovRay, der in C geschrieben ist. Raja hat allerdings ein
interessantes Verfahren das Bild aufzubauen, da er nicht zeilenweise
berechnet, sondern erst ein grobmaschiges Gitter und dann immer
feinmaschigere Gitter. Dadurch sieht man frühzeitig wie das ganze Bild
aussieht und kann ggf. frühzeitig abbrechen.
--
Frank Buß, ***@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Tor-Einar Jarnbjo
2003-09-16 23:25:55 UTC
Permalink
Post by Frank Buss
Da gibt es das Java Media Framework für. Z.B. ein AVI mit 320x240
Pixeln und 25 frames/second wird auf meinem 1.5 GHz P4 mit
ca. 5 %), mit der JMF- Pure-Java-Version.
Und was sagt uns das? Erstens wird die AVI-Datei einen sehr einfachen
Video-Codec benutzen, weil die Java-Version von JMF nur Cinepak, MJPEG
und unkomprimierte Streams bearbeiten kann. Der Java-Decoder braucht aber
offensichtlich mindestens doppelt so viel CPU-Zeit. Beide Player brauchen
ein Bisschen Zeit für die Anzeige der dekodierten Bilddaten und wenn das
2% CPU-Zeit verschlingt (geschätzt) bleiben 8% gegen 3% CPU-Zeit für die
Dekodierung.
Post by Frank Buss
Gibt auch noch eine
native-Version, die dann wahrscheinlich genauso schnell wie der
Windows Media Player ist, da Java zwar viel optimieren kann, wenn es
um eigene Datenstrukturen geht, aber ein direktes Schreiben in die
Grafikkarte per DirectX wahrscheinlich noch problematisch ist.
Die Windows-Version von JMF benutzt in einigen Fällen ein paar Tricks, um
ein Windows-Widget in dem Java-Fenster einzubetten, damit die Java-VM
sich um die Wiedergabe gar nicht kümmern muss. Das ist wahrscheinlich
genauso schnell wie der WMP, weil beide Player wohl letztendlich die
gleiche Komponente für die Anzeige einsetzen. Dass du ein Java-Fenster um
ein OS-Widget packen kannst ist wohl aber letzendlich auch kein Beleg
dafür, dass die Sache mit Java machbar ist :-/ Es zerstört auch das ganze
Plugin-Konzept von JMF, da du keine Filter in der Wiedergabe-Kette
einsetzen kannst. Wenn du trotzdem Filter hinzufügst, die z.B. die auf
die dekodierten Video-Dateien zugreifen wollen, schüffelt JMF die Daten
per JNI hin und her und mit Datenmengen von 30MB und mehr pro Sekunde für
Video in DVD-Qualität, ist allein der JNI-Overhead enorm groß. Es war
jedenfalls so vor ein paar Jahren, als ich zuletzt versucht habe mit JMF
im Video-Bereich was zu machen. Am JMF hat Sun seitdem auch nicht viel
mehr gemacht als die MP3-Unterstützung rauszunehmen, also schätze ich,
dass es mit den aktuellen Version immer noch so ist.
Post by Frank Buss
Für die Bearbeitung macht das aber nichts aus, was z.B. Raja gut
http://raja.sourceforge.net/
Nun habe ich zwar PowRay seit meinem 200MHz Pentium nicht probiert, aber
ich hatte hier bei einem kurzen Test nicht wirklich das Gefühl, dass Raja
besonders schnell ist. Vielleicht gibt es irgendwo die gleiche Scene für
beide Raytracer implementiert, damit sie sich vergleichen lassen?

Gruß, Tor
André Große
2003-09-17 09:05:27 UTC
Permalink
Post by Tor-Einar Jarnbjo
Post by Frank Buss
Für die Bearbeitung macht das aber nichts aus, was z.B. Raja gut
http://raja.sourceforge.net/
Nun habe ich zwar PowRay seit meinem 200MHz Pentium nicht probiert, aber
ich hatte hier bei einem kurzen Test nicht wirklich das Gefühl, dass Raja
besonders schnell ist. Vielleicht gibt es irgendwo die gleiche Scene für
beide Raytracer implementiert, damit sie sich vergleichen lassen?
Es ist ja nun auch wahrlich keine Auszeichnung, schneller als POV zu
sein, da dort viele seit Jahr und Tag bekannte algorithmische
Optimierungen nicht enthalten sind. Viele jubeln POV,
OpenSource-Bewegung sei Dank, in alle Hoehen, aber ausser ein paar
interessanter Features, die jedoch in tonnenweise nicht vorhandener
gaengiger Features untergehen, ist da nicht so viel dran.
--
Andre'
Frank Buss
2003-09-17 12:49:52 UTC
Permalink
Post by Tor-Einar Jarnbjo
Post by Frank Buss
Für die Bearbeitung macht das aber nichts aus, was z.B. Raja gut
http://raja.sourceforge.net/
Nun habe ich zwar PowRay seit meinem 200MHz Pentium nicht probiert,
aber ich hatte hier bei einem kurzen Test nicht wirklich das Gefühl,
dass Raja besonders schnell ist. Vielleicht gibt es irgendwo die
gleiche Scene für beide Raytracer implementiert, damit sie sich
vergleichen lassen?
wie André schon schrieb, ist das vielleicht kein guter Vergleich. Aber
das Raja innerhalb von ein paar Sekunden ein Bild mit Spiegelungen etc.
überhaupt rendert, ist für ein 2-Mann-Team-Projekt im Pre-Alpha-Status
doch schon beeindruckend. Kann man bestimmt noch einiges durch optimierte
Algorithmen herausholen.

Für einen wirklichen Vergleich der Geschwindigkeit müsste man ein
Standardproblem in beiden Sprachen implementieren. Die c't hat ja schon
mit den Microbenchmarks bewiesen, daß Java schneller als C# ist und nah
an C++ herankommt, bei weit abgeschlagenen Delphi:

http://groups.google.de/groups?threadm=bjd7i5.9s.1%40aljoscha-rittner.de

Mal sehen, was der Objekt-Test in der nächsten c't bringt.
--
Frank Buß, ***@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Tor-Einar Jarnbjo
2003-09-17 22:46:21 UTC
Permalink
Post by Frank Buss
Für einen wirklichen Vergleich der Geschwindigkeit müsste man ein
Standardproblem in beiden Sprachen implementieren. Die c't hat ja
schon mit den Microbenchmarks bewiesen, daß Java schneller als C# ist
Du kannst aus solchen kleinen Benchmarks keine allgemeine Aussage
herleiten. Bei dem RSA-Schlüssel ist Suns JDK1.2.2 ohne Hotspot sogar drei
Mal schneller als 1.3 und spätere Versionen. Bei anderen Sachen sind die
neuen VMs aber hoffentlich schneller.

Gruß, Tor
Sven Köhler
2003-09-17 01:20:49 UTC
Permalink
Post by Raskolnikow
Wer mit javac (anstatt mit jikes oder sj) arbeitet, verliert
wertvolle Arbeitszeit. Mir scheint das aktuelle javac (1.4.2)
sogar noch langsamer zu sein als vorige Versionen (liegt
wahrscheinlich an der größeren Klassenbibliothek). Wenn ich
auf einem Mittelklassecomputer eine Minute braucht, um
eine einzige Klasse zu kompilieren, dann kann Sun das nicht
mehr entschuldigen, vor allem dann, wenn jikes in <10 Sekunden
fertig ist. Und es kann mir keiner glaubhaft versichern, dass diese
unglaubliche Langsamkeit nicht furchtbar nervt.
Und es sei Sun auch gesagt, dass es selbst in Java schneller geht.
Schließlich ist der Java-Compiler den Eclipse benutzt - eigentlich ganz
Eclipse außer SWT - in Java geschrieben.
Steffen Ramlow
2003-09-17 10:10:56 UTC
Permalink
Ca. 50% der Desktop-Software, die auf meinem Desktop
eigentlich immer läuft, ist mit Swing gemacht. Ich bin
soweit einverstanden, dass diese Dinger grausam lange zum
Starten haben, aber wenn sie mal gestarted und aufgewärmt
sind, gibt es IMHO nichts mehr auszusetzen.
Was benutzt du denn da so?
Raffael Herzog
2003-09-17 17:17:56 UTC
Permalink
Hi Steffen,
Post by Steffen Ramlow
Ca. 50% der Desktop-Software, die auf meinem Desktop
eigentlich immer läuft, ist mit Swing gemacht. Ich bin
soweit einverstanden, dass diese Dinger grausam lange zum
Starten haben, aber wenn sie mal gestarted und aufgewärmt
sind, gibt es IMHO nichts mehr auszusetzen.
Was benutzt du denn da so?
MagicDraw, IntelliJ IDEA, JSwat, iSQL, Log4JViewer sind mal
die, die eigentlich immer laufen (JBoss lasse ich mal aus,
weil das keine Desktop-Software ist). Wahlweise kommen noch
diverse andere Tools dazu. OK, 50% ist von der Menge her
etwas übertrieben, aber Zeitlich kommt es in Etwa hin. An-
dere essenzielle Tools (nicht Java) wären da noch Emacs,
GNUMail.app, Terminal.app und natürlich Opera, damit ist der
grösste Teil dessen, was ich für die Arbeit brauche, abge-
deckt - neben ein paar Utilities, die ich als zum Desktop
gehörig bezeichne (xmms, Affiche.app, licq, diverse Dock-
apps).


Gruss,
Raffi
--
=> Neu im Usenet? Fragen? http://www.use-net.ch/usenet_intro_de.html <=
The difference between theory and practice is that in theory, there is
no difference, but in practice, there is.
Raffael Herzog - ***@raffael.ch - http://www.raffael.ch - ICQ #67961355
Raskolnikow
2003-09-17 22:45:38 UTC
Permalink
----- Original Message -----
From: "Raffael Herzog" <***@raffael.ch>
Newsgroups: de.comp.lang.java
Sent: Tuesday, September 16, 2003 11:00 PM
Subject: Re: Ja zu Performance. Re: [INFO] Java vs. C#, nächste Runde


<snip>
Das ist nicht wahr. Javac ist schneller als Jikes - sofern
man die JVM, in der javac ausgeführt wird, am Laufen lässt.
Ich habe eben auf Google mal nach einem Benchmark für jikes
und javac gesucht:
http://www.javajunkies.org/index.pl?lastnode_id=41&node_id=1212
Dabei ist es jetzt irrelevant, ob jikes bei irgendwelchen Konstellation
"nur" 5 Mal schneller ist als javac, der Unterschied ist jedenfalls enorm.

Vielleicht ist es eine dumme Frage, aber wie kann ich denn
die javac-JVM am Laufen lassen?
Meine IDE (JCreator) ruft javac auf, javac startet die VM und
beendet nach beendetem Kompiliervorgang die VM wieder.
Oder meinst du etwas anderes ?
Ich denke mal nicht, dass du einen gewagten Vorgriff auf
Java 1.5 mit einer permanent laufenden VM gemacht hast.
Ausserdem hat Jikes mal ziemlich lange, d.h. über mehrere
major Releases hinweg, kaputte Debugging-Infos produziert
(ich weiss nicht, ob es heute noch so ist). Sowas ist für
mich das absolute Aus für jeden Compiler, ich will wissen,
dass ich Fehler nicht im Compiler zu suchen habe, und Jikes
hat mich gründlich davon überzeugt, dass er für die Entwick-
lung die flachse Wahl ist!
Jikes ist IMHO (in der aktuellen Version 1.1.8(?)) absolut stabil,
Probleme mit Debugging-Infos sind mir nicht bekannt.
Ich mag die Fehlermeldungen von jikes. Was mir gut gefällt:
* Bei Fehlermeldungen auf nicht vorhandene Methoden wird ggf.
auf eine ähnlich lautende Methoden verwiesen - sehr nützlich.
* jikes gibt mehr Warnungen aus, z.B.
Ich verwende Jikes allerdings gerne zur Compilierung von
JSPs auf produktiven Systemen, da macht das Ding wirklich
Sinn (da javac ein Speicherloch hat, muss er auf Produktiv-
Systemen in einer separaten JVM ausgeführt werden, und dann
sind wir genau bei deiner Aussage: Javac ist grottenlangsam).
Post by Raskolnikow
Wenn ich
auf einem Mittelklassecomputer eine Minute braucht, um
eine einzige Klasse zu kompilieren, dann kann Sun das nicht
mehr entschuldigen, vor allem dann, wenn jikes in <10 Sekunden
fertig ist.
Eine Minute? Sorry, aber Ant (mit Javac) compiliert mir in
dieser Zeit (OK, es ist 1.4.1, aber so gravierend kann es ja
nicht sein) 1500 Klassen - mal abgesehen davon, dass etwa 50
davon vorher noch generiert werden müssen - da ist wesentlich
mehr drin, als nur das reine Compilieren: Nach den 1.5 Mi-
nuten habe ich ein fertiges EAR, inklusive Code-Generierung,
und allem drum und dran, from scratch.
Hat dein 'Mittelklassecomputer' vielleicht zu wenig RAM?
Naja, auf der Arbeit ist es ein Altertümchen: Duron 600 Mhz
mit 256MB, da merkt man schon den Unterschied.

Gruß
Bernhard
Bernd Eckenfels
2003-09-17 23:03:44 UTC
Permalink
Post by Raskolnikow
Meine IDE (JCreator) ruft javac auf, javac startet die VM und
beendet nach beendetem Kompiliervorgang die VM wieder.
Oder meinst du etwas anderes ?
die frage ist ob man das pro file macht oder fuer den ganzen source. Wenn
man z.b. ant benutzt, dann wird die vm nicht pro file gestartet, bei make
waere das anders :)

Gruss
Bernd
--
eckes privat - http://www.eckes.org/
Project Freefire - http://www.freefire.org/
Marco Schmidt
2003-09-18 16:14:08 UTC
Permalink
Raskolnikow:

[...]
Post by Raskolnikow
Jikes ist IMHO (in der aktuellen Version 1.1.8(?)) absolut stabil,
Probleme mit Debugging-Infos sind mir nicht bekannt.
Die Stabilität von jikes kann ich nicht unterschreiben. In seltenen
Fällen (ca. ein- bis zweimal pro Woche) führte ein Aufruf von jikes
nur zu seinem Absturz. Wenn ich dann den langsamen javac drüberlaufen
ließ, erzeugte der langsam aber zuverlässig class-Dateien. Nach einer
weiteren Änderung im Quelltext tat's dann auch jikes wieder beim
Kompilieren. Ich hab versucht zu isolieren, was das Problem ist, habe
aber nichts herausgefunden. Das Problem läßt sich einfach nicht
reproduzieren. Auch die jeweils neueste jikes-Version brachte keine
Verbesserungen. Jetzt nutze ich Eclipses Compiler, der wie javac auch
keine Probleme macht.

[...]

Gruß,
Marco
--
Bitte nur in der Newsgroup antworten, nicht per Email!
de.comp.lang.java Homepage: http://www.dclj.de/
FAQ: http://www.faqs.org/faqs/de/comp-lang-java/faq/
Meine Java-Seiten: http://www.geocities.com/marcoschmidt.geo/java.html
Jochen Schmitt
2003-09-21 19:19:50 UTC
Permalink
Ca. 50% der Desktop-Software, die auf meinem Desktop
eigentlich immer läuft, ist mit Swing gemacht. Ich bin
soweit einverstanden, dass diese Dinger grausam lange zum
Starten haben, aber wenn sie mal gestarted und aufgewärmt
sind, gibt es IMHO nichts mehr auszusetzen.
Wenn man z. B. IBM WSED startet, dann dauert dies so lange, dass
man bequem vom 11 Stock in die Caffetrie fahren kann, die sich im
Untergeschöß befindet, um sich eine Tasse Kaffe zu holen.

Außerdem brauchen gerade JAVA-IDEs schwine viel RAM (mind 1
GByte, wenn man vernümftig arbeiten möchte).

Ein weiteres Beispiele für die Performanceprobleme von JAVA ist
z. B. die Tatsache, dass IBM den Bookmanagerreader in JAVA
umgeschreiben hat.

Während die native Version die Liste der Bookschelves sofort
anzeigt, nimmt man bei der JAVA-Version eine deutliche
Verzögerung wahr.

mfg: Jochen Schmitt
Michael Schmidt
2003-09-23 12:23:21 UTC
Permalink
Post by Jochen Schmitt
Wenn man z. B. IBM WSED startet, dann dauert dies so lange, dass
man bequem vom 11 Stock in die Caffetrie fahren kann, die sich im
Untergeschöß befindet, um sich eine Tasse Kaffe zu holen.
Was ich denn doch für anwenderfreundlich halte. Ohne Kaffee geht die
Arbeit schließlich nicht los. Wozu sonst Java nehmen.

Da ich von Koblenz nach Bonn zur Arbeit fahre und deswegen idR der
letzte im Büro bin, unterstelle ich meinen Kollegen gerne mal, daß sie
nicht arbeiten würden, weil ja noch kein Treibstoff (Kaffee) gekocht wäre.;)
Post by Jochen Schmitt
Außerdem brauchen gerade JAVA-IDEs schwine viel RAM (mind 1
GByte, wenn man vernümftig arbeiten möchte).
Keiner meiner Rechner hat soviel, ich denke ich komme trotzdem
vernünftig hin, trotz diverser mitlaufender anderer Anwendungen.

Micha
--
Homepage der Newsgroup de.comp.lang.java - http://www.dclj.de
Dirk Michael
2003-09-23 13:14:36 UTC
Permalink
Post by Jochen Schmitt
Außerdem brauchen gerade JAVA-IDEs schwine viel RAM (mind 1
GByte, wenn man vernümftig arbeiten möchte).
Also bei mir läuft Eclipse zum Beipsiel sehr vernünftig auf einem
PentiumIII 600MHz mit 384MB RAM.

MfG
Dirk Michael
Christian Robert
2003-09-23 15:03:01 UTC
Permalink
/* Jochen Schmitt wrote: */
Post by Jochen Schmitt
Außerdem brauchen gerade JAVA-IDEs schwine viel RAM (mind 1
GByte, wenn man vernümftig arbeiten möchte).
Also das halte ich für ein Gerücht.

Eclipse läuft auf einem Athlon800 und 512MB sehr flüssig und ohne
Probleme. Wie es mit den neuen JBuilder Versionen ist weiss ich nicht,
aber die Versionen 4 und 5 liefen auch noch sauber und schnell.

Christian
Christian Robert
2003-09-26 09:06:17 UTC
Permalink
/* Thomas Priegl wrote: */
JBuilder 7 (Enterprise) und JBuilder 9 (Personal) laufen auf meinem
Notebook mit PIII 850 MHz. und 512 MB sehr gut.
JBuilder ist inzwischen bei Version 9 angelangt? Also Borland scheint ja
inzwischen auch jedes Vierteljahr ein neues Release rauszujagen, was?

Christian
Thomas Priegl
2003-09-26 23:46:02 UTC
Permalink
Hallo Christian,
Post by Christian Robert
JBuilder ist inzwischen bei Version 9 angelangt? Also Borland scheint ja
inzwischen auch jedes Vierteljahr ein neues Release rauszujagen, was?
Ja. Und wenn sie Version 8 als 7.1 und Version 9 als 7.2 kostenlos oder
als günstiges Update herausgegeben hätten, dann hätte ich damit auch
kein Problem.

CU
Thomas
Jochen Schmitt
2003-09-28 18:27:46 UTC
Permalink
Post by Thomas Priegl
Ja. Und wenn sie Version 8 als 7.1 und Version 9 als 7.2 kostenlos oder
als günstiges Update herausgegeben hätten, dann hätte ich damit auch
kein Problem.
Ich bekomme auch als regelmäßig Werbung von Borland zugeschickt.
Wenn man dann liest, dass Borland quasi alle 6 Monate eine neue
Version von JBuilder herausbringen und dafür noch 4 stellige
Preise verlangen, dann kann man darüber nur den Kopf schütteln.

Microsoft brachte im diesen Jahr ein Minor-Update von Visual
Studio.NEt heraus und verlangt hierfür bis zum 30. 9. nur EUR
31,--, wenn man die Vorgängerversion besitzt.

mfg: Jochen Schmitt
Frank Radermacher
2003-09-29 06:36:06 UTC
Permalink
Post by Jochen Schmitt
Microsoft brachte im diesen Jahr ein Minor-Update von Visual
Studio.NEt heraus und verlangt hierfür bis zum 30. 9. nur EUR
31,--, wenn man die Vorgängerversion besitzt.
man muss ja erst mal den Markt uebernehmen.

Frank
Jochen Schmitt
2003-09-29 13:58:02 UTC
Permalink
Post by Frank Radermacher
man muss ja erst mal den Markt uebernehmen.
Ja, ich befürchte auch, dass bei VS.NET 2004 es kein EUR 31,--
Update geben wird :-(((

mfg: Jochen Schmitt

Marco Schmidt
2003-09-16 20:36:09 UTC
Permalink
Carl Rosenberger:

[...]
Post by Carl Rosenberger
Wen bitte interessiert Performance denn wirklich?
Falls es wirklich dramatisch kritische Bereiche gibt, dann kann man in beiden
Sprachen von Hand eine Bibliothek einbinden, die man in einer "schnelleren"
Sprache geschrieben hat. Dazu könnte man sogar wahlweise Java aus C# aufrufen
und umgekehrt.
Hm, ich bin da nicht so optimistisch. Immerhin muß eventuell eine
größere Menge Daten umgeschaufelt werden, bevor die JNI-Variante des
Codes ran darf, und nachher wieder zurück. Das frißt dann eventuelle
Vorteile wieder auf. Und Tor-Einar hat recht, sobald die Unterschiede
ein Vielfaches ausmachen, ärgert man sich schon, wenn man gerade die
unterlegene Sprache benutzt. Das mag kein Indikator für die
Leichtigkeit sein, mit der man insgesamt entwickelt, aber an gewissen
Schrauben kann man eben nicht selbst drehen.

Zum Test - der hat schon ein paar interessante Details aufgeworfen,
die ich aber garantiert wieder in kürzester Zeit vergessen habe. Es
war eben doch eher Micro-Benchmarking, wenn auch hier wenigstens ein
Vorglühen stattfand. Ein nicht gerade kleines Potential für
Optimierungen scheint an vielen Stellen vorhanden, in allen Sprachen /
Frameworks. Auch wenn versucht wurde, Sprache und
Bibliotheksimplementierungen nicht durcheinander zu werfen, gelang das
nicht immer. Mir ist nicht ganz klar, was ich aus diesem Test
"überbehalten" soll, um mal die Wolfgangs zu zitieren.

Daß Plattformunabhängigkeit bei diesem Test des /Windows Developer
Network/ keine Rolle spielt bzw. daß ihr Vorteil u.U. nicht mal
verstanden wird, zeigt folgender Abschnitt:

Interestingly, the original implementation read 32-bit integers but,
unfortunately, Java read them in using network byte-order rather than
host byte-order, which was incompatible with the machine-order reading
of C, C++, and D.

Daß man Java mehr Speicher geben kann wurde ebenfalls nicht erwähnt,
und ein Lauf mit -server war auch nicht drin. Das Ergebnis einer
JET-Kompilation wäre interessant gewesen.

Die fette Werbung für Intel-Compiler ausgerechnet in diesem Artikel
fand ich unangemessen.

[...]

Gruß,
Marco
--
Bitte nur in der Newsgroup antworten, nicht per Email!
de.comp.lang.java Homepage: http://www.dclj.de/
FAQ: http://www.faqs.org/faqs/de/comp-lang-java/faq/
Meine Java-Seiten: http://www.geocities.com/marcoschmidt.geo/java.html
Michael Wein
2003-09-18 12:20:32 UTC
Permalink
Post by Carl Rosenberger
Ich finde die Diskussion über den Performanceunterschied
ausgesprochen langweilig.
Du hast's gut! Ich muss mir vorhin eine Diskussion antun, bei der mich ein
"Experte" darüber aufgeklärt hat, dass Cobol schneller als Java sei und
damit seine IMHO kaputte Architektur begründet wollte.
--
Michael Wein
Gerd Nachtsheim
2003-09-18 17:54:24 UTC
Permalink
Post by Michael Wein
Post by Carl Rosenberger
Ich finde die Diskussion über den Performanceunterschied
ausgesprochen langweilig.
Du hast's gut! Ich muss mir vorhin eine Diskussion antun, bei der mich ein
"Experte" darüber aufgeklärt hat, dass Cobol schneller als Java sei und
damit seine IMHO kaputte Architektur begründet wollte.
Na dann hoffen wir mal, daß der "Experte" nicht ähnliches von Dir denkt und sein
Resumée Eurer Experten° - Runde in comp.lang.cobol gepostet hat.


SCNR

Gerd
--
Gerd Nachtsheim mailto:***@users.sourceforge.net ICQ:#13126958
Michael Wein
2003-09-19 06:46:09 UTC
Permalink
Post by Gerd Nachtsheim
Post by Michael Wein
Post by Carl Rosenberger
Ich finde die Diskussion über den Performanceunterschied
ausgesprochen langweilig.
Du hast's gut! Ich muss mir vorhin eine Diskussion antun, bei der mich ein
"Experte" darüber aufgeklärt hat, dass Cobol schneller als Java sei und
damit seine IMHO kaputte Architektur begründet wollte.
Na dann hoffen wir mal, daß der "Experte" nicht ähnliches von Dir denkt und sein
Resumée Eurer Experten° - Runde in comp.lang.cobol gepostet hat.
Das Beste hatte ich ja noch nicht geschrieben: der Laden des Experten
erzeugt zur Laufzeit Cobol-Programme aus einer "Java-Engine" heraus. Wenn
das nicht mal clever ist!
--
Michael Wein
Gerd Nachtsheim
2003-09-19 08:01:52 UTC
Permalink
Post by Michael Wein
Post by Gerd Nachtsheim
Post by Michael Wein
Du hast's gut! Ich muss mir vorhin eine Diskussion antun, bei der mich ein
"Experte" darüber aufgeklärt hat, dass Cobol schneller als Java sei und
damit seine IMHO kaputte Architektur begründet wollte.
Na dann hoffen wir mal, daß der "Experte" nicht ähnliches von Dir denkt und sein
Resumée Eurer Experten° - Runde in comp.lang.cobol gepostet hat.
Das Beste hatte ich ja noch nicht geschrieben: der Laden des Experten
erzeugt zur Laufzeit Cobol-Programme aus einer "Java-Engine" heraus. Wenn
das nicht mal clever ist!
Und die COBOL Programme dann später von der JVM aufgerufen? Vielleicht spart er
sich damit eine teure C-ISAM oder IMS Library für Java ein? Wenn's so wäre,
wäre es in der Tat clever.

Merant/NetExpress z.B. propagiert eine leichte Anbindung von COBOL und Java, da
dürfte sich der Aufwand der COBOL<->Java Interaktion in Grenzen halten.

Irgendwie klingt das ganze mehr nach einem 'clash of cultures' als nach einem
Expertengespräch ;-)


Gruß

Gerd
--
Gerd Nachtsheim mailto:***@users.sourceforge.net ICQ:#13126958
Michael Wein
2003-09-19 11:26:34 UTC
Permalink
Post by Gerd Nachtsheim
Und die COBOL Programme dann später von der JVM aufgerufen?
Vermutlich. Aber so ganz klar war die Architektur nicht, da war noch
zweimal MQ Series dazwischen, was ich auch nicht verstanden habe.
Post by Gerd Nachtsheim
Vielleicht spart er sich damit eine teure C-ISAM oder IMS Library für Java ein?
Nein, die Argumentation war Performance. Und wieso "teure" Bibliothek? Er
kann mittels Java und JDBC direkt auf DB2/400 zugreifen. Das geht
kinderleicht und wirklich langsam ist das auch nicht.
Post by Gerd Nachtsheim
Irgendwie klingt das ganze mehr nach einem 'clash of cultures' als nach einem
Expertengespräch ;-)
Ich habe absolut keine Probleme mit Cobol. Wenn mir aber jemand mit
fadenscheinigen Argumenten eine saubere Architektur wegdiskutieren will und
zusätzlich noch seine Hacks propagiert, spiele ich nicht mehr mit.
--
Michael Wein
Jochen Schmitt
2003-09-21 19:19:50 UTC
Permalink
Post by Gerd Nachtsheim
Und die COBOL Programme dann später von der JVM aufgerufen? Vielleicht spart er
sich damit eine teure C-ISAM oder IMS Library für Java ein? Wenn's so wäre,
wäre es in der Tat clever.
Die Firma IBM unterstütz den Aufruf von IMS-Datenbestände aus
JAVa-Programmen mit Hilfe erines speziellen JDBC-Teibers.
Post by Gerd Nachtsheim
Merant/NetExpress z.B. propagiert eine leichte Anbindung von COBOL und Java, da
dürfte sich der Aufwand der COBOL<->Java Interaktion in Grenzen halten.
Ich hatte mal das freundlche Erlebnis einen Vortrag auf einem ADL
Guide hören zu dürfen, der sich u. a. mit der Einbindung von
COBOL-Klassen in JAVA-Programmen beschäftig.

Nach meiner Meinung ist COBOL eine sehr geschwätzige Sprache, bei
der keine Freude beim Programmieren aufkommt, wenn man etwas
anderes kennt.

mfg: Jochen Schmitt
Michael Wein
2003-09-19 06:44:38 UTC
Permalink
Post by Michael Wein
Du hast's gut! Ich muss mir vorhin eine Diskussion antun, bei der mich ein
"Experte" darüber aufgeklärt hat, dass Cobol schneller als Java sei und
damit seine IMHO kaputte Architektur begründet wollte.
Sage einfach "Nein" und ruhe dann in dem Wissen, Recht zu haben. Das
wird ihn irritieren... und du weisst doch, wenn du sie nicht...usw.
Problem: ich sitze da in einer Runde mit drei Abteilungsleitern, von denen
max. einer hinreichend technischen Durchblick hat, den Nonsens zu
durchschauen. Die anderen nehmen das u. U. für bare Münze und fragen mich
dann anschließend, was ich den ganzen Tag sinnloses tue, wenn doch diese
Java so langsam ist. Ich bin's einfach leid und habe keine Energie mehr,
immer und immer wieder den gleichen Schwachsinn aus der Welt schaffen zu
müssen. Um das zu toppen wurde mir gestern dann auch mal wieder erklärt,
das Java ja interpretiert ist -- den Rest kannst du dir ja denken.

Ich stelle fest:
1) Alle Hacks dieser Welt werden mit Performance begründet.
2) Wenn Leute keine Ahnung von Softwareentwicklung haben oder mit ihrem
Latein am Ende sind, beginnen Sie eine Diskussion über Performance.
3) Vorurteile hinsichtlich Javas Performance sind unausrottbar.
--
Michael Wein
Cybernd
2003-09-19 15:58:19 UTC
Permalink
Post by Michael Wein
3) Vorurteile hinsichtlich Javas Performance sind unausrottbar.
Ich würde gerne in dem von dir angesprochenen Kontext auf diese Site
hinweisen: http://server.cybernd.at/howto/javaFaq.html

Wer Mithelfen will bekommt Zugriff zum CVS (als XML => XSLT hinterlegt).
Die Doku soll eigentlich OpenSource werden. Leider konnte ich mich noch
nicht dazu aufraffen einen anonymen CVS account einzurichten bzw. eine
passende Lizenz auszusuchen.

Diese eine Site passt zwar nicht wirklich zu den Server Howtos der
Subdomain, aber immerhin eignet Sie sich dennoch sehr gut um "Java FUD"
in Heise Newsforen zu unterbinden.

cybi
Jochen Schmitt
2003-09-21 19:19:50 UTC
Permalink
Post by Michael Wein
3) Vorurteile hinsichtlich Javas Performance sind unausrottbar.
Wenn Du eines der folgenden Produkte startest, dann wüstest Du,
woher die Vorurtiel komm

Produktliste:
IBM Websphere Studio Application Developer
IBM Websphere Studio Enterprise Developer
Eclipse
Together.

mfg: Jochen Schmitt
Bernd Eckenfels
2003-09-22 01:22:21 UTC
Permalink
Der Hammer ist, was ich gerade in meiner Firma erfahre: Die
Applikation, die auf WebSphere hin programmiert worden ist, ist nun
auf JBoss migriert.
Wir machen grade die umgekehrte Portierung und koennen bestaetigen dass
WebSphere langsamer ist. Aber ich hoffe einfach mal auf bessere
Skalierbarkeit oben raus :)

Gruss
Bernd
--
eckes privat - http://www.eckes.org/
Project Freefire - http://www.freefire.org/
Frank Radermacher
2003-09-22 06:55:35 UTC
Permalink
Post by Bernd Eckenfels
Der Hammer ist, was ich gerade in meiner Firma erfahre: Die
Applikation, die auf WebSphere hin programmiert worden ist, ist nun
auf JBoss migriert.
Wir machen grade die umgekehrte Portierung und koennen bestaetigen dass
WebSphere langsamer ist. Aber ich hoffe einfach mal auf bessere
Skalierbarkeit oben raus :)
Skalierbarkeit durch Vermehrung der JBoesse ist doch auch fein oder nicht.

Frank
Bernd Eckenfels
2003-09-22 19:34:14 UTC
Permalink
Post by Frank Radermacher
Skalierbarkeit durch Vermehrung der JBoesse ist doch auch fein oder nicht.
Ich habs noch nicht probiert auf ner 64processor kiste mit numa :)

Gruss
Bernd
--
eckes privat - http://www.eckes.org/
Project Freefire - http://www.freefire.org/
Jochen Schmitt
2003-09-22 17:36:36 UTC
Permalink
Unterschied zu statischem HTML ist nur noch unwesentlich. Das
Unglaubliche: JBoss läuft bei uns auf einem P-III/700M/1G, während der
(halb so schnelle) WebSphere auf einem Dual-P-IV/1.4G/2G (mit
Hyperthreading) läuft! Weitere Kommentare IMHO unnötig... :)
Dass kann ich mir vorstellen, da JBoss sicherlich schlanker ist,
als ein WAS.

Aber in der Regel wollen Entscheider ein Produkt, bei dem
notfalls der Leading Architect zum Händchenhalten kommt.

mfg: Jochen Schmitt
Raffael Herzog
2003-09-22 17:51:30 UTC
Permalink
Post by Jochen Schmitt
Aber in der Regel wollen Entscheider ein Produkt, bei dem
notfalls der Leading Architect zum Händchenhalten kommt.
http://www.jbossgroup.com/

Gruss,
Raffi
--
Neu im Usenet? Fragen? -> http://www.use-net.ch/usenet_intro_de.html

Raffael Herzog - ***@raffael.ch - www.raffael.ch - ICQ #67961355
Jochen Schmitt
2003-09-24 17:24:59 UTC
Permalink
Post by Raffael Herzog
Post by Jochen Schmitt
Aber in der Regel wollen Entscheider ein Produkt, bei dem
notfalls der Leading Architect zum Händchenhalten kommt.
http://www.jbossgroup.com/
Und was auch noch wichtig ist, dass Entscheider Firmen
bevorzugen, die nach ihrer Meinung noch in 10 Jahren existieren
werden.

mfg: Jochen Schmitt
Raffael Herzog
2003-09-25 01:02:41 UTC
Permalink
Post by Jochen Schmitt
Post by Raffael Herzog
Post by Jochen Schmitt
Aber in der Regel wollen Entscheider ein Produkt, bei dem
notfalls der Leading Architect zum Händchenhalten kommt.
http://www.jbossgroup.com/
Und was auch noch wichtig ist, dass Entscheider Firmen
bevorzugen, die nach ihrer Meinung noch in 10 Jahren existieren
werden.
OK, jetzt hast du mich erwischt... :)

Aber wenn die JBossGroup in einem Jahr abschmiert, dann haben wir
JBoss immer noch und er wird weiter entwickelt werden. Sollte IBM in
einem Jahr abschmieren (was zugegebenermassen mehr als
unwahrscheinlich ist), dann ist WebSphere weg vom Fenster. Ein für
alle Mal. Dabei hat WebSphere IMHO nicht nur Weiterentwicklung nötig,
was WAS wirklich braucht, ist eine Neuprogrammierung - aber das ist
nur die Meinung von jemandem, der damit tatsächlich etwas auf die
Beine stellen soll, nicht die Meinung desjenigen, der das Geld für die
Entwicklung aufbringt...

Gruss,
Raffi, sich herauswindend ;)
--
Neu im Usenet? Fragen? -> http://www.use-net.ch/usenet_intro_de.html

Raffael Herzog - ***@raffael.ch - www.raffael.ch - ICQ #67961355
Michael Schmidt
2003-09-23 12:39:20 UTC
Permalink
Post by Jochen Schmitt
Post by Michael Wein
3) Vorurteile hinsichtlich Javas Performance sind unausrottbar.
Wenn Du eines der folgenden Produkte startest, dann wüstest Du,
woher die Vorurtiel komm
IBM Websphere Studio Application Developer
IBM Websphere Studio Enterprise Developer
Eclipse
Together.
mfg: Jochen Schmitt
Also in so eine Liste müßten dann auch

Word 2000,
Outlock 2000,
Mozilla,
...

nur: die laufen alle nicht in Java, und können z.T. viel weniger als
mein eclipse, brauchen aber auch ewig zum Starten

Micha
--
Homepage der Newsgroup de.comp.lang.java - http://www.dclj.de
Jochen Schmitt
2003-09-24 17:25:59 UTC
Permalink
Post by Michael Schmidt
Post by Jochen Schmitt
Wenn Du eines der folgenden Produkte startest, dann wüstest Du,
woher die Vorurtiel komm
IBM Websphere Studio Application Developer
IBM Websphere Studio Enterprise Developer
Eclipse
Together.
mfg: Jochen Schmitt
Also in so eine Liste müßten dann auch
Word 2000,
Outlock 2000,
Mozilla,
Sorry, aber selbst im Vergleich mit den von Dir genannten
Produkten dauert der Start von IBM WSED eine Ewigkeit.

mfg: Jochen Schmitt
Michael Schmidt
2003-09-25 14:26:16 UTC
Permalink
Post by Jochen Schmitt
Post by Michael Schmidt
Word 2000,
Outlock 2000,
Mozilla,
Sorry, aber selbst im Vergleich mit den von Dir genannten
Produkten dauert der Start von IBM WSED eine Ewigkeit.
mfg: Jochen Schmitt
Ursprünglich ging es um Performance, was das mit der
Startgeschwindigkeit zu tun hat, leuchtet mir nicht ein. (Übrigens auch
nicht, was bei einem Textprozessor wie Word Geschwindigkeit zu bedeuten
hat). Eine VM ist eigentlich ein Rechner in sich. Wenn man real
vergleicht, sollte man auch bei Windowsapplikationen die Zeit zum Booten
des Rechners mitzählen.

Und fairerweise in diesem Thread .NET und Java-Applikationen
vergleichen. Große .NET-Apps gibt es nämlich auch noch nicht. Der
.NET-Award von MS 2002 wurde an eine Anwendung verliehen, die zu diesem
Zeitpunkt gerade auf dem Papier existierte. Zufälligerweise war ich
damals gerade in der Firma beschäftigt und hatte erst eine Woche vorher
den aktuellen Entwicklungsstand bewundern dürfen.

Übrigens auf meinem Rechner zuhause ist der IE am langsamsten. Nach der
Eingabe einer Webadresse vergehen erst mal 3 Minuten, bis sich die
Sanduhr dreht.

Übrigens nutze ich WSED nicht. eclipse braucht bei mir auch manchmal
mehr Zeit zum Starten, aber das sind so Anwendungen, die ich nicht
starte und wieder beende, sondern laufen lasse. Solange sie starten,
hole ich halt Kaffee.

Micha
--
Homepage der Newsgroup de.comp.lang.java - http://www.dclj.de
Jochen Schmitt
2003-09-25 15:29:50 UTC
Permalink
Post by Michael Schmidt
Ursprünglich ging es um Performance, was das mit der
Startgeschwindigkeit zu tun hat, leuchtet mir nicht ein. (Übrigens auch
nicht, was bei einem Textprozessor wie Word Geschwindigkeit zu bedeuten
Das die Geschwindigkeit beim Start eines Programmes letzendlich
nichts über die Performance des Programmes aussagt, ist mir schon
klar.

Aber gerade im Desktopbereich spielen spsychologischen Effekte
eine Rolle und mit einer langen Startphase wird man beim Anwender
keine Pluspunkte sammeln können.

mfg: Jochen Schmitt
Lesen Sie weiter auf narkive:
Loading...