|
It:NeoOffice e Aqua
From NeoWiki
Domande poste frequentemente sul progetto e lo sviluppo di NeoOffice, o "Tutto quello che non conosci di NeoOffice (e dovresti leggere prima di fare una rischiesta su [Mac]Slash[Dot]"
"Aquaficazione" e Integrazione con Mac OS X
Perché NeoOffice non ha la tipica interfaccia utente Aqua del Mac?
A partire da NeoOffice 2.0 Aqua Beta, NeoOffice include un'estensiva "Aquaficazione". Gli utenti Mac esigenti (ce ne sono di altro tipo?) possono notare che alcune cose non sembrano proprio giuste, ma non preoccuparti; questa è la prima versione di NeoOffice che mostra queste caratteristiche in stile Aqua, ed i programmatori stanno lavorando per far sparire le parti grigie!
L'obiettivo è di aggiungere con calma le caratteristiche di Aqua a NeoOffice cosicché divenga sempre più Mac-simile, fino a che non ci sia più nessuna evidenza e sia nient'altro che un programma per Mac.
Durante gli ultimi mesi, NeoOffice ha visto miglioramenti bit-per-bit.
Quali sono i recenti passi in avanti del processo di Aquaficazione?
A Giugno 2007:
- Supporto per la funzione QuickLook del Mac OS X 10.5 (06/2007)
- Supporto per il cambiamento della velocità di intermittenza del cursore sando le proprietà standard di Cocoa (06/2007)
- Widgets sullo sfondo ora appainono disabilitati, ed il cursore non lampeggia più sullo sfondo (05/2007)
A Marzo 2007:
- I documenti di NeoOffice appaiono tra gli "Elementi recenti" nel menù di Mac Os X (03/2007)
- Le icone della barra degli strumenti sono più in stle Aqua (03/2007)
- finestre di dialogo per Apri e Salva (07/2006)
- Nuove icone dei documenti che corrispondono meglio con l'aspetto Aqua (07/2006)
- Le icone disabilitate hanno l'aspetto appropriato previsto per le applicazioni di Mac OS X (prima erano grigio scuro) (07/2006)
- Numerose widget Aqua (barre di scorrimento, bottoni, barre di avanzamento, ecc.) (04/2006-07/2006)
- Compatibilità migliorata con i software di dettatura vocale (10/2005)
- Abilità di stampare i file EPS inseriti (09/2005)
- Supporto migliorato per le tastiere internazionali (09/2005)
- Menù del con con gli elementi del servizio di avvio rapido ("Quickstart") (che si trova anche nel menù NeoOffice) (06/2005)
- Non viene più mostrata la "finestra grigia" quando viene chiuso l'ultimo documento ma il programma rimane aperto, proprio come avviene per i normali programmi Mac (05/2005)
- Integrazione con Spotlight su Mac OS X 10.4 "Tiger" via NeoLight (05/2005)
- Uso dei colori definiti nel pannello "Aspetto" nelle Preferenze di Sistema (04/2005)
- Supporto per le lingue Indoarie (04/2005)
- Supporto per Eudora, Entourage, e Mail quali programmi per l'inoltro della posta (03/2005)
- AppleScript per installazione drag-and-drop dei file di aiuto per le lingue non Inglesi (03/2005)
- Drag & drop tra NeoOffice e le altre applicazioni (03/2005)
- Quando si clicca su pulsante rosso "chiudi" in alto a sinistra nella finestra dell'ultimo documento non si esce più dall'applicazione (03/2005)
- I richiami "About NeoOffice" e "Preferences..." si trovano nel menù "NeoOffice" (02/2005)
- Interfacce localizzate in 40 lingue (12/2004)
- Nuova icona del programma in stile Aqua e nuovo splash screen (12/2004)
- File PDF ottimizzati e più piccoli (12/2004)
- Drag & drop del testo (12/2004)
- Supporto per la rotella del mouse (11/2004)
- I menù nativi appaiono nella barra bianca in cima allo schermo, come per tutti gli altri programmi per Mac (in precedenza apparivano in cima alla finestra del documento attivo) (11/2004)
- Avviso automatico del rilascio di nuove patch e versioni (11/2004)
- Le patch sono disponibili come pacchetti standard per l'installer di Mac OS X (09/2004)
- Supporto per i collegamenti ai file per Macintosh nelle finestre di dialogo apri e salva (09/2004)
Stai sintonizzato perché nuove caratteristiche vengono aggiune di continuo!
Tecnologie e Borsa degli Attrezzi
Quali tecnologie sono state usate nella Aquaficazione di NeoOffice?
Aqua è l'interfaccia grafica sviluppata da Apple per OS X. Apple fornisce tre ossature (frameworks) per lo sviluppo di programmi con l'interfaccia utente Aqua:
- Carbon (una sorta di modo compatibile con OS 9, usato anche da Mozilla/Firefox)
- Cocoa (il nuovo framework che è stato adattato da NeXT per Mac OS X)
- Java (linguaggio multi-piattaforma, include JFC/Swing per gli elementi della User Interface)
NeoOffice/C (il progetto prototipo iniziale) fu un tentativo di iniziare ad usare Cocoa e Carbon. Il progetto di maggior successo, NeoOffice (originariamente conosciuto come NeoOffice/J), attualmente usa un mix di Cocoa, Carbon e Java 1.4.2/1.5.
Quindi... NeoOffice è scritto in Java?
No.
NeoOffice è la versione nativa per Mac OS X di OpenOffice.org che usa piccole quantità di codice Java per il disegno grafico e la configurazione.
OpenOffice.org è scritto principalmente nel linguaggio C++ che è agnostico della piattaforma. Tuttavia, NeoOffice prende vantaggio dall'avanzata integrazione tra Mac OS X e Java per ottenere l'aspetto che normalmente hanno le applicazioni che girano nativamente nel Mac OS X. In altre parole, i pochi bit di Java in NeoOffice hanno principalmente a che fare con operazioni che riguardano come il programma appare all'utente. Gli "ingranaggi" della suite office sono scritti in C++. (Il codice di cui è costituito NeoOffice è per il 99% lo stesso di OpenOffice.org è condiviso con tutte le piattaforme su cui OpenOffice.org gira, e l' 1% e specifico per Mac OS X ed è scritto in Java, C++, C, e Objective-C). Ohloh.net mostra che il codice specifico di NeoOfficeè per il 93% C/C++.)
Quindi NeoOffice potrà essere eseguito solo su computer Macintosh Mac OS X 10.3.x o 10.4., non su Mac OS 9, Mac OS X 10.2 o precedenti, Windows, Linux, Darwin, o qualsiasi altra forma di UNIX.
Come è usato Java in NeoOffice?
Come scritto sopra, Java viene utilizzato principalmente per dare a NeoOffice il look-and-feel (cioè l'aspetto e la sensazione) del Mac Os X. Ciò che fa lavorare NeoOffice non è il linguaggio Java di per sé stesso ma piuttosto le librerie associate alla virtual machine come le Java 2D per il disegno e AWT per i menù. Queste sono attualmente già "native" nella Apple VM nel senso che la Java 2D è realmente il CoreGraphics/Quartz e AWT è realmente Carbon.[1]
La quantità di Java usata è inoltre diminuita nel corso del tempo. Questo NeoOffice fu aggiornato al codice sorgente di OpenOffice.org 1.1.2 (NeoOffice/J 1.1 Alpha), il rendering del testo fu convertiro da Java alle API native ATSUI del Mac OS X dal momento che erano molto più adatte alla disposizione del testo complesso rispetto a quanto non fosse Java [2]. Altre caratteristiche non sono state nemmeno implementate in Java (per esempio il menù del Dock, che usa Carbon nella versione NeoOffice/J 1.1 e Cocoa nelle versioni più recenti).
Perché non state lavorando con Cocoa per una versione Aqua di OpenOffice.org?
Ci sono diverse ragioni. OpenOffice.org non è stato costruito come un'applicazione Cocoa Mac nativa. Tradurre tutti i modelli degli eventi, la gestione dei caratteri e le routine di visualizzazione in "puro" Cocoa implicherebbe una grande quantità di lavoro. D'altra parte, la implementazione di Java fatta da Apple fornisce un buon accesso alle caratteristiche Aqua ed è più facile da fondere con il sottostante codice di OpenOffice.org. NeoOffice/C ha provato che una implementazione Cocoa "pura" non è una soluzione praticabile nel breve-medio termine; mentre risultava con un buon aspetto dopo un sacco di hack, non era tuttavia abbastanza stabile neppure per un uso sporadico. Per una spiegazione più dettagliata delle ragioni che stanno dietro a questa scelta di implementazione vai a vedere questo post [en] del co-fondatore del progetto NeoOffice ed ingegnere di sistema Ed Peterlin.
Come abbiamo detto, NeoOffice è moto stabile e non molto lontano da fornire un'interfaccia utente completamente in stile Aqua, e prendere un differente percorso adesso vorrebbe dire gettare nella spazzatura un sacco di codice buono, ben testato e stabile. La parte negativa dell'usare Java è che consuma (un po') più risorse di una pura implementazione Cocoa. (C'è bisogno di più RAM rispetto alle richieste minime per Mac OS X—ma d'altra parte il Mac OS X beneficia dall'avere più RAM rispetto al minimo raccomendato!—e la RAM è ormai economica; aggiungere RAM è la cosa più economica per velocizzare il tuo Mac.) I miglioramenti che Apple ha introdotto in Java 1.4.2 rispetto a Java 1.3.1 ha permesso a NeoOffice 1.2 Alpha di ridurre l'uso delle risorse e di migliorare le prestazionI.
Invece di rimanere fedele dogmaticamente ad un singolo toolkit, gli sviluppatori di NeoOffice "usano il miglior tool per affrontare il compito che si presenta loro" nel tentativo di "aggiungere un involucro completamente in stile Mac OS X all'uso di [it:OpenOffice.org|OpenOffice.org]."[3]
Cocoa non è meglio di Java?
Aqua è aqua.
La domanda viene fatta più frequentemente da programmatori e da utenti esperti. Gli utenti finali, d'altra parte, tendono a giudicare i risultati. Una delle persone che partecipano alla fase di test del programma ha detto:
"Se ha l'aspetto di un'anatra, cammina come un'anatra, e fa il verso dell'anatra, allora per l'utente finale è piuttosto chiaro che si tratta di un'anatra; poi che quest'anatra beva cioccolato caldo o caffè è una cosa irrilevante (in inglese c'è un gioco di parole tra cioccolato=cocoa e caffè=java."
Come ha detto John Gruber, dopo aver quotato quanto postato da un ingegnere della Apple sulla mailing-list Carbon-Dev, "mandate [il secondo paragrafo] a chiunque pretenda che solo 'le applicazioni Cocoa' sono le applicazioni 'veramente native' di Mac OS X."
Ma Java non è lento?
La maggior parte di NeoOffice è stato scritto in C++. Solo quelle parti che permettono un aspetto in stile Aqua sono state personalizzate per usare Java. La ragione di questo è da ricercarsi nel fatto che Mac OS X Java ha un aspetto eccellente e si sposa bene con i controlli "blue-button" nativi di Aqua.
Eppoi, giusto per rendere giustizia, Java non è più così lento.
Perché non usa Java 1.5.x?
NeoOffice 2.0 Aqua Beta 3 e superiori adesso possono usare Java 1.5 (e la versione di Java richiesta è la Java 1.5 per i Mac-Intel su cui gira Mac OS X 10.4). Per comprendere perché NeoOffice ha storicamente usato diversa dall'ultima versione offertada Apple, vai avanti nella lettura. Ci sono un certo numero di ragioni per cui NeoOffice usa Java 1.4.2, sia umane che tecniche. Per cominciare dall'inizio, quando è cominciato lo sviluppo del programma (come NeoOffice/J), Java 1.4.x non era disponibile per Mac OS X. Quando finalmente Java 1.4.1 divenne disponibile per Mac OS X, era abbastanza pieno di bug e mancava di una serie di caratteristiche su Mac OS X 10.2.x. Java 1.5 è disponibile solo per Mac OS X 10.4.x. Inoltre, Java 1.4.x e 1.5 sono basati su Cocoa mentre Java 1.3.1 è basato su Carbon. Così per la maggior parte della sua vita iniziale come NeoOffice/J, l'applicazione usava Java 1.3.1 su Mac OS X 10.2.x, 10.3.x, and 10.4.x.
Il cambiamento ad una versione di Java più recente non solo include l'abbandono del supporto per quegli utenti che usano versioni di Mac OS X più vecchie ma richiede anche centinaia, per non dire migliaia, di ore di tempo per reimplementare molte delle parti dell'applicazione scritte in Carbon in Cocoa e per lavorare sui nuovi bug introdotti dalla nuova versione di Java. Quindi cambiare per usare Java 1.4.x (o 1.5) non è una strada percorribile per la maggior parte di NeoOffice/J's data la quantità di persone che fanno parte del team di siluppo e per il fatto che Java 1.3.1 continua a lavorare bene.
Dal momento che Java 1.3.1 non è previsto nella transizione verso i Mac basati sui processori Intel, l'estate del 2005 (Luglio-Settembre) è stata passata in un lavoro a tempo pieno per la transizione di NeoOffice/J verso Java 1.4.2, e Ottobre e quasi tutto Novembre è stato passato (sempre a tempo pieno) a fissare i nuovi bug che sono venuti alla luce durante la fase di verifica. NeoOffice 1.2 Alpha è stata la prima versione a richiedere Java 1.4.2 ae Mac OS X 10.3 o più recente.
La transizione a Java 1.5.x non era così difficile dal momento che è anch'esso basato su Cocoa, ed è stato fatto (per i Mac-Intel) durante il ciclo di test di NeoOffice 2.0 Aqua Beta. Java 1.4.2 è ancora la versione predefinita di Java usata da NeoOffice sui Mac con processore PowerPC sui quali gira 10.3.x o 10.4.x. (Forzare NeoOffice/J 1.1 o NeoOffice 1.2 Alpha ad usare Java 1.5 avrà come risultato un aumento dei crash e di situazioni non supportate.)
Perché non usare gtk o Qt o qualche altro toolkit multipiattaforma?
Vedi gli articoli Perché non state lavorando con Cocoa per una versione Aqua di OpenOffice.org? e Cocoa non è meglio di Java? :-) La risposta breve è che per rilavorare sul codice sorgente di OpenOffice.org per usare un altro toolkit prenderebbe almeno lo stesso tempo e lavorarci per portare NeoOffice al punto in cui si trova oggi (dopo tra anni di lavoro praticamente a tempo pieno da parte di un programmatore e mezzo e per tutto il lavoro preparatorio), senza la garanzia della stabilità del risultato.
Inoltre, nel caso di gtk, il port per Mac OS X è solo di versioni più datate di gtk e piuttosto incomplete. Anche nel caso di Qt, che ha un port del toolkit per Mac OS X moderno e completo, il lavoro da fare su OpenOffice.org per "usare Qt" non porterebbe ad una versione nativa ed indipendente da X11. La versione Qt/KDE OpenOffice.org non è una implementazione di vcl [en] con "Qt nativo". Tutte le parti che riguardano la gestione dei caratteri, il disegno, ecc., deve essere ancora fatto usando X11[4].
E i Mac-Intel? C'è un pacchetto Universal Binary?
Vedi questa FAQ [en] (privavera 2006) per una dettagliata spiegazione relativa ai MacIntel e per gli ultimi sviluppi. (Puoi anche andare a vedere leFAQ di inzio 2006 per informazioni precedenti.)
Altre domande
NeoOffice ha sostituito NeoOffice/C?
Si! [en].
Cosa è successo a NeoOffice/J?
Come riconoscimento del fatto che il "classico" port per l'uso di Cocoa (NeoOffice/C) è stato abbandonato, così come per il fatto che la "/J" era piuttosto criptica per molti utenti, quello che si chiamava NeoOffice/J è stato ribattezzato semplicemente NeoOffice a cominciare dalla versione 1.2 Alpha.
C'è una Roadmap di sviluppo?
La direzione del progetto NeoOffice viene normalmente discussa nel forum "NeoOffice Development" su trinity. I piani succesivi al 6 Giugno 2005 [en] dei due sviluppatori principali di NeoOfficeper il 2005-2006 sono riassunti in questo articolo del forum [en]. I piani per la fase successiva alla realizzazione di NeoOffice 2.0 Aqua Beta includono ulteriori raffinamenti delle parti legate all'aspetto Aqua e un progetto della comunità per sviluppare una serie di icone per le barre dei simboli (toolbars) in stile Aqua, ma non è stata annunciata una Roadmap ufficiale.
Dove posso apprendere alte cose su NeoOffice?
Per i trucchi sull'uso di NeoOffice, vedi la sezione Trucchi e Suggerimenti di questo Wiki [per ora solo in inglese).
Ho un'altra domanda da fare riguardo lo sviluppo di NeoOffice; dove posso avere la risposta?
- Controlla le FAQ ufficiali di NeoOffice
- Fai una ricerca su questo wiki
- Fai una ricerca sui Forum di trinity
- Se ancora non hai trovato una risposta, fai una domanda nella sezione appropriata del Forum di trinity. Solitamente la domanda va fatta in inglese, ma puoi trovare anche qualcuno che parla la tua lingua e scrivere direttamente in quella: di italiani sul forum ne girano parecchi!