VOICE Homepage: http://de.os2voice.org
Juni 2001

[Newsletter Inhalt]
[Vorherige Seite] [Nächste Seite]
[Artikelübersicht]

editor@os2voice.org


Simplicity für Java

Von: Isaac Leung ©Mai 2001  Übersetzung: Heribert Bieler

Was ist das ?

Simplicity (Einfachheit) für Java ist ein Produkt von Data Representations, beheimatet in Springfield, New Jersey. Sie beanspruchen für sich, seit 1997 geschäftlich tätig zu sein, was - gemessen in Computerjahren - eine sehr lange Zeitdauer ist, wie ich annehme.

Simplicity ist eine IDE (Integrierte Entwicklungsumgebung) programmiert in 100% reinem Java. Also, dies bedeutet, es läuft auf jeder Plattform, die eine gute JVM (Java Virtual Machine) enthält. Sie behaupten, dies sei der "einfachste Weg zur Erstellung von Java Applets und Anwendungen". Es wird in einer regulären und einer professionellen Version geliefert, wobei die professionelle Version einige Eigenschaften zur leichteren Entwicklung von Datenbankanwendungen und serverseitigen Applets besitzt. Ich habe die reguläre Version gekauft, da ich die Zusatzfunktionen nicht benötige.

Diejenigen von Ihnen, die hoffen, von diesen Aussagen enttäuscht zu sein werden enttäuscht sein: Es wird diesen Ansprüchen schlichthin gerecht und ist eines der Produkte, die so arbeiten, wie es in der Werbung beschrieben wird.

Der Testaufbau

Vor gar nicht langer Zeit hatte Java eine schreckliche Reputation: Zu langsam und zu viele Fehler (bugs).  Nach meiner Meinung hatte es dieses Urteil verdient. Aber falls Sie die Erneuerungen nicht mitverfolgt haben: Java hat grosse Verbesserungen gemacht. Es mag nicht so bekannt in der Verbraucherszene sein, aber Java arbeitet sehr eifrig im Hintergrund vieler Geschäftsanwendungen.  (Glauben Sie es oder nicht: Es ist inzwischen unverzichtbar - das COBOL des neuen Milleniums, sagen einige).

Also, wie ist Simplicity, das in der Tat in Java für Java geschrieben wurde ? Wird es einigermaßen zufriedenstellend auf einer Durchschnittsmaschine funktionieren ? Dies ist meine hauptsächliche Entwicklungsmaschine:

Ich habe zusätzlich auf folgenden Plattformen eine Evaluierung vorgenommen: Ja, mir ist klar, daß meine Systeme mehr RAM haben und daher etwas schneller sind, als einige von ihren Computern. Aber nochmals: Ich bin bereits beträchtlich hinter den aktuellsten Systemen zurück, so daß dies meiner Meinung nach vernünftige Testumgebungen sind.

Installation

Simplicity ist normalerweise nur als Download verfügbar (die CD gibt es auf Anfrage mit zusätzlichen Kosten). Verschiedene Pakete werden für WinXX, Solaris, MacOS, OS/2 und ein generisches UNIX  bereitgestellt. Wie bereits erwähnt, Simplicity ist 100% reines Java, es läuft also auf jeder Java fähigen Plattform. Die Pakete stellen eigentlich verschiedene Installations-Skripte für die verschiedenen Plattformen bereit (zur Bequemlichkeit).

Die Installation ist simpel für OS/2, vielleicht sogar die einfachste. Unzippen Sie in das Verzeichnis Ihrer Wahl. Ein kurzes Skript ist vorhanden um ein Symbol für die Arbeitsoberfläche zu erstellen, aber das ist natürlich optional. Und, ähhh, das ist es.

Das WIN32 Paket wird mit einer ausführbaren Datei geliefert, die InstallShield für Java benutzt. Raffiniert ? Vielleicht. Aber einfach? Nicht notwendigerweise. Jedenfalls nicht in meinem Fall. Das erste Mal war in Ordnung, aber als es ans Upgrade, de-installieren oder Verschieben des Originalverzeichnisses ging , Autsch! Es deinstallierte nicht korrekt bzw. vollständig. Dann konnte ich das Upgrade nicht installieren, dann nicht das Original in einem anderem als dem ursprünglichen Verzeichnis (dem der ersten installation) installieren. Alles was wirklich gemacht werden muß, ist, die Dateien irgendwohin zu entpacken und ein kurzes Start-Skript zu schreiben.... also sollte man doch meinen, der Installer wäre in der Lage, korrekt zu Installieren bzw. Deinstallieren. Besonders wenn etwas so einfach ist wie diese Sache.

Lasst uns beginnen !

Simplicity startet relativ schnell, sogar mit dem Laden der JVM. Es fühlt sich nicht langsamer an als wenn Netscape startet, so daß ich keine wirklichen Beschwerden in dieser Hinsicht habe. Nach einer kurzen Aufmachungsanzeige, wird der Startdialog präsentiert. Es werden nur 3 Auswahlmöglichkeiten gezeigt. Öffnen eines existierenden Projektes, Starten eines neuen Projektes, oder Sie gehen durch das Tutorial. Die Wahlmöglichkeiten sind schön klar und offensichtlich. Sehr schön, es gibt bereits ein warmes, freundliches Gefühl :

Startup Dialog

Ich würde für jeden das Herunterladen der Gratis-Testversion und die Absolvierung des Tutorials empfehlen. Was ich Ihnen in Worten oder Bildschirmabbildungen beschreiben kann, ersetzt diese Praxis nicht! Sie müssen es wirklich selbst ausprobieren oder eine life Demo davon sehen um die Leichtigkeit wertschätzen zu können, mit der man mit der Software arbeiten kann.

Arbeiten mit Simplicity

Das Herz von Simplicity scheint der Composer zu sein und die Objektpalette. Dies zwingt Sie sehr stark, den Entwurf der Ansicht und des Layouts einer Anwendung schon zu erstellen, bevor man an das eigentliche Programmieren herangeht (falls Sie das Programmieren überhaupt brauchen). Ihr persönlicher Programmierstil mag sich davon unterscheiden.

Wenn Sie mit einem neuen Projekt im Composer starten, sehen Sie zunächst ein leeres Fenster. Die erste Sache, die höchstwahrscheinlich ansteht, ist der Entwurf des Layouts Ihrer Anwendung. Gehen Sie einfach zur Objektpalette, wählen Sie dann das Layout Ihrer Wahl und lassen es in das leere Fenster "fallen".

ComposerObject Palette Layout

Danach fügen Sie Text Labels, Knöpfe, Checkboxen hinzu, was immer Sie wollen. Die Basiskomponenten werden über die Objektpalette bereitgestellt, wie Sie in der Abbildung unten sehen. Alle diese Dinge können Sie einfach auswählen und in Ihr Layout fallen lassen. Es sollte darauf hingewiesen werden, daß alles im Layout und der Basispalette Standard Java Objekte sein sollten, mit einigen Ausnahmen (siehe meine Nörgelei weiter unten). All die anderen Karteikarten sind Extras, also Beigaben, die Simplicity zu Ihrer Bequemlichkeit erzeugt hat. Wenn Ihre Anwendung auf diese Dinge aufbaut, müssen Sie also das  .JAR file von Simplicity mit bereitstellen.

Object Palette Basic

Alles was Sie hinzufügen (sogar das Layout selbst) bekommt einen Objektnamen, den Sie natürlich ändern können. Diese sind im wesentlichen Variablennamen (hey, Java ist objektorientiert ok?) und Sie sollten diese Namen zu etwas sinnvollem ändern. Wenn Sie eine Menge solcher Komponenten in Ihrer Anwendung haben, sind sie manchmal nicht sichtbar, so daß der einzige Weg ein Objekt zu selektieren über die Drop-Down Box des Composerfensters führt. Sie haben einen Fehler gemacht ? Kein Problem. Sie können die Komponente einfach anklicken, gehen zum Composer-Fenster und klicken den  "Recycle" Knopf. Falls Sie diese Objekte erneut benutzen wollen, finden Sie sie alle auf der   "Recycled" Karte der Objektpalette wieder.

Harte Arbeit

Bis zu diesem Punkt ist es sehr einfach zu benutzen. Es verhält sich eigentlich ziemlich genau wie ein einfaches Zeichenprogramm. Sie haben einfach ein sehr schönes Front-End, perfekt für Bildschirmabbildungen und um dem Wagniskapitalgeber mehr Geld aus den Taschen zu ziehen. Aber jetzt gilt es, wieder auf den Boden zu kommen und etwas damit anzufangen. Oh, äh. Okay, Zeit für ein Bekenntnis. Ich bin ein Programmierautodidakt. Ich bin ein fähiger Programmierer aber keine Herausforderung für einen wirklichen Entwickler wie meinen Bruder. Ich habe mir meine Zähne abgebissen mit den ersten Schritten in BASIC, dann kam Maschinencode auf einem Commodore 64. Nun, ich habe Fortran, C, Lisp, Smalltalk and Rexx zu meinem Repertoire hinzugefügt. Aber ich habe niemals Java benutzt. Um ehrlich zu sein habe ich es 'mal mit   IBM's Visual Age für Java 1.0 versucht, aber ich kam nicht durch das erste Tutorial. Simplicity jedoch macht Ihnen den Einstieg wirklich einfach. Ich muss ehrlich zugeben, daß ich nicht weiter als bis zum ersten Tutorial kam, weil es mich danach einfach zu sehr juckte, loszulegen.  (Das, und ich musste eine Frist einhalten  :).

Schauen sie in das Composer Fenster: Dort sind anfänglich 3 Karten für jedes Objekt. Eine steht für den Typ des Objektes, Sie können es also umbenennen und andere Eigenschaften ändern. Die nächste Karte trägt den Titel "Visual", und ermöglicht es, wie der Name vermuten läßt, die visuellen Objekteigenschaften zu ändern, also z. B. Schriftart, Farbe, usw. Die einzig übriggebliebene Karte ist beschriftet  "Listeners"... und das ist alles was Sie beim Start wissen müssen.

Composer Listeners

Meistens wollen Sie es nur mit Knöpfen oder Menüs zu tun haben, also klicken Sie einfach die Checkbox  "Listen for Action events". Dies fügt einfach eine zusätzliche Karte  beschriftet  "Action" hinzu. Wenn Sie andere Checkboxen anklicken, werden natürlich entsprechend andere Karten hinzugefügt.

Betrachten sie einmal diesen ganzen Code. Er entstammt dem "Lade"-Knopf meiner Anwendung, der einen Dateidialoges aufruft, nach einem Dateinamen fragt das Ergebnis in einer Variablen ablegt. Schon beunruhigt? Na ja Sie sollten es nicht sein! Einfach deshalb, weil Ich nichts davon geschrieben habe ! Okay, um ehrlich zu sein, ich entschied mich einen Variablennamen zu ändern, der Punkt ist jedoch, daß ich es nicht selbst machen musste. All dies war das Ergebnis eines magischen, farbigen  "Code Sourcerer" Knopfes. Es ist ein Programm Assistent, der Sie durch alles führt bis zum Code generieren.

Composer Code

Meine erste Anwendung !

Okay hier ist sie. Eine Bildschirmabbildung der ersten Anwendung, die ich mit Simplicity erstellt habe. Es bietet mehr als nur ein schönes Gesicht. Alle drop-down Menüs funktionieren wirklich. Das Drücken von  "F1" bringt wirklich die einfache Hilfebox hoch, und diese Checkboxen und Texteingabefelder machen in der Tat etwas. Die einzige Sache, die nicht geht ist der  Todesstrahlenknopf, aber ich arbeite daran. (Seien Sie nicht beunruhigt, die Extraeigenschaften wurden entfernt, bevor ich diese spezielle Anwendung veröffentlicht habe ;).

Sample Application

Wieviel Arbeit war es? Wieviel Programmierarbeit? Ich musste ca. 135 Zeilen nutzlosen Code schreiben, der Großteil davon waren überwiegend write-Anweisungen und Variablenvereinbarungen. Das war's. Warum unnötig? Weil ich der Ansicht bin, es ist eben einfacher Code zu schreiben als durch den Code Sourcerer (Quellersteller) zu gehen. Die Sache ist die: Ich *muss* nicht so viel Code schreiben. Bei Benutzung von Code Sourcerer ist die Zahl der Zeilen, die ich schreiben muss, wesentlich geringer als 135. Code Sourcerer macht die ganze Arbeit für Sie.

Und das ist eines der großartigsten Teile dieser Software. Simplicity hilft mir, wenn ich es nötig habe. Aber wenn nicht, kann ich dies umgehen und springe direkt da in den Code hinein, wo ich Modifikationen anbringe, und gehe dann zurück in die visuelle Entwicklungsumgebung, wenn es nützlich ist.

Was? Keine Auswüchse ?

Hey, nichts ist perfekt! Ich habe während meines kleinen Abenteuers einige Unannehmlichkeiten entdeckt, die ich mit Ihnen teilen möchte, und ich werde einige Kommentare zum Vergleich mit IBM's  Visual Age für  Java 3.0 machen.

Meine erste Nörgelei betrifft die drop-down Box, die für die Auswahl von Objekten im Composer Fenster zuständig ist. Sie scheint in der Reihenfolge der erzeugten Objekte sortiert zu sein. Das geht in Ordnung für eine kleine Anwendung mit 10-15 Objekten, aber für eine große Anwendung ist eine alphabetische Sortierung notwendig ! Ich habe dies gegenüber Data Representations erwähnt, und sie haben zugestimmt, daß dies ein Problem sei; sie würden dies für die Zukunft berücksichtigen.

Eine zweite Unannehmlichkeit ist, daß Sie die  "drag und drop" Dinge nicht frei in der Anwendung bewegen können. Wenn Sie sich zum Beispiel entscheiden, den "Load" Knopf unten und nicht oben auf dem Fenster zu haben, können Sie ihn nicht einfach aufnehmen und bewegen, sogar wenn sie Platz in Ihrem Fenster haben.  Der einzige Weg das zu bewerkstelligen ist das  "Recyclen" dieses Objektes. Danach gehen Sie zur "Recycled" Teileliste, nehmen es dort auf und lassen es an der gewünschten Stelle wieder fallen.

Einige der Layout-Dinge und Objekte sind nicht JAVA-Standard, sondern von Data Representations extra erzeugte Objekte, die mit Simplicity zusammengepackt wurden. Diese sind wirklich nützlich, aber die Sache ist, dass der Code dafür nicht in dem vom Endanwender erzeugten Code (also in dessen Anwendung) enthalten ist. Er befindet sich  nämlich komplett in der  .JAR Datei von Simplicity. Das ist solange kein Problem, wie es sich um eine eine serverseitige Anwendung handelt, aber wenn Sie diese als Stand-Alone (separate) Anwendung verteilen wollen, ist es etwas problematisch. Es ist Ihnen - nach Aussage von Data Representations - freigestellt, diesen Code zu verteilen, aber anstelle eines Installationsskripts oder Anweisungen, die einfach Ihre Anwendung ausführen, müssen Sie sicher sein, dass die .JAR Datei in den entsprechenden Pfaden enthalten ist. Oder Sie müssen die Rechnerumgebung des Benutzers ändern.

Nun, dies wäre nicht so schlimm, wenn die Objekte des JAVA-Standards in offensichtlichen Gruppen organisiert wären. Aber so ist es eben nicht.  Alle Komponenten zum Layout und den Basisobjekten sollten Standard sein, aber einige sind es nicht. Also graben Sie sich entweder durch die Java Dokumentation oder Sie gehen nach dem Zufallsprinzip vor: Was ist Standard und was nicht. Um ihre Ehre zu retten muß ich dazu sagen, daß ich mit Data Representations gesprochen habe und man mir zugestimmt hat, daß das nicht schön ist. Bei einer zukünftigen Änderung wird das berücksichtigt.

Einer der üblichen Zusammenhänge - besonders bei Software - ist der zwischen der Leichtigkeit der Benutzung, der Mächtigkeit der Software und deren Flexibilität. Simplicity hat wirklich die Eigenschaft, leicht benutzbar zu sein, obwohl - natürlich - der Zugang zum Quellcode es genauso mächtig und flexibel macht wie jede anderes Entwicklungswerkzeug; von dem ich weiss. Aber trotzdem, ist das Ihre Absicht, würden sie wahrscheinlich EPM laufen lassen und keine von den visuellen Entwicklungsumgebungen benutzen.  IBM's  Visual Age für Java (VAJ) ist in etwa ein Konkurrenzprodukt. Dieses macht meiner Meinung nach bei der Benutzerfreundlichkeit einen Kompromiss zu Gunsten der Mächtigkeit. Es war meine Erfahrung, dass man mit VAJ sicherlich nicht einfach mit Java starten kann und es war eine grosse Freude mit Simplicity Java zu lernen. Jedoch, nachdem man die Basisdinge gelernt hat, und gelernt hat mit dem Code " eins zu sein", ist meiner Ansicht nach VAJ über Simplicity zu bevorzugen, jedenfalls für die komplizierteren Projekte.

WinNT im Vergleich mit OS/2 und Performance

Hier nur einige kurze Bemerkungen zu Simplicity unter  Windows NT und OS/2. Dieser Vergleich erfolgte auf der gleichen Maschine (HP PIII-600), die den Boot Manager benutzt um zwischen den Betriebssystemen umzuschalten.

Wie bereits früher erwähnt, geschieht die Installation unter Windows NT über den InstallShield für Java, der einiges umständlicher ist als das "unzip" installieren unter OS/2. Wie auch immer, der InstallShield Edition ist noch viel problematischer. Die OS/2 Installation ist leicht genug, so dass jeder, der etwas von Java Programmierung versteht, in der Lage sein sollte ohne Fehler folgen zu können. Ich habe festgestellt, das Sie auch unter Windows das unzippen durchführen können, aber hier zeigt sich die Java "Integration" in OS/2, die Sie einige Zusatzschritte sparen lasst, um die  .CMD Datei fur Simplicity zu erstellen. Daumen hoch für OS/2 bei diesem Punkt.

Als ich das erste Mal Simplicity startete, habe ich es eigentlich lieber unter Windows NT als unter OS/2 getan, obwohl die Zeit zum Starten und das Laufen lassen unter OS/2 schneller ist. Warum ? Einfach wegen zwei nervenden Fehlern. Der eine war ein verschwindender Cursor im Texteditor Fenster. Das zweite Problem war ein schrecklich nervendes blinkendes Fenster, das jedesmal hochkam, wenn ich eines der Anwendungsfenster bewegt habe. Aber diese Probleme wurden bei den APAR's von IBM berücksichtigt (bei der JVM für OS/2) und folgende Fixes haben mit diesen Dingen aufgeräumt. So ist die einzige Sache, die jetzt zu sagen ist die, das Simplicity genauso gut unter OS/2 wie unter Windows NT läuft, aber es ist viel schneller unter OS/2. OS/2 gewinnt also beide Runden!

Simplicity war auf der PIII-600MHz Maschine so schnell, dass man kaum sagen konnte, ob es nicht eine native Anwendung ist und auf der PII-300MHz Maschine immer noch einfach genug fur Entwicklungszwecke zu benutzen, zumindest unter OS/2. (Und ich habe wirklich einige Teile einer Anwendung auf dieser Machine erstellt, da es mein bevorzugter laptop ist). Die P233MMX? Naja, wenn es erst mal geladen ist, ist es immer noch nutzbar, aber ich denke das ist das untere Ende, was ich noch akzeptieren würde. Wenn Sie ein wirklich grosses Projekt haben oder Sie lassen andere Programme im Hintergrund laufen, finden Sie es wahrscheinlich etwas langsam, um es für lange Zeit zu benutzen. Das ist aber in Wirklich der "Fehler" der JVM, Simplicity selbst ist dagegen eine der besseren Java  Anwendungen, die mir begegnet sind.

Schlussfolgerung

Simplicity für  Java ist ein Java-basiertes tool für Schnellentwicklung von Anwendungen (Rapid Application Development, "RAD"). Es arbeitete exakt wie in der Werbung versprochen und ist sehr sehr leicht zu benutzen, auch fur die ungeübten. Für  $149, ist es kein Produkt, das man spontan kauft, aber wenn sie Programmierer sind, oder  daran denken, in Richtung Programmierung aktiv zu werden, ist es nicht schlecht... wie ich herausgefunden habe, ist es so leicht zu benutzen, dass man es fast als Selbstlernkurs für Java auffassen kann. Wenn Sie es so sehen ist $149 ein guter Preis.

Ich habe einiges über Simplicity gehört und konnte nicht verstehen, was dieses Getue darüber soll, bis ich es tatsächlich selbst ausprobiert habe und durch das erste Tutorial gegangen  bin. Mir fehlen die Worte, zu beschreiben wie gut es arbeitet. Die Testversion kann man kostenlos herunterzuladen, holen Sie sich diese!
Quellenverzeichnis:
Hersteller:Data Representations
Data Representations Logo
Preis: 149,- US$ (regular edition), 895,- US$ (Professional edition)
Systemanforderungen: Beliebiges System mit einer Java 1.1.8 JVM


Artikelübersicht
editor@os2voice.org
[Vorherige Seite ] [ Inhalt] [Nächste Seite ]
VOICE Homepage: http://de.os2voice.org