PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : warum ist Java nicht wirklich "universal"?


Lyka
2008-06-05, 11:48:19
Java wurde ja als die übergreifende Computersprache bezeichnet, aber irgendwie kann ichs langsam nicht mehr nachvollziehen. Würde ja bedeuten, daß man ein Java-Programm auf jeder Plattform mit bestehendem Java (midlet-Manager) ausführen könnte.

Ich habe da ein nettes kleines Programm (Java), das für das Sony Ericsson W880i geschrieben wurde. Da ich aber nun ein Gläubiger war, testete ich es mit dem WIndows Mobile Java-Midlet-Manager und mit dem Windows-Java JRE.

Geht nur nicht, es fehlen Klassen, auf Windows PC brichts sofort ab (Fehlermeldung).

Oder ist diese Universalität lediglich theoretisch gemeint?

Shink
2008-06-05, 12:00:49
Java ist "universal", aber Java ist nunmal nur eine Programmiersprache.
Eine Java-Plattform (z.B. Java Mobile oder JRE - das ist nicht das selbe) ist eine Sammlung von Libraries. Innerhalb eine Plattform ist man also auch "universal".

Verwendet man nun aber auch darüber hinaus gehende, maschinenabhängige Libraries außerhalb der standardisierten, definierten Plattform geht das natürlich nicht mehr: Was soll ein Handy machen wenn ich einen Druckbefehl ausführ und was soll der PC machen wenn ich die erste Nummer im Telefonbuch anrufen will?

Lyka
2008-06-05, 12:12:38
Es handelt sich um ein Spiel, daher kam mir der Gedanke nicht. hmm, schade.

Monger
2008-06-05, 12:24:19
Das universalste was Sun selbst bietet, ist ja die Java Micro Edition (J2ME). Von der Grundidee her sollte das die gemeinsame Plattform für alle Java-fähigen Kleingeräte sein.

Aber wie es nunmal so ist, haben viele Handy Hersteller (aus welchen Gründen auch immer) ihre ganz eigenen Java Implementierungen gemacht (auch mit ganz eigenen Bibliotheken, um z.B. auf die eigenen Displays und Handy Features anzupassen), die natürlich hinten und vorne nicht mit den Standards übereinstimmen. Deshalb sind blöderweise viele Java Anwendungen gar nicht auf allen Handys gleichermaßen lauffähig, auch wenn da ein Java Siegel drauf klebt.

Einheitlichkeit setzt halt nunmal leider guten Willen voraus.

Shink
2008-06-05, 12:35:24
Ist nunmal der Preis der Flexibilität. Wollte man das nicht, könnte man mit Java nur das verwenden was Sun spezifiziert hat. Was für Hardwarehersteller (wie z.B. SEM) sicher nicht schön wäre.

][immy
2008-06-05, 13:05:50
zudem ist java nur dann universal wenn du auch nichts wirklich nutzt außer berechnungen. sobald es um ausgaben geht wirst du auf den meisten geräten (solange es keine konsolen-ausgabe ist) probleme bekommen.
das heißt du brauchst bei der ausgabe meistens noch eigene libraries.

der vorteil den du hast ist, das die kernelemente nicht noch einmal geschrieben werden, aber eine 1:1 code-übernahme ist meistens nicht möglich (spätestens wenn du versuchst hardware anzusprechen)

Gast
2008-06-07, 16:25:17
[immy;6557106']

der vorteil den du hast ist, das die kernelemente nicht noch einmal geschrieben werden, aber eine 1:1 code-übernahme ist meistens nicht möglich (spätestens wenn du versuchst hardware anzusprechen)


Für Hardware gibt es die ganzen Java Specification Request (JSR) Spezifikationen.
Damit kann man z.B. Bluetooth überall gleich ansprechen, wenn die Handys alls
JSR-082 erfüllen.

Gast
2008-06-07, 16:25:55
http://en.wikipedia.org/wiki/Java_Specification_Request