Browsing
Information
Calendar
Date
desc





/doc/Architettura

TOC

Java e Linux

Premessa

Questo documento assume che il lettore sia uno sviluppatore, magari con conoscenza di Windows, che voglia iniziare a lavorare in Java su sistema operativo Linux.

Per questo documento abbiamo scelto la licenza Creative Commons per consentire a tutti di contribuire costruttivamente in pieno spirito comunitario.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.

Introduzione al documento

L'obiettivo e' quello di aiutare uno sviluppatore che voglia intraprendere la scrittura di programmi in linguaggio Java su sistema operativo Linux.

Nel primo capitolo "Architettura",
sono presi in esame i mattoni costituenti una piattaforma di sviluppo Java e consigliati gli strumenti che secondo noi costituiscono una scelta generica e di livello professionale.

Nel secondo capitolo "Ambienti di sviluppo",
vengono approfonditi gli argomenti di scelta tra i due ambienti di ottima qualita' Netbeans ed Eclipse.

Nel terzo capitolo "JDK e librerie",
si esaminano le scelte di strumenti essenziali e librerie standard.

Nel quarto capitolo "Sistema operativo",
si approfondisce l'uso del sistema operativo aperto GNU/Linux in distribuzione Ubuntu.

Architettura di una piattaforma di sviluppo Java su Linux

Java e' un linguaggio di programmazione orientato agli oggetti inventato da Sun e la sua definizione e' espressa in un insieme di specifiche.
Spesso con lo stesso termine si sottointende in realta' la piattaforma Java, costituita oltre che dal linguaggio, anche dalle librerie standard anchesse specificate da Sun. Il linguaggio nella sua definizione orginale si presenta come seminterpretato, ossia il codice sorgente Java viene compilato in un formato non direttamente eseguibile, ma in un formato indipendente dallo specifico sistema operativo su cui verrà fatto eseguire grazie ad uno specifico interprete denominato Virtual Machine.
Per sua natura, quindi, Java è un linguaggio indipendente dalla piattaforma.
Si appoggia ad una macchina virtuale che simula una macchina astratta identica su sistemi operativi differenti.

L'insieme degli strumenti necessari per poter
scrivere programmi in linguaggio Java
sono:

  • un sistema operativo,
  • una piattaforma di sviluppo (SDK) Java supportata dal s.o. ,
  • eventuali librerie aggiuntive secondo necessita',
  • e per facilitarci la vita un ambiente integrato di sviluppo che velocizzi la scrittura del codice sorgente piu' noioso.

Seguono ora i nostri consigli.

Sistema operativo

Windows e' il sistema operativo che nel 99% dei casi trovate preinstallato sul PC che avete acquistato. Inoltre e' il 90% percento dei sistemi operativi che i vostri clienti posseggono sui loro PC. La manutenzione, l'installazione di applicativi il supporto quindi non possono che essere tra i piu' semplici. Per queste ragioni probabilmente gia' lo conoscete e se non volete novita' rimane un sistema operativo valido per lo sviluppo Java. Il problema maggiore di Windows sta nella sua licenza a codice sorgente chiuso, ossia leggibile e modificabile dalle sole persone che ne detengono i diritti, nello specifico Microsoft. Ossia in caso di problemi dovete aspettare che vi vengano risolti da Microsot e non saprete praticamente mai cosa stia combinando e perche', aspetto delicato per degli sviluppatori.

GNU/Linux e' un sistema operativo a codice aperto (open source) accessibile a tutti con dotazione completa:
interprete (macchina virtuale), compilatore ed ambienti di sviluppo per Java, oltre che di programmi di uso comune come: programmi per l'ufficio, per Internet, per la posta e tantissimi altri.
E' gratuito e stabile; negli ultimi tempi anche la sua manutenzione si e' semplificata guadagnando largo supporto in ambito aziendale, oltre che ad uso personale,
tanto da poter rivaleggiare con Windows in molte situazioni, se non soppiantarlo quasi completamente in ambito rete.
GNU/Linux e' un prodotto nato dall'idea di pionieri e costruito grazie allo spirito di comunita' degli sviluppatori presenti in Internet. In perfetta linea con lo spirito JUG.
La sua comunita' internet e' la piu' estesa e quindi non vi sentirete mai soli ed abbandonati, un vostro problema sara' facilmente condiviso e facilmente gia' risolto da qualcun'altro nel mondo e spesso piu' vicino di quanto pensiate.
LinuxTrent e' ad esempio un gruppo di appassionati e professionisti che sicuramente vi sapranno orientare gratuitamente in questo universo.
Tutt e questi argomenti ci portano a consigliarlo come sistema operativo di riferimento per lo sviluppo in Java.

Esistono svariate distribuzioni del sistema operativo Linux, tra le più famose:
Debian, Ubuntu, Knoppix, RedHat, SuSe.
Noi prenderemo a riferimento la distribuzione Ubuntu.
Perche' ne condividiamo i principi che guidano il gruppo che la mantiene.
Perche' rilasciato per essere tra i piu' facili ma manutenzionare, basato sulla famosa distribuzione di qualità Debian con un corredo di software gratuito "certificato" e di facile installazione.
Adeguata quindi agli sviluppatori che preferiscono spendere piu' tempo sul proprio codice che su quello altrui.

Compilatore

Una volta scelto il sistema operativo passiamo alla macchina virtuale (VM) ed al compilatore.
Grazie alle specifiche SUN e' stato possibile avere piu' implementazioni di macchina virtuale e compilatori a parita' di sistema operativo, consentendo quindi un miglioramento competitivo reciproco.

Noi restrigeremo la scelta tra: Software Development Kit di SUN e GNU.
La VM ed il compilatore di SUN sono quelli completi per definizione ma viene rilasciata in licenza SUN a codice non aperto seppur liberamente distribuibile.
Quella di GNU e' ad uso completamente libero in licenza GPL, anche se non completa come la versione di SUN.
Per i puristi consigliamo GCJ, per chi non vuole grattacapi la versione di Sun completa, veloce e anche se un po' piu' restrittiva in licenza.
La VM di riferimento da noi scelta per le nostre esigenze e' VM e compilatore GNU.

Strumenti di facilitazione allo sviluppo

Passiamo ora all'ambiente di sviluppo. Per scrivere codice sorgente java basta un qualsiasi editor di testo. Quindi a linea di comando si puo' far uso dei comandi preparati dal JDK. Questo è l'ambiente di sviluppo minimale.

Un primo passo costitusce nell'uso di editor di testo evoluti ma generici con possibilità di plugin che dallo stesso editor consentano di interfacciare ed aggiungere funzionalità di terze parti ed in particolare funzioni di sviluppo.

Un secondo passo invece prevede l'uso di piattaforme integrate di strumenti di sviluppo che siano pronte all'uso una volta installate. Questi sono gli IDE integrated development enviroment, ambienti di sviluppo integrati.

Come ambiente di sviluppo consideriamo in questo documento
solo quelli open source, gratuiti e con una buona comunita' a supporto. Restringiamo la scelta tra: NetBeans ed Eclipse.

Qui la scelta e' piu' legata a preferenze personali di usabilita' o alla presenza di specifici plug-in aggiuntivi
che in certi contesti possono fare la differenza e costituire dei notevoli acceleratori.

Si deve infine notare che un ambiente di sviluppo integrato (IDE) costituisce un elemento importante ma spesso
non sufficiente per uno sviluppo serio. Si considera ormai indispensabile anche un versionatore di sorgenti.
Entrambi gli ambienti non integrano all'installazione un sime strumento ma sono pronti ad interfacciarsi ai prodotti piu' comuni, in particolare CVS e Subversion.

Oltre gli strumenti

Indispendabile ad ogni sviluppatore sono i seguenti requisiti: un processo adeguato al tipo di soluzione software che si vuole implementare, conoscenze di ingegneria del software per scrivere buoni programmi, conoscenza di pro e contro per interfacciarsi e scegliere componenti architetturali adeguate.
Tutte queste scelte non sono poche e non sono facili, vanno certamente valutate caso a caso. Le combinazioni sono moltissime. Ecco quindi il valore dell'esperienza e della comunita', in breve il significato stesso di un gruppo come un JUG, al quale consigliamo di iscrivervi il prima possibile.

Conclusioni

In questo capitolo abbiamo indicato gli ingredienti base di un ambiente di sviluppo Java su sistema operativo Linux, indicando quali prodotti, a nostro parere, possono meglio soddisfare uno sviluppatore.
Nel seguito approfondiremo in dettaglio le scelte consigliate sino a qui, cercando di evidenziare le soluzioni ai possibili ostacoli in fase d'uso o dove trovare eventuali ulteriori informazioni ed aiuti.

Add your comment