2010-02-01 13 views
8

Mi sono appena imbattuto in librerie di sorgenti Adobe, ASL. È costituito da modelli e funzioni simili a boost, sotto licenza MIT. Alcune delle utilità nella libreria che ho trovato abbastanza utili e ora penso di usarlo.C++ Impression di librerie di sorgenti Adobe?

biblioteca sembra piuttosto semplice, tuttavia.

  • Hai già utilizzato ASL? se sì, quali erano le tue impressioni? lo consigli?
  • funziona bene con una gamma di compilatori e piattaforme, ad es. IBM C++, ICC, g ++?
  • hai incontrato stranezze/cose inaspettate?

grazie

+0

Non so se lo sviluppo ufficiale si è spostato, ma potresti essere interessato a https://github.com/stlab/adobe_source_libraries. –

+1

@MaxLybbert: Sì, lo sviluppo ufficiale si è spostato su GitHub. – fbrereto

risposta

9
  1. ASL utilizza Boost pesantemente, quindi non è come simile per amplificare, come (in alcuni casi) un relativamente sottile wrapper Boost.
  2. I "grandi" pezzi di ASL sono Adamo ed Eva. La maggior parte del resto sembra essere (e se la memoria serve, in realtà è) poco più di supporto per quelli.
  3. ASL non è stato aggiornato da un po ', e se non mi sbaglio alcune delle cose che si prevede in involucri intorno Boost è ora incorporato nel Boost librerie stessi (la maggior parte degli autori di spinta sono stati consapevoli della ASL almeno dal erano presenti nella presentazione principale di Sean Parent su Boostcon 1).

La mia esperienza con loro è stata un po 'mista. Un tempo, usavo un paio delle loro classi di Boost-wrapper un po ', ma IIRC, entro la prossima release o due, i bit che mi interessavano erano disponibili in Boost senza alcun involucro (anche se in modo non reale, non ricordo esattamente cosa quei pezzi erano ...)

Adam ed Eve sono una specie di figo per giocare con diversi layout dell'interfaccia utente e simili, ma non li ho mai usati per una versione finale di un programma. Almeno per me, sembra che siano utili principalmente con un'interfaccia utente relativamente complessa. La mia impressione è che se le trovi molto utili, la tua interfaccia utente probabilmente ha bisogno di lavoro. Se hai bisogno di Adamo ed Eva per capire cosa sta succedendo, è probabile che anche i tuoi utenti non riescano a capire.

OTOH, probabilmente ci sono almeno un paio di casi in cui una finestra di dialogo è chiaro a un utente, ma il codice molto meno a uno sviluppatore. Se si disabilitano molti controlli fino a quando i valori non sono stati immessi in altri controlli e tale può rendere molto più semplice garantire che i controlli siano disabilitati fino a quando non sono stati immessi tutti i valori da cui dipendono.

4

come già notato, Thew intero punto di ASL è Adamo ed Eva, il resto sono strumenti solo a portata di mano.

Adam & Eva lavorare insieme per descrivere UI con la configurazione automatica in modo cross-platform. Se questo non è quello che ti serve, probabilmente non dovresti passare molto tempo in ASL.

Eve ha la tipica raccolta di verticale/orizzontale/altri contenitori per la configurazione automatica.

E lo scripting con Adam consente di realizzare cose difficili (se non impossibili) da ottenere solo con i contenitori di layout (ad esempio mantenendo gruppi separati di controlli della stessa dimensione, ad esempio).

È vero, si implementano alcune regole nel codice C++. Ma ha senso memorizzare le regole di descrizione dell'interfaccia utente relative al comportamento dell'interfaccia utente nello stesso punto in cui si memorizza l'interfaccia utente per iniziare.