Java ME - Anwendungsentwicklung für Handys, PDA und Co

Ulrich Breymann, Heiko Mosemann

Java ME

Anwendungsentwicklung für Handys, PDA und Co.

2008

449 Seiten

Format: PDF, Online Lesen

E-Book: €  4,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446416314

 

1.1 Warum Java? (S. 17)
Sicher kann man ein schlechtes (oder gutes) Programm in jeder Programmiersprache schreiben, und die Frage, welche die »beste« Programmiersprache ist, bewegt viele Gemüter. Wenn Software effizient entwickelt werden soll, müssen bei der Auswahl einer Programmiersprache verschiedene Kriterien beachtet werden, wie etwa die Verfügbarkeit von Entwicklungsumgebungen. Aus softwaretechnischer Sicht hat C das Manko, dass es die Objektorientierung nicht unterstützt. Java scheint aus folgenden Gründen am besten im Vergleich zum verbleibenden hauptsächlichen Konkurrenten C++ geeignet:

Verbreitung: Java gibt es auf über 1,8 Milliarden mobilen Endgeräten, und etwa 80 % aller neuen verkauften Handys und PDAs usw. basieren auf Java.

Portabilität: Java Bytecode ist auf allen JVM lauffähig, und jedes Betriebssystem von praktischer Bedeutung hat eine JVM. Der Aufwand, eine Anwendung auf ein anderes System zu portieren, ist damit sehr klein und oft gleich null.

Sicherheit: Java hat ein API (Application Programming Interface) für sicherheitsrelevante Abläufe. Dazu gehören Authentifizierung, die Überprüfung von Signaturen und die Vergabe von Rechten (Autorisierung).

Akzeptanz: Java ist auf diesem Gebiet ähnlich wie C++ sehr weit verbreitet und hat eine große Community. Es gibt Foren für Entwickler bei allen namhaften Herstellern.

Robustheit: Java-Anwendungen laufen in einer »Sandbox«. Die Java Virtual Machine (JVM) wacht darüber, dass ein Absturz eines Programms keine anderen Anwendungen stört. Darüber hinaus ist der Bytecode vor der Ausführung mit einem Prüfsummenverfahren verifiziert worden, um die Integrität des Codes sicherzustellen. Unbemerkte Veränderungen, zum Beispiel durch ein Virus, werden dadurch deutlich erschwert.

Garbage Collector: Java hat einen Garbage Collector, sodass keine Speicherlecks auftreten. In C++ können Speicherlecks dagegen nur durch sorgfältige Programmierung vermieden werden.

De-facto-Standardisierung: Es gibt einen C++-Standard (ISO 14882), aber keinen Java-Standard. Der C++-Standard umfasst nur einen sehr kleinen Anteil von Bibliotheken, zum Beispiel gibt es nichts zu gra.schen Benutzungsoberflächen (GUI - engl. für graphical user interface) – alle derartigen APIs und Bibliotheken sind plattformspezifisch. Java hingegen hat eine reichliche Menge an APIs, nicht nur für grafische Benutzungsoberflächen, sondern für die Vernetzung und anderes. Die Spezifikationen für alle Erweiterungen der Java-Plattform entstehen im von Sun relativ demokratisch gestalteten Java Community Process [JCP]. In diesem Konsortium gibt Sun die Spielregeln vor, nach denen die Expertengruppen neue Spezifikationen austüfteln. JCP-Mitglieder, die ein neues Feature entwickeln, veröffentlichen dabei als Erstes ein JSR (Java Specification Request). Auf der Website www.jcp.org sind viele der JSRs samt der fertig gestellten Spezifikationen für jedermann einsehbar. Auch interessierte Einzelpersonen können am JCP teilnehmen. Weil so gut wie alle wichtigen Softwareunternehmen und auch Open-Source-Organisationen wie die Apache Software Foundation im JCP mitarbeiten, ist eine breite Marktakzeptanz gesichert und damit ein De-facto- Standard gegeben.

Es soll nicht verschwiegen werden, dass der Vorteil der Portabilität auch mit Nachteilen verbunden sein kann. Auf Desktop-PCs sind Java-Programme im Allgemeinen genauso schnell wie C++-Programme, weil die JVM einen Just-intime- Compiler aufruft.

 

© 2009-2024 ciando GmbH