Re: Portabilität?!
Daniel Toplak hat gesagt.:
I
Zum Thema Plattformunabhängig:
Viele Leute sind zu engstirning, sie blicken nicht weiträumig.
Bei Plattformunabhängikeit spreche ich nicht nur von Windows und Linux, denn es gibt noch zig andere Betriebssysteme, die durchaus ihre Daseinsberechtigung haben.
Und im Bereich professioneller Plattformunabhängiger Anwendungen wird .Net keine Rolle Spiele. Auch Java ist glaube ich keine große Alternative. (Chris bitte verzeih mir
![Smile :-) :-)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f642.png)
).
Ok ich kann über Java nicht groß Urteilen, aber ich kann auch Gründe nennen, die dagegen Sprechen:
- benötigt JRE
- Performance
- kein echten Binaries (oder täusch ich mich da) in bezug auf Closed Source
Java spielt schon eine grosse Rolle in plattformunabhängigen Anwendungen.. Java ist nach C++ die 2. meist eingesetzte Sprache. Gerade wenn es um sogenannte Business-Anwendungen geht die stark auf Netzwerke setzen ( SOAP - RPC - Verteilte Systeme) ist Java die nr 1.
IBM mit ihrem Websphere, BEA mit Weblogic , Oracle , Borland verdienen sich die Finger krum und dämlich an den jeweiligen Applikationsserver.
Das sind Cash-Cows für die Firmen. Amazon hat die Webseite mithilfe J2EE aufgebaut.
Zur performance, da war vor kurzem erst ein neuer Benchmark in der iX der aufzeigte das Java mittlerweile 90% an C++ heran. In manchen Operationen sogar schneller als C++, das kommt durch den HotSpot Compiler der den Code extrem optimiert. Ich lese dazu gerade ein Buch, es ist erstaunlich was dieser durch Caching und ähnliche Techniken alles leistet.
Java wird schon seid 1.2 nicht mehr wirklich interpretiert. Auch wenn kompilierter Java Code immer noch bytecode ist, wird dieser bei Bedarf in binary kompiliert.
Java hat sich nicht durchgesetzt auf dem Desktop, das stimmt. Das liegt zumeist an der mangelenden Performance von Swing Oberflächen. Das problem ist die meisten Leute
nehmen die Geschwindikeit von Swing Oberflächen und münzen das ganze als Java ist langsam. Das geht mir gewaltig auf die Eier, weil es eine extrem unqualifizierte Aussage ist.
Swing ist deshalb so langsam, weil sämmtliche Controlls auf den Monitor gezeichnet werden und nicht nativ vom Betriebssystem her kommen. Dies war nötig da nicht alle Plattformen auf denen die VM portiert wurde, z.b eine Combobox vorhanden war. Also gibt es AWT welches ein kompromiss aus allen OS ist und demnach nur wenige Controlls bietet, und Swing welches durch die zusatzschicht etwas träge wirkt.
Aber ich programmiere mittlerweile wenn ich GUIs programmiere mit SWT. SWT gibt es nicht für alle Plattformen auf denen eine JVM läuft, sondern nur auf jenen die bestimmte Anforderrungen entsprechen. So gibt es SWT für Windows, Linux/UNIX GTK und Motif, MacOS und OS/2. Damit dürfften doch mehr als 99% aller eingesetzten OS entsprechen. Durch SWT wird nicht selber gezeichnet sondern ähnlich wie bei AWT die nativen Betriebssystemkomponenten genutzt. SWT Applikationen unterscheidet sich in aussehen und feeling rein gar nicht von nativen Applikationen. Wer das mal gerne testen möchte, der gehe auf
http://www.eclipse.org und lade sich eclipse herunter
Daniel Toplak hat gesagt.:
I
Zum Thema Mono
Also beim kurzen Überfliegen des Mono-Projektes sind mir 2 große Nachteile aufgefallen.
- Nicht Plattformunabhängig bezieht sich nur auf Linux (ok evtl. lässt es sich auf anderen UNIX-Systemen übersetzten
- Absolut unvollständig und das wird es evtl. auch immer bleiben, siehe Aussage von chibisuke
Also bedeutet der Weg .Net über Mono doch auch nur eine Sackgasse, oder?
Ich für meinen Teil muss beruflich Anwendungen (mit GUI) entwickeln, die auf folgenen Betriebssystemen Lauffähig sind:
Windows
Linux
SunOS
HP-UX
Irix
AIX
und da hat .Net keine Chance.
Denkt mal darüber nach.
Gruß Homer
Auch wenn du von Java keine Ahnung hast (
![Smile :-) :-)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f642.png)
scherz), hier hast du vollkommen recht