|
De:NeoOffice und Aqua
From NeoWiki
Häufige Fragen zum Design und zur Entwicklung von NeoOffice oder "Alles, was Sie über NeoOffice nicht wissen (und daher lesen sollten, bevor Sie auf [Mac]Slash[Dot] posten)."
Aqua-Anpassung und Mac-OS-X-Integration
Warum hat NeoOffice nicht die typische Mac-OS-X-Oberfläche mit den blauen Knöpfen?
NeoOffice ist zur Zeit noch nicht sehr an Aqua angepaßt. Aber die Entwickler arbeiten daran!
Das Ziel ist, langsam Aqua-Oberfläche hinzuzufügen, so daß es mehr und mehr wie ein Mac-Programm aussieht, bis es keinen Hinweis mehr darauf gibt, daß es jemals kein Mac-OS-X-Programm war.
In den letzten Monaten ist NeoOffice Stück für Stück verbessert worden.
Was sind die neuesten Durchbrüche bei der Aqua-Anpassung?
Stand von November 2005:
- Verbesserte Kompatibilität mit sprachgesteuerter Software (10/2005)
- Eingebettete EPS-Dateien können gedruckt werden. (09/2005)
- Verbesserte Unterstützung von internationalen Tastaturbelegungen (09/2005)
- Dockmenü mit Items aus dem "Quickstart"-Service (auch im NeoOffice-Menü zu finden) (06/2005)
- Kein "graues Fenster" mehr, wenn das letzte Dokumentenfenster geschlossen wird, aber das Programm bleibt trotzdem geöffnet, genau wie ein normales Mac-Programm (05/2005)
- Spotlight-Integration unter Mac OS X 10.4 "Tiger" per NeoLight (en) (05/2005)
- Benutzung der Farben, die im Erscheinungsbild-Fenster festgelegt wurden (04/2005)
- Unterstützung indischer Sprachen (04/2005)
- Unterstützung für Eudora, Entourage und Mail als externe Mail-Programme (03/2005)
- AppleScript für Drag-and-Drop-Installation der Hilfedateien für nicht-englische Sprachen (03/2005)
- Drag & Drop zwischen NeoOffice und anderen Programmen (03/2005)
- Beendet sich nicht mehr, wenn das rote Schließen-Widget am letzten Dokumentenfenster gedrückt wird (03/2005)
- "Über NeoOffice"- und "Einstellungen"-Items im "NeoOffice"-Menü (02/2005)
- Lokalisierte Benutzeroberflächen für 40 Sprachen (12/2004)
- Neues Aqua-Ikon und Startbildschirm (12/2004)
- Optimiert/kleinere PDFs (12/2004)
- Drag & Drop für Texte (12/2004)
- Scrollrad-Unterstützung (11/2004)
- Menüs erscheinen jetzt in der weißen Leiste am oberen Bildschirmrand, wie in jedem anderen Mac-Programm. (Vorher waren sie oben im Dokumentenfenster.) (11/2004)
- Automatische Benachrichtigung bei neuen Patches und Versionen (11/2004)
- Patches sind als Standard-Mac-OS-X-Installationspakete verfügbar (09/2004)
- Unterstützung für Macintosh-Datei-Aliase in Öffnen- und Schließen-Dialogen (09/2004)
Bleiben Sie dran, es werden weiterhin neue Funktionen hinzugefügt!
Technologien und Toolkits
Welche Technologien werden bei der Aqua-Anpassung von NeoOffice verwendet?
Aqua ist die Benutzeroberfläche, die Apple für OS X entwickelt hat. Apple stellt drei Umgebungen zur Entwicklung von Programmen mit Aqua-Oberfläche zur Verfügung:
- Carbon (eigentlich für Kompatibilität mit OS 9, auch von Mozilla/Firefox verwendet)
- Cocoa (neue Umgebung, die von NeXT für Mac OS X adaptiert wurde)
- Java (plattformübergreifende Sprache, beinhaltet JFC/Swing für eine an Aqua angepaßte Oberfläche)
NeoOffice/C (das ursprüngliche Prototyp-Projekt) war ein Versuch, Cocoa und Carbon zu benutzen. Das erfolgreichere Projekt, NeoOffice (ursprünglich bekannt als NeoOffice/J), verwendet im Moment eine Mischung aus Cocoa und Java 1.4.2.
Also...ist NeoOffice in Java geschrieben?
Nein.
NeoOffice ist eine Mac-OS-X-Version von OpenOffice.org, die kleine Mengen von Java-Code für das Zeichnen und Konfigurieren von Graphiken verwendet.
OpenOffice.org ist in erster Linie in plattformunabhängigem C++ geschrieben. NeoOffice bedient sich jedoch der fortgeschrittenen Mac-OS-X-Integration von Java, um die Mac-OS-X-Oberfläche anzuzapfen. Mit anderen Worten: Die kleinen Anteile an Java in NeoOffice haben hauptsächlich mit Vorgängen zu tun, die beeinflussen, wie das Programm aussieht. Der Kern des Officepakets ist in C++ geschrieben. (Der Code, aus dem NeoOffice besteht, ist zu 99% OpenOffice.org-Code, der von allen OpenOffice.org-Plattformen benutzt wird, und zu 1% spezieller Mac-OS-X-Code in Java, C++, C und Objective-C.)
NeoOffice läuft nur auf Macintosh-Computern mit Mac OS X 10.3.x oder 10.4.x - nicht unter Mac OS 9, Mac OS X 10.2 oder darunter, Windows, Linux, Darwin oder irgendeiner anderen Art von UNIX.
Wie wird Java in NeoOffice verwendet?
Wie oben erwähnt ist Java hauptsächlich dazu da, an das Mac-OS-X-Aussehen heranzukommen. Was NeoOffice zum Laufen bringt, ist nicht Java selbst, sondern eher die Bibliotheken, die dabei sind, wie Java 2D zum Zeichnen und AWT für Menüs. Sie gehören schon zu Apple insofern als Java 2D eigentlich Quartz und AWT Carbon ist. [1]
Darüber hinaus ist der Java-Anteil mit der Zeit geringer geworden. Als NeoOffice mit der OpenOffice.org-1.1.2-Codegrundlage aufgerüstet wurde (NeoOffice/J 1.1 Alpha), wechselte das Rendering von Texten von Java zu den ATSUI-APIs von Mac OS X, da sie wesentlich besser für komplexes Textlayout geeignet sind als Java. [2] Einige andere Funktionen hat es in Java noch nie gegeben (z.B. das Dock-Menü, das in NeoOffice/J 1.1 mit Carbon arbeitet und in neueren Versionen mit Cocoa)
Warum wird nicht an einer Cocoa-Version von Aqua für OpenOffice.org gearbeitet?
Dafür gibt es mehrere Gründe. OpenOffice.org ist nicht wie ein normales Cocoa-Programm für den Mac aufgebaut. Alle Routinen für Ereignisse, Fontmanagement und Darstellung in Cocoa umzuschreiben wäre eine Riesenarbeit. Demgegenüber ermöglicht Apples Java-Implementation guten Zugriff auf Aqua-Funktionen und ist einfacher mit dem zugrundeliegenden OpenOffice.org-Code zu verbinden. NeoOffice/C hat bewiesen, daß eine Cocoa-Implementation keine brauchbare Lösung war. Es sah nach einer Menge Hacks zwar großartig aus, war aber nicht mal für gelgentlichen Gebrauch stabil genug.
Wie die Dinge stehen ist NeoOffice sehr stabil und ziemlich weit mit der vollständigen Aqua-Anpassung. Jetzt einen anderen Weg einzuschlagen, würde beudeuten, eine Menge guten Code zum Fenster hinauszuwerfen. Der Nachteil daran, Java zu benutzen, ist, daß es (etwas) mehr Speicher braucht als eine reine Cocoa-Implementaion. (Der RAM-Bedarf liegt über der Minimalanforderung für Mac OS X - aber andererseits profitiert Mac OS X davon, mehr RAM zu haben, als minimal erforderlich ist! - und RAM ist billig. RAM hinzuzufügen ist die kostengünstigste Methode, Ihren Mac schneller zu machen.) Apples Verbesserungen an Java 1.4.2 oder Java 1.3.1 haben es NeoOffice 1.2 Alpha sogar ermöglicht, den Speicherverbrauch zu reduzieren und die Leistung zu verbessern.
Ist Cocoa nicht besser als Java?
Aqua ist Aqua.
Diese Frage wird meistens von Entwicklern und Power-Anwendern gestellt. Auf der anderen Seite tendieren Endnutzer dazu, nach den Ergebnissen zu urteilen. Wie es ein Anwender formuliert hat:
"Wenn es aussieht wie eine Ente, geht wie eine Ente und quakt wie eine Ente, dann ist es für den Endnutzer eine Ente. Und die Anwender haben ziemlich deutlich gemacht, daß sie eine Ente wollen. Ob diese Ente Kakao oder Kaffee trinkt, ist irrelevant."
Und wie John Gruber sagte, nachdem er einen Apple-Programmierer zitierte, der sich an Carbon-Entwickler wandte: "Schickt den [zweiten Absatz] an jeden, der behauptet, nur Cocoa-Programme seien wirklich richtige Mac-OS-X-Programme."
Ist Java nicht langsam?
Der Großteil von NeoOffice ist in C++ geschrieben. Nur die Teile, die das Aqua-Aussehen unter Mac OS X ermöglichen sollen, wurden darauf ausgerichtet, Java zu verwenden. Der Grund ist, daß Java unter Mac OS X hervorragend aussieht und direkt die blauen Aqua-Bedienelemente verwendet.
Ãœbrigens - so langsam ist Java nicht mehr.
Weshalb benutzt NeoOffice nicht Java 1.5.x?
Es gibt eine Reihe von Gründen, weshalb NeoOffice mit Java 1.4.2. arbeiten, sowohl menschliche als auch technische. Um vorne anzufangen: Als das Programm ursprünglich entwickelt wurde (als NeoOffice/J), gab es Java 1.4.x noch nicht für Mac OS X. Als Java 1.4.1 schließlich für Mac OS X erhältlich war, stellte es sich als reichlich fehlerhaft heraus, und unter Mac OS X 10.2.x fehlten mehrere wichtige Funktionen. Java 1.5 gibt es nur für Mac OS X 10.4.x. Außerdem basieren Java 1.4.x und 1.5 auf Cocoa, während Java 1.3.1 auf Carbon basiert. Also arbeitete NeoOffice/J einen großen Teil seines jungen Lebens unter Mac OS X 10.2.x, 10.3.x und 10.4.x mit Java 1.3.1.
Auf eine neuere Version von Java umzusteigen, hätte nicht nur bedeutet, den Support für Anwender älterer Mac-OS-X-Versionen einzustellen, sondern auch hunderte, wenn nicht tausende, von Stunden, um die Carbon-Teile des Programms in Cocoa neu zu implementieren und neue Fehler in der neuen Java-Version zu umgehen. Daher war ein Wechsel zu Java 1.4.x (oder 1.5) keine praktikable Option während des größten Teils von NeoOffice/Js Existenz, auch in Anbetracht der Größe des Entwicklerteams und der Tatsache, daß Java 1.3.1 weiterhin gut funktionierte.
Da Java 1.3.1 auf intelbasierten Macs nicht laufen wird,haben wir den Sommer 2005 (Juli-September) damit verbracht, in Vollzeitarbeit NeoOffice/J auf Java 1.4.2 umzustellen und den Oktober und den größten Teil des Novembers damit (wieder in Vollzeit), Fehler zu beheben, die bei größer angelegten Testläufen auftauchten. NeoOffice 1.2 Alpha war die erste Version, die Java 1.4.2 und Mac OS X 10.3 oder darüber benötigte.
Eine Umstellung auf Java 1.5.x wird nicht so kompliziert sein, da es auch auf Cocoa basiert, aber im Augenblick gibt es keine Pläne, das in Angriff zu nehmen, da Java 1.5.x gerade erst herausgekommen ist (Mitte November 2005) - und nur für Mac OS X 10.4.x — und viele Anwender noch Mac OS X 10.3.x benutzen. Darüber hinaus liegen wichtigere Aufgaben vor uns, wie z.B. der MacIntel-Support, die die spärlichen Entwickler-Reserven benötigen. (NeoOffice/J 1.1 oder NeoOffice 1.2 Alpha dazu zu zwingen, mit Java 1.5 zu laufen, wird zu Abstürzen führen, und es wird nicht unterstützt.)
Warum kann man nicht gtk oder Qt oder ein anderes plattformübergreifendes Toolkit verwenden?
Sehen Sie sich Warum wird nicht an einer Cocoa-Version von Aqua für OpenOffice.org gearbeitet? und Ist Cocoa nicht besser als Java? an. :-) Die kurze Antwort ist, daß es mindestens genauso lange dauern würde, die OpenOffice.org-Codebasis so umzuarbeiten, daß sie ein anderes Toolkit verwendet, wie es gedauert hat, NeoOffice dahin zu bringen, wo es heute ist (zwei Jahre Fast-Vollzeitarbeit von 1,5 Programmierern und zusätzlich Vorarbeiten), und das ohne Garantie, daß es genauso stabil wäre.
Außerdem sind die Mac-OS-X-Portierungen im Fall von gtk ältere Versionen und recht unvollständig. Nicht mal Qt, das eine moderne und komplette Portierung des Toolkits hat, würde einer Aqua-Version des existierenden OpenOffice.org in irgendeiner Weise nützen. Qt/KDE OpenOffice.org ("Native Widget Framework effort") sind keine nativen Qt-Implementationen von vcl (OpenOffice.orgs plattformübergreifendes Abstraction-Layer-Toolkit). Alles zugrundeliegende Font-Handling, Zeichnen etc. verwendet immer noch X11, nur das Zeichnen der Widgets arbeitet mit Qts Äquivalent des Erscheinungsbild-Managers. [3]
Was ist mit Intel-Macs?
Gehen Sie auf diese FAQ-Seite, um eine ausführliche Erklärung der MacIntel-Probleme und der neuesten Entwicklungen zu erhalten.
Andere Fragen
Hat NeoOffice NeoOffice/C ersetzt?
.
Was ist mit NeoOffice/J passiert?
Aufgrund der Tatsache, daß die "klassische" CoreGraphics/Cocoa-Portierung (NeoOffice/C) eine Sackgasse war und nicht weiterenteickelt wurde als auch, weil die "/J"-Version für viele Nutzer und auch Experten sehr verwirrend war, wurde das Programm NeoOffice/J beginnend mit der Veröffentlichtung der 1.2-Alpha-Version in einfach nur NeoOffice umgetauft.
Gibt es einen Entwicklunsplan?
Die Richtung, die das NeoOffice-Projekt einschlagen soll, wird üblicherweise im NeoOffice-Enticklerforum auf Trinity diskutiert. Die aktuellen (June 6, 2005) Pläne der zwei Hauptentwickler von NeoOffice werden hier [4] umrissen.
Wo kann ich mehr über NeoOffice erfahren?
Für Tips zur Benutzung von NeoOffice gehen Sie zur Tips-und-Tricks-Seite dieses Wiki.
Ich habe noch eine andere Frage zum Design oder zur Entwicklung von NeoOffice. Wo wird sie mir beantwortet?
- Sehen Sie sich die offiziellen NeoOffice-FAQs an.
- Durchsuchen Sie dieses Wiki.
- Durchsuchen Sie die Trinity-Foren
- Falls Sie dann immer noch keine Antwort gefunden haben, stellen Sie Ihre Frage in der entsprechenden Rubrik des Trinity-Forums.