Appunti di 'programmazione La programmazione del Macintosh · di Raffaello Oe Masi Appunti di...

4
MACINTOSH di Raffaello Oe Masi Appunti di 'programmazione La programmazione del Macintosh Come costruire una interfaccia utente ben realizzata e conforme ai canoni Mac. Ho ritrovato nella casella di MC-Link un messaggio di un certo dr Ambrogio Rossi (non credo sia un siciliano) che con estremo garbo mi parlava a lungo dei suoi tentativi di programmare in maniera decente il suo SE/30, con risultati certo eccellenti nella soluzione dei problemi che si proponeva, ma senza poter o forse saper realizzare quelle meravigliose interfacce proprie di tutti, o quasi tutti i pacchetti presenti sul mercato Le parole che concludono il suo lungo messaggio sono più o meno. queste: «Insomma, non pretendo certo di co- struire due o trecento shortcut come quelli di Word o Word Perfect. o una finestra con dieci menu (magari qualcu- no gerarchico) e venti bottoni, ma avrei voluto almeno fare un poco di bella figura con me stesso e premere o clic- care qualcosa ottenendo il risultato che desideravo e non la solita bomba di sistema». Ho deciso di rispondere a questo messaggio in quanto mi pare significati- vo sia dagli argomenti che stiamo trat- tando, sia di uno dei più grossi problemi che un utente Mac è generalmente chiamato ad affrontare. E spero, con questo di poter chiarire uno dei proble- mi che più di tutti affliggono l'ambiente Mac: la creazione di una interfaccia Mac-Like. La costruzione di una interfaccia ccClick-and-go11 I miei primi tentativi di produrre un poco di software «serio», in particolare alcuni programmi specifici per la mia professione, li ho fatti, intorno alla fine degli anni Settanta su alcune macchine HP, tra cui anche il fantastico 85-87 e l'ancora più potente 9816, macchina a 16 bit in un mondo in cui appena balbet- tavano gli Apple Il. Ovviamente a quei tempi parlare di interfaccia utente era come discutere di brioche e crostini a Bassora durante la guerra del Golfo. Gli input erano realizzati quasi esclusiva- mente attraverso domande e risposte, direttamente battute alla tastiera (il clas- sico INKEY$ era addirittura un lusso, visto che sull'87 non esisteva e occorre- va simularlo attraverso una strana cir- con locuzione programmatoria). AI mio primo acquisto del Mac pensai di poter ripetere i miei exploit program- matori (<<beatus monoculus in terra caecorum»), ma mi resi carita quasi immediatamente di avere di fronte un osso duro da rodere. In effetti Mac è una delle macchine più complesse da programmare; inten- diamoci, se si desidera costruire un programma non eccessivamente ele- gante, le difficoltà sono né più né meno quelle che si incontrerebbero con un PC; si avrebbe in questo modo il classi- co srotolio di domande-risposte sullo schermo e la cosa finirebbe lì. Ma se solo solo si desidera entrare nell'affasci- nante mondo delle finestre, dei bottoni, paramet 1519" ce Classlfy ... InseM Cltotlon ... Il menu a tendina. un classico dell'interfaccia Mac; nel particolare il menu Move di FullWrite Professional. di Notes Fonna! Font Slze Style lIIl 60 To... .T . 8ookmar1l:s... zlone del mee BrowlI!I... nt~ l"errore Show Outllne . Show Pages . Clean Up . Windows arw reterlre l"uno sistema slderaz.ione di carattere flnd, [hlllnge... .r anno, vedremo tutto la Flnd NeMt .0 li I O correggI! contttnu Ma COl!! all'altro. economi volta pr Pe e 9 •.• file Edlt 236 MCmicrocomputer n. 107 - maggio 1991

Transcript of Appunti di 'programmazione La programmazione del Macintosh · di Raffaello Oe Masi Appunti di...

Page 1: Appunti di 'programmazione La programmazione del Macintosh · di Raffaello Oe Masi Appunti di 'programmazione La programmazione del Macintosh Come costruire una interfaccia utente

MACINTOSHdi Raffaello Oe Masi

Appunti di 'programmazione

La programmazione del MacintoshCome costruire unainterfaccia utente benrealizzata e conforme aicanoni Mac.Ho ritrovato nella casella diMC-Link un messaggio di uncerto dr Ambrogio Rossi (noncredo sia un siciliano) che conestremo garbo mi parlava alungo dei suoi tentativi diprogrammare in manieradecente il suo SE/30, conrisultati certo eccellenti nellasoluzione dei problemi che siproponeva, ma senza poter oforse saper realizzare quellemeravigliose interfacceproprie di tutti, o quasi tutti ipacchetti presenti sul mercato

Le parole che concludono il suo lungomessaggio sono più o meno. queste:«Insomma, non pretendo certo di co-struire due o trecento shortcut comequelli di Word o Word Perfect. o unafinestra con dieci menu (magari qualcu-no gerarchico) e venti bottoni, ma avreivoluto almeno fare un poco di bellafigura con me stesso e premere o clic-care qualcosa ottenendo il risultato chedesideravo e non la solita bomba disistema».

Ho deciso di rispondere a questomessaggio in quanto mi pare significati-vo sia dagli argomenti che stiamo trat-tando, sia di uno dei più grossi problemiche un utente Mac è generalmentechiamato ad affrontare. E spero, conquesto di poter chiarire uno dei proble-mi che più di tutti affliggono l'ambienteMac: la creazione di una interfacciaMac-Like.

La costruzione di una interfacciaccClick-and-go11

I miei primi tentativi di produrre unpoco di software «serio», in particolarealcuni programmi specifici per la miaprofessione, li ho fatti, intorno alla finedegli anni Settanta su alcune macchine

HP, tra cui anche il fantastico 85-87 el'ancora più potente 9816, macchina a16 bit in un mondo in cui appena balbet-tavano gli Apple Il. Ovviamente a queitempi parlare di interfaccia utente eracome discutere di brioche e crostini aBassora durante la guerra del Golfo. Gliinput erano realizzati quasi esclusiva-mente attraverso domande e risposte,direttamente battute alla tastiera (il clas-sico INKEY$ era addirittura un lusso,visto che sull'87 non esisteva e occorre-va simularlo attraverso una strana cir-con locuzione programmatoria).

AI mio primo acquisto del Mac pensaidi poter ripetere i miei exploit program-matori (<<beatus monoculus in terracaecorum»), ma mi resi carita quasiimmediatamente di avere di fronte unosso duro da rodere.

In effetti Mac è una delle macchinepiù complesse da programmare; inten-diamoci, se si desidera costruire unprogramma non eccessivamente ele-gante, le difficoltà sono né più né menoquelle che si incontrerebbero con unPC; si avrebbe in questo modo il classi-co srotolio di domande-risposte sulloschermo e la cosa finirebbe lì. Ma sesolo solo si desidera entrare nell'affasci-nante mondo delle finestre, dei bottoni,

paramet

1519" ce Classlfy ...InseM Cltotlon ...

Il menu a tendina. unclassicodell'interfaccia Mac;nel particolare il menuMove di FullWriteProfessional.

di

Notes Fonna! Font Slze Style lIIl60 To... .T .8ookmar1l:s... zlone del meeBrowlI!I... nt~ l"erroreShow Outllne .Show Pages .

Clean Up .Windows arw

reterlre l"uno sistemaslderaz.ione di carattere

flnd, [hlllnge... .r anno, vedremo tutto laFlnd NeMt .0

li I O

correggI!contttnuMa COl!!

all'altro.economivolta pr

Pe e 9

•.• file Edlt

236 MCmicrocomputer n. 107 - maggio 1991

Page 2: Appunti di 'programmazione La programmazione del Macintosh · di Raffaello Oe Masi Appunti di 'programmazione La programmazione del Macintosh Come costruire una interfaccia utente

MACINTOSH

mazione del mec

Le basi dell'inferfaccia MacCon alcune rare eccezioni (come ad

esempio Zedcor C) tutte le applicazioniMac lavorano in un ambiente interattivoal massimo grado. Per lanciare un pro-gramma, ad esempio, occorre «c1icca-re» l'applicazione, ma, cosa del tuttoinconcepibile in MS-DOS, è possibilelanciare anche un file dati. Una voltache il programma è stato lanciato esso

tipo di macchina, senza alcun riguardoalla configurazione o al tipo; e devonofunzionare allo stesso modo sulla mac-china prima e ultima della classe, senzadifferenze per l'utente (ma spesso congrandi differenze per il programmatore).Così se si desidera sviluppare una appli-cazione generica occorre tenere presen-ti tutte le caratteristiche dei Mac pre-senti sul mercato, con un occhio anchea quelli oggi non più in produzione.

ente l'errore di811( l!.

preferire l'uno sl!l'temaonsldera%tone di caratteretiranno, vedremo tutto la

MluU.ll41 tUHRfterthought"rchlulo flppuntlBatlerleCalcolatriceF1nd FileI maga 6rebbllr''''lCeyflnderMDose PraafOrologiO SuegUaPennello di ControlloScelle Rlsone5tufflt UlewerTastieraUnStuffltUlrusDe1ectlus'"Word FIMere

File Edit Moue Notes Format fant Slze 5tyle lIIl.. .Rbuut FullWrlte ...Help .•.

PonnellO,dl Controllo

Cll990P.t •••Mortol'lcompvt'nrj. hc.

14."'""-ntl

•••• "rchluio

Ancora due dei cardinidell'interfaccia Mac; i

DA e iCDEV (v. testo).

gi, dal più agevole Basic al più sofistica-to dei C hanno pensato bene di bypas-sare il collo di bottiglia delle chiamate alToolBox adottando specifici statementper quasi lutte le Cali e le Functionpresenti su ROM; un esempio è il po-tentissimo ZBasic che nella sua ultimasofisticata versione (la 5.1) permette diaccedere a tutte le routine di sistema,non solo, ma di crearsene delle proprie.

Immaginiamo quindi di voler costruireuna applicazione Mac destinata al mer-cato, con tanto di interfaccia utenteefficiente e ben costruita e progettata

Innanzi tutto quale macchina si desi-dera adottare come base per lo svilup-po ì Oggi il panorama Mac è estrema-mente ampio, dal Classic fino all'FX(stavo, per dire all'F15). con una altret-tanto ampia panoramica di periferiche edevi ce speciali. Alcune generiche appli-cazioni, come un word processor o undatabase, devono poter girare su ogni

dei menu, delle chiamate ad altri pro-grammi o file, magari lavorando in Mul-tifinder, le cose divengono immediata-mente complesse!

E questo purtroppo è un problemaspecie se si decide che il nostro prodot-to ha sfondato tante barriere del sapereda poter essere distribuito. Il fatto è, loabbiamo ripetuto un sacco di volte, cheapplicazioni sofisticate come Word,Draw, Excel ci hanno abituato a inter-facce così complesse ma altrettantofacili da usare che dover rispondere adomande del tipo «Sei sicuro dei datiimmessi?» battendo la risposta alla ta-stiera ci sembra per lo meno umiliante.Fatto sta che, solo per capire e gestirein maniera corretta il ToolBox, Apple harealizzato ben sei volumi di Inside Mac-intosh, ognuno dello spessore di unelenco telefonico.

Il tutto si traduce in una sorta difrustrazione diffusa, quando ci si accor-ge che l'applicazione fa tutto trannequello che desideriamo, che premendoun bottone così pazientemente costrui-to abbiamo innescato una bella bombadi sistema, e così via. Il fatto è cheMacintosh è un ambiente di program-mazione estremamente sofisticato ecomplicato. Conoscerlo, e divenire unbuon programmatore, può comportaretempi lunghi (anni, laddove per unamacchina più semplice come un PCl'impegno si può rappresentare in mesio addirittura settimane); gestire unacomplessa interfaccia come quella delsistema operativo è cosa che richiedepazienza e profonda conoscenza dellechiamate (se 'sanno qualcosa, oggi,quelli che timidamente stanno accen-nando a programmare in Windows, an-che se questo ambiente non può esse-re certo paragonato, per complessità edefficienza, a quello Mac) al ToolBox e alpacchetto QuickDraw. E così l'aver co-struito una o più routine affidabili eriutilizzabili diviene qui più che un lussouna esigenza, rivelando quanto sia già intale pratica compresa l'assenza princi-pale della programmazione orientata al-l'oggetto.

Infine e non è da poco, Apple hadeciso di adottare come linguaggio d'e-lezione per tutta la bibliografia destinataal Mac una versione del Pascal; non ci èparsa una scelta molto felice, visto che,in fondo, la stella di questo linguaggionon ha mai brillato prepotentemente ela presenza sempre più imperiosa del«C» lo sta trasformando in un nobiledecaduto destinato alla sorte cui si èridotto il Fortran o il Cobol. Ma tant'è;per fortuna tutti i costruttori di linguag-

MCmicrocomputer n. 107 - maggio 1991 237

Page 3: Appunti di 'programmazione La programmazione del Macintosh · di Raffaello Oe Masi Appunti di 'programmazione La programmazione del Macintosh Come costruire una interfaccia utente

MACINTOSH

interagisce con l'utente attraverso unaserie di menu, finestre, dialoghi; con unpoco di memoria in più è possibile usa-re MultiFinder, una applicazione di baseche permette la esecuzione di diversiprogrammi contemporaneamente.

La filosofia della gestione dell'inter-faccia è, a questo punto, per così direobbligatoria. La pressione del tastocommand e della lettera O deve aprire,in qualunque applicazione, un documen-to o un file dati; non attenersi a questeregole sigf")ifica cadere nel caos piùcompleto. E a questo punto che inter-viene il concetto di applicazione; essa èun ambiente che agisce indipendente-mente da tutto quanto presente nel piùgenerale ambiente Mac. Ciononostantel'ambiente generale Mac dispone di unaserie di «piece» che la stessa applica-zione può utilizzare e, a cui, talvolta, èindissolubilmente legata.

Fanno parte dell'ambiente generaleMac una serie di categorie di softwareche funzionano in maniera trasparente ovengono chiamate direttamente dall'u-tente; vediamone qualcuna.

Principi delle applicazioni laterali sonoi DA. di essi si sa troppo per poterpretendere di dire qualcosa di più inqueste righe. C'è solo da far presenteche, a quanto pare, con il nuovo siste-ma operativo [7.01 sarà possibile gestirequesti anche in modo gerarchico.

Ci sono poi i Device Driver che, gesti-ti dal Device Manager assolvono a unaserie di compiti «oscuri» del program-ma stesso; sovente sono inseriti all'in-terno di un INIT che prowede ad instal-larli. Dei Device Driver probabilmentepochi utenti Mac conoscono l'esistenzae la vera funzione.

Una RISORSA (Resource Code) è unpezzo di software che viene chiamato,alla bisogna, per eseguire una certafunzione in un programma; delle risorse(che possono essere di sistema o speci-fiche per ogni programma) ci si rendeconto se si pensa che un programmacome C1aris Cad o Word Perfect. dellagrandezza di circa un mega, riesce afunzionare anche su macchine che, trasistema operativo e Finder, possonosolo mettere a disposizione qualchecentinaio di K. Ci si accorge della loropresenza, ad esempio, sul portatile,quando l'azione del programma chestiamo utilizzando si ferma per consen-tire il caricamento di questa o quellaroutine che, sebbene facente parte delfile della applicazione stessa, non è fisi-camente presente nella RAM della mac-china.

Un INIT è un programma, general-mente (ma non s.empre) di piccole di-mensioni sistemato nella cartella di si-stema ed eseguito dallo stesso sistema

238

operativo durante il bootstrap. Si trattadi un terreno fertilissimo di programma-zione, tanto che oggi si è arrivati a unavera e propria giungla inestricabile; oc-corre tener conto che per avere proprierisorse definite nel resource fork dellostesso init. alcuni di essi non funziona-no in combinazione con altri, nell'ambitodi certe applicazioni, o addirittura in oc-casione di cambiamenti del sistemaoperativo, tanto da rendere praticamen-te inutilizzabili gli stessi programmi o daentrare in conflitto con relativa mandatain bomba del sistema.

Simili nelle funzioni, ma programma-bili nelle loro esigenze, sono i CDEV(acronimo di Control Device). accessoridel pannello di controllo che permetto-no di regolare (e talora modificare) lecaratteristiche dell'ambiente di sistema.La loro presenza è segnalata nella fine-stra a scorrimento laterale del pannellodi controllo, dove si presentano con laloro icona e che, di qui, possono esseresettati nelle loro regolazioni. Un esem-pio è il Keyboard, il Color, il Sound,forniti colla dotazione di base, ma anchel'Adole Type Manager, alcuni intercetta-tori di virus, Disk Express, Mirror di MacTools, di cui parliamo su queste pagine,e così via.

Infine, ma non ultimo, il MPW, Maclntosh Programmers Workshop. Si trat-ta dell'ambiente di sviluppo messo apunto e supportato dalla stessa Apple.Tutti i compilatori di linguaggio, come C,C+ +, Pascal, e i relativi tool di suppor-to, come linker e librerie, girano in que-sto speciale ambiente e con esso sisinergizzano. Ne parleremo tra poco.

Nella complessitàdell'ambiente Mac

Con la release 7.0 del suo sistemaoperativo, già disponibile negli Stati Uni-ti e prossimamente presente anche danoi, sono stati eliminati molti dei proble-mi presenti nel labirintico sistema ope-rativo 6. Ciononostante le cose nondivengono per questo meno facili eagevoli.

Se si è giunti a questo punto a pensa-re che ci si trova in un ambiente diprogrammazione molto poco conforte-vole, ebbene, non si è affatto lontani dalvero. Sebbene Mac metta a disposizio-ne una interfaccia magnifica per quantoattiene all'interattività dell'utente, que-sta non è purtroppo molto facile daprogrammare. Tanto poi per aggiungereun di più molti termini della programma-zione Mac (ad esempio risorsa) sononuovi e richiedono una spiegazione essistessi; e tanto per colmare la misura,Apple non ha fatto mai alcuno sforzoper fornire all'utente un glossario

esauriente e ragionato della sua termi-nologia. Così la più completa e affidabi-le fonte di informazione rimane lnsideMacintosh, il ben noto (e monumentale)lavoro di documentazione dell'ambientedel sistema operativo e del ToolBox.Ciononostante non si tratta di un lavoroné piacevole né facile, anche perché gliautori non fanno nulla o quasi nulla permettere in condizione l'utente di capire(tant'è che Addison Wesley ha pensatobene di proporre una sua collana, basa-ta sullo stesso argomento, ma moltopiù chiara nella esposizione). Inoltre lacollana è estremamente povera diesempi e organizzata, a livello concet-tuale, in maniera a dir poco ostile.

Per chi desidera cominciare a pro-grammare in maniera efficiente è consi-gliabile precedere l'acquisto dell'AppleMacintosh Programmers Workshop, edel MPW C, ambedue disponibili, sulmercato USA. a 150 $ ognuno (e moltopiù cari, in proporzione in Italia). Consi-gliabile anche l'Atzec C, già nominato, eil Think C, ambedue (specie il primo) piùcostosi.

MPW è un programma-applicazioneche crea un ambiente di sviluppo moltosimile a quello UNIX, e, come questo,mette a disposizione uno shell efficien-te, con relativi alias e variabili di siste-ma, la somiglianza al potente UNIX ètanto forte da comprendere redirezione,pipe, script di sistema, storie e espres-sioni. Ai comandi specifici di tastiera diUNIX si accompagna uno specifico su-bambiente, (Comando). che fornisceuna serie di statement guidati da menue mouse, per una più semplice pro-grammazione. Per chi sa ben program-mare in UNIX, il passaggio a MPW saràfacile e non privo di piacevoli sorprese.Inoltre MPW C è un eccellente compila-tore che genera programmi oggetto uti-lizzabili da altre parti di MPW.

Symantec fornisce il suo Think C, uncompilatore velocissimo (fino a 100.000linee al minuto). specie sulle piattafor-me più avanzate. Esso inoltre fornisceun potente editor multiwindow, e unaserie di facility di programmazione mol-to interessanti. Cosa molto comoda,Think C non segnala solo, come la mag-gior parte dei compilatori, gli errori in-contrati e loro ubicazione, ma, alla sco-perta dell'errore, ferma la compilazionee sposta l'azione su un debugger alivello di sorgente che permette di cor-reggere immediatamente l'errore e dicontinuare la compilazione.

Ma cosa dovrebbe far preferire l'unosistema all'altro, a parte pure considera-zioni di carattere economico? Lo spazioè tiranno, vedremo tutto la volta pros-sima.

MCmicrocomputer n. 107 - maggio 1991

Page 4: Appunti di 'programmazione La programmazione del Macintosh · di Raffaello Oe Masi Appunti di 'programmazione La programmazione del Macintosh Come costruire una interfaccia utente

L. 85.000+lvaE' ora disponibilenella versione 3.02

in ITALIANO.L.479.000+lva

ATonce e' una piccola scheda che inserita all'interno delvostro computer Atari ST lo trasforma in un vero PC- ATCompatibile a 16 MHz.

Con emulazioni grafiche: CGA, Hercules, Olivetti, EGA eVGA mono.

Completa gestione della memoria (Protetta/espansa)Velocita': Norton Si 8.0 e MIPS- TEST 108%

Completo di Tools.

Atca·ri N••""sATonce Plus jVeo7)esk 3Emulalore 80286-16 MHz Il.~uov~ de~k~op per.ST/E ~ TT

La 'nvqluzlonana Interfaccla grafica perAtari che rimpiazza il desktop originaledell'Atari.

Per ulteriori informazioni vi invitiamo aleggere la recensione apparsa su MC diAprile 1991 a pago 234, o richiedete ilnostro demo.

L. 55.000+lva

In ITALIANO

L. 185.000+lva

OMIKRON MORTIMERIl multiaccessorio per Atari 51

Una volta installato la pressione dei tastiCONTROL+ALTERNATE vi fannoaccedere a tutte le possibilita' cheMortimer vi offre. Text Editor, Ram Diskdinamica, Spooler, Macro, Snapshot.gestione del disco .....il tutto resisternteanche al reset del computer.

l-----

MASTER ILa rivista su disco per Atari 51 in Italiano. I_~_nt!~~at~c~ per ricevere la vostra copia li J

tutti i marchi sore registrati dai IegiUini proprietari

L. 1.350.000+lvaAnche in versione per TT

·UMANA." SYSTEM & SOFTWARE

1EL. & FAX 011-99.69.552Strada Cuorgne' 57,10070 MAPPANO 1101

I signori rivenditori sono Invitati a contatta rei

Sono disponibili anche gli adattatori per l'installazioneall'interno dei Mega ST ed Atarll040STE senza saldature. oornooo1st Card CRAZY ~I IIDatabaseFlessibileInt~lligenza artificiale ed Ipertesto t.aS, Flessibile come leDatabase testuale, shell, grafica DOT~ a.QSe t Id

ed Intelligenza artificiale La sche~agrafica per ~ vos e eeMULTIMEDIALITA'ANCHE .Alarl Mega5T E' finalmante disponibile il rivoluzionario

PERATARI5T 1MB di Ram, Compatibilita' database per Atari ST prodotto dallasoftware Gem e SM 194, OMIKRON Software.

L. ~20.000+lva Siot per Applicazioni Video Per verificarne le reali potenzialita' eTestatene le molteplici possibilita' Risoluzioni da 320x200 possibilita' richiedeteci la vesione Demo.con la versione ridotta completa del fino a 1664x1200 pixel conmanualeoriginale a sole 256 colori su 16,7 milioni

L. 30.000+lva Possibilita' di visualizzare1664x1200 anche su

- -- --- --- -- - l monitor 800x600 con laSIAMOPRESENTIPRESSOI tecnica dell'OverscrollingNUMEROSIPUNTIVENDITAI Compatibile anche con

ATARIINTUTTAITALIA. monitor VGACONTATTATECI PER L'INDIRIZZO DELNOSTRO RIVENDITORE PIU' VICINO.