Linux/Kylix, il Delphi/C++ per il pinguino

Kylix, ormai in dirittura di arrivo, è il massimo sforzo di Inprise per portare su Linux la facilità e l'immediatezza della programmazione visuale unite alla potenza di Delphi. L'inizio di una nuova era?


Il vero programmatore Linux, quello che non deve chiedere mai, ha come unici strumenti di sviluppo shell a caratteri, compilatori a riga di comando ed editor di testo. Per molti utenti, abituati magari alle comodità degli ambienti di sviluppo visuali, questo approccio potrà sembrare alquanto primitivo, eppure è quello che ha caratterizzato la produzione di software open source dalla sua nascita fino ad oggi.

La comunità di sviluppatori open source è al momento ancora in gran parte formata dai classici programmatori-hacker, persone che trovano nel gcc, in Emacs e qualche altro tool a linea di comando tutto ciò di cui necessitano per sviluppare codice. E’ chiaro che questa filosofia di sviluppo può ancora essere ottima, e talvolta indispensabile, per la creazione di software a basso livello (ad esempio il kernel dello stesso Linux), ma non può certo soddisfare chi, in azienda, deve costruire applicazioni grafiche in tempi rapidi e con il minimo dispendio di energie.

Ecco così che anche per Linux oggi si sente sempre più l’esigenza di ambienti di sviluppo visuali, quelli che spesso vengono definiti Rapid Application Development (RAD). Naturalmente questi richiedono l’utilizzo di un ambiente grafico a finestre, che in Linux è formato a basso livello da XFree86 e a più alto livello da windows/desktop manager come Gnome e KDE. Esistono già diversi tool di sviluppo visuali per Linux, alcuni anche abbastanza completi e sofisticati, ma nessuno può certo reggere il confronto con gli strumenti offerti, in Windows, da Microsoft e Inprise.

Grazie al progetto Kylix, annunciato lo scorso settembre da Inprise, le cose potrebbero però evolvere molto rapidamente. Kylix è infatti il nome in codice di un ambiente di sviluppo RAD che integrerà al suo interno ciò che Delphi e Borland C++ offrono su Windows. Vediamo come nella prossima parte dell’articolo.


E’ indubbio come il nome Borland, oggi un marchio di Inprise, suscita in tutti gli sviluppatori, soprattutto quelli con un bel po ‘ di righe di codice al loro attivo, un misto di emozioni, per lo più positive. Borland fu l’azienda che negli anni ’80 prese per mano i programmatori di mezzo mondo e li fece approdare sui primi ambienti di sviluppo integrati (IDE): chi non ricorda la famiglia di linguaggi Turbo?
Oggi Inprise, dopo un periodo di crisi, si trova nuovamente in prima linea per trasformare Linux in una piattaforma che possa davvero competere ad armi pari con Windows, un obiettivo che recentemente è convolato a nozze con quello, forse ancora più ambizioso, di Corel.

Inprise ha già all’attivo per Linux porting come quello di Interbase, di JBuilder e Visibroker, ma nessuno di essi può essere considerato altrettanto importante del progetto Kylix: con esso Inprise spera infatti di far esplodere il numero di applicativi per Linux e rendere questa piattaforma molto più interessante per le aziende, le software house ed i piccoli sviluppatori indipendenti.
Fu proprio l’avvento dei primi strumenti di sviluppo visuali che, verso la metà degli anni ’90, portarono ad un boom degli applicativi per Windows e al progressivo passaggio, in azienda, dall’interfaccia a caratteri dei programmi DOS (Cobol in primis) all’interfaccia a finestre tipica dei linguaggi visuali.

Quando si parla di Kylix, lo si sarà notato, si parla quasi esclusivamente delle meraviglie di Delphi su Linux dimenticando, spesso, che l’ambiente integrerà anche il C++ Builder. Questo è tutto sommato comprensibile: in fondo il C++ è uno dei linguaggi nativi di Linux e non rappresenta una grossa novità, se non per l’ottimo approccio visuale che il C++ Builder può vantare. Del resto anche il suo porting su Linux sarà senz’altro più agevole da parte di Inprise e la compatibilità con l’ANSI C++ del gcc si presume potrà essere totale.

Delphi su Linux è però un evento senz’altro di maggiore portata: questo linguaggio, basato su di un Pascal a oggetti, conta una comunità di sviluppatori seconda solo a quella di Visual Basic e le sue qualità più evidenti, come le prestazioni, vengono riconosciute un po ‘ da tutti.

Kylix viene considerato un progetto ambizioso e complesso perché si tratta del primo tentativo di “impiantare” nativamente su Linux un tool di sviluppo visuale nato e cresciuto su Windows. Delphi è un “idioma” informatico che sebbene abbia radici antiche, il Pascal, è stato completamente ripensato per le esigenze del programmatore moderno e le funzionalità dell’ambiente Windows 9x.

Il trasporto di Delphi su Linux non è dunque cosa semplice, e questo proprio per le enormi differenze che frappongono Windows e Linux: pensiamo soltanto alla diversa gestione delle periferiche (che in Linux avviene attraverso file speciali), alla diversa interpretazione di certi caratteri (il punto e virgola non è un path separator in Linux), al diverso funzionamento delle librerie dinamiche, alla diversa architettura di kernel e file system, ecc. ecc.
E’ proprio per tali motivi che ad Inprise non piace descrivere Kylix come il “Delphi for Linux”: essendo un progetto nativo per Linux Kylix non potrà garantire una compatibilità del 100% con Delphi, sebbene i progettisti faranno di tutto per rendere il porting di codice fra i due ambienti il più veloce e agevole possibile.

Naturalmente il fatto che Kylix non potrà essere pienamente compatibile con il codice di Delphi deve essere visto come un pregio: tutto, dal motore del compilatore a quello del nuovo assembler, saranno completamente riscritti e produrranno eseguibili x86 nativi per Linux (ELF). Il fatto che per mantenere la più ampia compatibilità con l’Object Pascal di Windows non si sia fatto ricorso a emulatori, macchine virtuali o trucchi di altro genere, rappresenta senz’altro una vittoria per Linux e per i suoi sviluppatori, presenti e futuri.


Kylix mantiene la compatibilità con l’architettura VCL (Visual Component Library) di Windows, sebbene con piccole eccezioni date soprattutto da qualche differenza fra i due sistemi operativi ed i relativi sottosistemi grafici. La VCL fornisce un’astrazione sui componenti di sistema, sulla GUI e sull’accesso ad Internet ed ai database. Per il momento Inprise sostiene che la VCL di Linux offrirà agli sviluppatori tutta una serie di componenti base per X, compatibili con qualunque GUI che si appoggi per l’appunto a XFree86. Naturalmente verranno poi forniti, attraverso dei GUI toolkit, supporto per componenti più avanzati tipici di ambienti desktop come KDE e Gnome, con una certa priorità per il primo di essi: il team di sviluppatori di Inprise si augura che i due progetti, KDE e Gnome, scelgano al più presto una strada comune per lo sviluppo di formati fondamentali come quelli per la clipboard, le API di installazione ed il registro di sistema.

Come si intuisce, solo in pochi casi la ricompilazione di applicazioni scritte in Delphi non necessita di modifiche al codice quando portate in Kylix: un classico programma tipo “hello world!”, costituito magari da una semplice form ed un bottone sarà immediatamente portabile, ma nella stragrande maggioranza dei casi, però, si dovranno apportare piccole modifiche nel codice sorgente.

Tra le incompatibilità più marcate fra Delphi e Kylix, molte di esse motivate dalle divergenze fra i due diversi sistemi operativi sottostanti, le più macroscopiche sono quelle legate alla gestione e all’enumerazione delle risorse di sistema, alla diversa architettura dei file system, al diverso funzionamento delle librerie di oggetti condivise (DLL in Windows, LSO in Linux), al differente linguaggio assembler (TASM in Windows, NASM o GNU ASM in Linux), alla differente sintassi del comando make, alla mancanza in Linux del brcc (il Borland Resource Script Compiler).

Nella sintassi del linguaggio le differenze saranno invece minime (ci mancherebbe!) e poco significative, come ad esempio l’aggiunta della parola chiave “LINUX” o della nuova estensione delle librerie di sistema (.so invece di .DLL).

Nella Run Time Library (RTL) le novità sono costituite dall’eliminazione di diverse unit che in Linux non avrebbero motivo di esistere, come ComObj, ComServ, ActiveX, Windows, e dalla mancanza di “variant data type” non pienamente compatibili con OLE Automation. Fra le due RTL le differenze saranno poi legate alla codifica di alcuni tipi di dato, come il WideChar, l’AnsiStrings ed il formato Time, alla mancanza in Linux di quelle istruzioni che richiedono l’accesso ad una lettera di unità disco o, ancora, alla presenza all’interno dei path del carattere slash di Linux al posto del backslash di Windows.
Alcune di queste differenze potranno essere automaticamente sistemate con utilità fornite direttamente da Inprise.

Naturalmente le differenze non si fermano qui e le cose non dette sono molte, ma non è certo questa la sede per elencarle tutte, senza contare che Kylix è al momento attuale ancora in fase di sviluppo, sebbene ormai terminale.

Come abbiamo visto Kylix rappresenta una grande promessa per tutto il mono Linux: a livello utente si potrà disporre di molte più applicazioni mentre a livello aziendale si potrà godere di più portabilità fra Windows e Linux e tempi di sviluppo più rapidi. Tutte le applicazioni che fino ad oggi non potevano essere sviluppate in Java per il problema prestazionale, specie quelle lato server, con Kylix potranno finalmente essere scritte una sola volta e funzionare, con poche modifiche, sia su Windows che su Linux, con un conseguente abbattimento dei costi e del numero di risorse umane necessarie ad un progetto software.

Kylix ormai è vicino: questione di un mese o due e dovremmo vedere le prime versioni beta. Dimostrazioni del nuovo ambiente si sono già tenute in giro per il mondo e chi è stato spettatore si è detto stupito della grande velocità del compilatore (circa due secondi per compilare 45.000 linee di codice VCL) e soddisfatto della compatibilità raggiunta con Delphi per Windows.

Chissà, forse fra un anno o due anche Microsoft potrebbe decidere di sviluppare un Visual Basic for Linux. Il business è business, su qualunque piattaforma lo si faccia.

Alessandro Del Rosso

La tua email sarà utilizzata per comunicarti se qualcuno risponde al tuo commento e non sarà pubblicato. Dichiari di avere preso visione e di accettare quanto previsto dalla informativa privacy

Chiudi i commenti