2. IL PROGETTO FREEWARE
2.1 Obiettivi
Si e` accennato nel precedente paragrafo 1.3 al fatto che importanti organizzazioni scientifiche si sono attribuite ruoli di razionalizzazione del "freeware" e coordinamento delle attività di sviluppo relative. Questo lavoro ha avuto comunque una prevalente caratterizzazione scientifica e non ha mai avuto finalità industriali.
L'obiettivo centrale del progetto qui proposto e` invece rappresentato dalla sistematizzazione organica, a fini industriali, comprensiva del lavoro di certificazione e di ampliamento, ove necessario, del materiale disponibile. Il sogno e` fare dell'Italia la capitale mondiale del "freeware". Quattro aree di attività, concettualmente sequenziali ma praticamente interallacciate, caratterizzeranno il lavoro da svolgere.
Nella prima area si produrrà un inventario dell'esistente, insieme a una prima grossolana valutazione e classificazione. Il risultato del lavoro sarà rappresentato da un sito pubblico, dotato delle fondamentali funzionalità della sicurezza, e soprattutto della mutua autenticazione sito-visitatore con certificazione delle firme, contenente le informazioni di sintesi di ogni frammento significativo del freeware, insieme ai relativi puntatori in rete. L'informazione testuale sarà scritta in inglese, italiano, francese e tedesco.
La seconda area di attività avrà come obiettivi centrali la valutazione e la certificazione dei singoli prodotti o linee di prodotti. La valutazione sarà effettuata dal duplice punto scientifico-tecnico e industriale-commerciale, con enfasi sulle implicazioni di progresso scientifico, sulla rilevanza applicativa, sulla dimensione del bacino d'utenza potenziale.
In questa fase, si procederà separatamente per linee applicative verticali, selezionate sulla base dei criteri indicati e delle risorse disponibili. Nel paragrafo successivo sono indicati alcuni esempi non esaustivi di aree applicative su cui si propone di concentrare l'attenzione.
La terza area di lavoro, strettamente interconnessa con la seconda, sarà finalizzata alla produzione della documentazione e della manualistica dei singoli moduli software certificati. Tale documentazione dovrà riguardare sia gli aspetti delle funzionalità e delle prestazioni offerte dai singoli prodotti, sia quelli dell'operatività del codice sorgente. In altri termini, si dovrà consentire all'utente non professionale di utilizzare senza troppe difficoltà il programma applicativo, come ad esempio il sistema di videoscrittura, e si dovrà mettere il professionista software nelle condizioni di installare, correggere e modificare un sistema operativo o un ambiente di sviluppo.
La documentazione tecnica potrà essere prodotta solo in lingua inglese; quella funzionale dovrà essere scritta almeno in italiano, inglese, francese e tedesco.
Il risultato di questa terza area di attività sarà costituito da una serie di "compact disk", uno per ciascuna linea di prodotti significativa.
La quarta area di attività, la più complessa e interessante dal punto di vista scientifico, sarà volta a completare le linee di prodotti disponibili con moduli nuovi, necessari per completare vere e proprie "suite" di sistemi operativi, strumenti e ambienti di sviluppo, sistemi per la gestione di basi di dati, ambienti di rete, programmi applicativi per l'ufficio o, al limite, per la gestione e il controllo di processi produttivi. Ovviamente, non si potrà coprire tutto l'universo delle aree applicative attualmente occupate dai molti programmi del mercato, ma si dovrà operare scelte precise, che tengano conto della rilevanza scientifica, della dimensione del bacino d'utenza, della fattibilità economica. Cosi`, pare opportuno orientarsi prevalentemente al mondo del personal computer, in considerazione della sua dimensione, e alle aree applicative delle reti, dei "data base", dell'ufficio.
Eccezionalmente i sottosistemi attuati per l'integrazione di "freeware" esistente e di moduli nuovi sviluppati nell'ambito del progetto potranno prevedere anche un ruolo per prodotti disponibili sul mercato purché di basso costo per l'utenza e a condizione che i produttori coinvolti accettino l'integrazione del loro software nei nuovi strumenti.
2.2 Aree di attività
Senza pretendere di essere completi e, soprattutto, senza voler anticipare scelte di carattere strategico che competeranno alla direzione del Programma , si indicano alcune aree di intervento che mi paiono particolarmente interessanti dal punto di vista delle finalità indicate nel successivo capitolo 3.
Sistemi operativi
Ovviamente il mondo LINUX-UNIX sarà al centro del progetto, insieme all'universo dei "driver" e dei moduli collegati. Le estensioni che dovranno essere apportate a quel mondo dovranno andare nella direzione di rendere le interfacce di quel sistema operativo più amichevoli.
Tra i "freeware" già disponibili da cui si potrà partire per i nuovi sviluppi ricordo OffiX (http://leb.net/OffiX/), scritto in C++ con l'aspirazione a divenire l'ambiente a oggetti per la costruzione di applicazioni interattive; wxWindows (http://web.ukonline.co.uk/julian.smart/wxwin/), una libreria di classi per compilare programmi grafici scritti in C++ per diverse piattaforme; General Graphics Interface
(http://www.ggi-project.org/), una riscrittura del sottosistema di console di LINUX; Fresco (http://www.iuk.tu-harburg.de/fresco/), un ambiente "object-oriented" per lo sviluppo di applicazioni a finestre, con bottoni e controlli vari, editori di testo e ricchi oggetti grafici.
Strumenti di programmazione
È una delle aree più interessanti dal punto di vista scientifico e più ricco di librerie e strumenti. Tra le più importanti si ricordano la libreria in linguaggio C della nota organizzazione degli utenti UNIX chiamata GNU (http://www.gnu.org/software/libc/libc.html) e la Standard Template Library (http://www.sgi.com/Technology/STL/), una collezione di moduli in C++ contenente molti degli algoritmi centrali per la ricerca e l'insegnamento nel settore della scienza dell'informazione.
Ambienti di programmazione
Lo scenario del "freeware" in questa area e` molto ricco di compilatori, "debugger" e strumenti vari. Si ricordano il Data Display Debugger (http://www.cs.tu-bs.de/softech/ddd), caratterizzato da un'elegante interfaccia grafica, che rappresenta le strutture dati come grafi; DOC++ (http://www.zib.de/Visual/software/doc++/index.html), un sistema di documentazione per i linguaggi C, C++ e Java; DJGPP (http://delorie.com/djgpp/), un ambiente di sviluppo per personal computer in DOS; Eli (http://cs.colorado.edu/~eliuser/), una linea di strumenti della famiglia dei "translator writing systems"; CVS (http://www.cyclic.com), un prodotto per la gestione delle varie "release" e varianti di un prodotto software.
Sistemi di videoscrittura e altri prodotti per l'ufficio
Costituiscono attualmente un mercato molto importante, in virtù della loro diffusione negli uffici. È molto difficile battere noti prodotti del mercato, ma la logica innovativa di LyX (http://la1ad.uio.no/lyx/), e i grandi incrementi di produttività che promette potrebbero aprire importanti prospettive a una nuova linea di prodotti.
Una soluzione alternativa potrebbe essere rappresentata dall'arricchimento di TEX di interfacce più amichevoli e strumenti di semplificazione del suo simbolismo astratto. Anche altri prodotti per l'ufficio, come fogli elettronici, schedari, strumenti per l'archiviazione e la ricerca di documenti potranno essere ampliati per realizzare vere e proprie "suite" per l'ufficio. La difficoltà principale risiederà nell'integrazione di questi moduli fra loro e con il sistema di videoscrittura in un ambiente omogeneo per funzionalità e modalità di lavoro.
Sistemi per la gestione di basi di dati
È forse una delle poche aree ove attualmente il "freeware" appare meno competitivo dei noti prodotti del mercato. Si potrà e dovrà discutere se sia conveniente affrontare subito questo problema e non convenga piuttosto costruire strumenti "free" di interfaccia verso noti prodotti del mercato, purché economici.
Si segnala comunque il Berkeley Database (http://mongoose.bostic.com/db/), che fornisce strumenti per la gestione di archivi sia in ambienti tradizionali sia in applicazioni "client-server".
Strumenti per la grafica e il design
Sono molto numerosi gli strumenti per la manipolazione interattiva e la visualizzazione di immagini. Si ricordano, ad esempio, GIMP(http://www.gimp.org), che fornisce anche le funzionalità del ritocco di fotografie e di composizioni varie di immagini; FreeDesigner (http://fpa.engineers.com), uno strumento per il disegno e il progetto assistito dal calcolatore; Pixcon & Anitrol (http://www.radix.net), un package per la visualizzazione e l'animazione tridimensionale. Anche questi strumenti, od altri della stessa famiglia, potranno essere integrati nella "suite" per l'ufficio.
Programmi per la sintesi di suoni, voce o musica
Sono disponibili programmi, come LilyPond (http://www.stack.nl), per la visualizzazione dello spartito musicale e la sintesi della musica; altri, come Audio Signal Processing Programs (http://bul.eecs.umich.edu), per l'analisi di segnali acustici per mezzo di spettrogrammi e analizzatori di spettro; altri ancora, come Linus Phone Project (http://www.lightlink.com), per comprimere il segnale vocale sino a 4800 bit al secondo, che potrebbero anche essere utilizzati per risolvere l'importante problema della "voice over Internet".
Videogiochi e altre applicazioni multimediali
È un panorama molto ampio che comprende giochi tattici come Lincity (http://www.floot.demon.co.uk) o FreeCiv (http://www.daimi.aau.dk), simulatori di volo, come Xpilot (http://www.xpilot.org), guerre spaziali, giocatori di scacchi, simulatori di tennis, ping-pong, ed altri. Di grande interesse scientifico e di notevole rilevanza applicativa per i servizi di videoconferenza e di "video-on-demand" sulle reti della prossima generazione appaiono i freeware" per la compressione di filmati secondo lo standard MPEG.
Strumenti per la gestione di reti
Molto del software utile per la gestione di reti di calcolatori e per l'attuazione dei protocolli di comunicazione appartiene al mondo del "freeware". In particolare, forse la maggioranza del software di comunicazione per Internet - protocolli del mondo TCP-IP, strumenti di monitoraggio e gestione, moduli "proxy", software dei "communication server", "mail server" e "www server" come i ben noti Apache (http://www.apache.org) e Linbot (http://home1.gte.net) – sono disponibili in forma completamente "free". È noto, ad esempio, che alcuni "Internet Provider" utilizzano soltanto "freeware".
Applicativi per Internet
L'importanza del "freeware" di questo settore, associato al ben noto quadro del mercato ove alcuni concorrenti aspirano all'egemonia assoluta, hanno portato alla distribuzione gratuita anche di alcuni prodotti commerciali, come i ben noti "browser". A titolo d'esempio, si ricordano i lettori di posta elettronica Ultimate Mail Tool (http://www.crocodile.org), Balsa (http://www.serv.net), Petidomo (www.petidomo.net) (gratuito sino alla versione 1.3), MH Message Handler (http://www.ics.uci.edu), Sendmail (http://www.sendmail.org) e i "web browser" Arena (www.yggdrasil.com), Lynx (http://lwww.lynx.browser.org), Project Mnemonic (http://www.mnemonic.org), Amaya (http://www.w3.org), Chimera (http://www.unlv.edu), WebTk HTML Editor (http://sunscript.sun.com).
Un sottocapitolo a parte e` costituito dalle macchine virtuali per Java, come Kaffe (www.kaffe.org) e Japhar (www.hungry.com), e i compilatori del linguaggio Java come Guavac. L'importanza di questo capitolo e` anche dovuto al ruolo centrale che Java potrebbe giocare nel mondo del "freeware" come veicolo per il trasferimento degli "oggetti", ossia delle unità fondamentali del software secondo il noto modello dell'"Object Oriented Programming".
Software per la sicurezza
Il problema della sicurezza informatica è caratterizzato da molti aspetti, i più noti dei quali sono sicuramente la crittografia, la mutua autenticazione con la tecnica della chiave pubblica e della chiave privata e, strettamente legata all'autenticazione, la firma elettronica. Le ben note norme imposte dal Pentagono per ragioni di sicurezza militare, che vietano l'esportazione di programmi di crittografia con chiavi più lunghe di 40 bit e di programmi di autenticazione basati su chiavi più lunghe di 128 bit, hanno aperto uno spazio molto esteso ai programmatori europei e molto del loro lavoro è "freeware". Per i limiti dei programmi americani, il "freeware" della sicurezza, come il ben noto PGP (http://www.peti.gmd.de), è molto meglio del software commerciale.
2.3 Organizzazione del progetto
Benché l'organizzazione del progetto competa ai suoi futuri organismi direttivi, si ritiene opportuno sottolineare qualche aspetto importante della questione.
In primo luogo, per la sua stessa natura un progetto di questo tipo deve essere basato su una stretta collaborazione fra unità della ricerca pubblica e gruppi aziendali. Prevalentemente, ma non esclusivamente, ai primi competeranno i compiti della ricerca, della certificazione e della documentazione e ai secondi l'incarico di sviluppare le estensioni del codice e i nuovi moduli, mentre la consulenza alla direzione per la definizione strategica degli obiettivi sarà affidata a gruppi di lavoro congiunti.
Sfortunatamente gli utili per gli accademici derivanti dalla partecipazione al progetto, valutati in termini di pubblicazioni o crescita scientifica, potrebbero non essere adeguati all'impegno da spendere. Per questo sarebbe opportuno studiare un meccanismo compatibile con la normativa vigente, al fine di riconoscere un adeguato compenso economico ai dipendenti delle strutture pubbliche di ricerca.
Un secondo punto che dovrà essere valutato con attenzione concerne la valutazione e la certificazione delle varie attività che saranno svolte dalle unità operative del Progetto. Infatti, mentre la valutazione della qualità di un prodotto software può essere fatta sulla base delle sue funzionalità e prestazioni, e la stima del suo valore economico può essere formulata in termini di dimensioni, la valutazione della qualità e del valore economico di un lavoro di certificazione o di documentazione e` compito molto complesso che richiede una specifica professionalità. Per questa ragione, sarà opportuno costituire anche gruppi di "certificazione di secondo livello", con il compito di valutare tecnicamente ed economicamente il lavoro svolto nell'ambito del Progetto. Di conseguenza, le attività svolte dai vari gruppi accademici e industriali rientreranno nelle seguenti categorie.
Definizione strategica degli obiettivi
Un gruppo di lavoro, operante in stretto collegamento con la Direzione del Progetto, produrrà con continuità la fotografia del "freeware" esistente, fornirà una prima valutazione tecnica ed economica di ogni prodotto per confronto con i corrispondenti prodotti del mercato, suggerirà alla Direzione le aree e le priorità dell'intervento.
Certificazione di un prodotto "freeware"
Tale attività consisterà nel collaudo di un "freeware" e nella sua valutazione tecnica e funzionale. Il confronto con analoghi prodotti del mercato dovrà consentire l'identificazione di sviluppi successivi, necessari per l'ampliamento delle funzionalità e il miglioramento delle prestazioni.
Produzione della documentazione
Di un prodotto "freeware" si dovrà produrre sia la documentazione tecnica, necessaria per impostare gli sviluppi futuri e per integrare il prodotto con altri, sia la documentazione funzionale rivolta prevalentemente all'utente non informatico.
Sviluppo di nuovi moduli
Occorrerà sviluppare qualche nuova unità; più spesso si dovranno ampliare le funzionalità disponibili, soprattutto con l'obiettivo di rendere più amichevoli le interfacce e più facile l'uso del programma.
Di particolare importanza sarà il lavoro di integrazione di componenti diverse, in modo da realizzare vere e proprie "collezioni" omogenee di programmi.
Certificazione di secondo livello
Per ogni unità di lavoro si dovrà valutare con attenzione, in fase istruttoria, la dimensione prevista e successivamente, in fase consuntiva, verificare la qualità del lavoro svolto e la sua rispondenza agli obiettivi predefiniti.
2.4 Durata e costo del progetto
La struttura modulare del progetto consentirà di dimensionare gli obiettivi in funzione delle risorse disponibili.
Una prima macrofase di attività , della durata di tre anni, consentirà di operare nelle aree indicate nel precedente paragrafo 2.2, con una spesa molto variabile in funzione del settore prescelto.
Mediamente saranno necessari circa 10 miliardi per ciascuna area tematica, per un costo complessivo di circa 100 miliardi.
La valutazione del costo di un'area tematica media deriva dalle seguenti stime:
- inventario dell'esistente: 2 anni-uomo;
- certificazione dell'esistente: 6 mesi-uomo per ciascun modulo acquisito, per un totale di 5 anni-uomo;
- documentazione funzionale dell'esistente: 5 anni-uomo;
- documentazione strutturale dell'esistente: 10 anni-uomo;
- definizione degli obiettivi industriali del sottoprogetto, delle specifiche funzionali di ogni modulo e dei requisiti di concatenazione con gli altri moduli: 10 anni-uomo;
- riprogettazione dei singoli moduli in un quadro di integrazione globale: 4 anni-uomo;
- sviluppo di circa 40 moduli elementari, di lunghezza media pari a circa 10.000 istruzioni: 80 anni-uomo.