Avanti Indietro Indice

2. Linguaggi di programmazione

C, Lisp e Perl sono i linguaggi tradizionalmente usati per l'hacking nella cultura GNU/Linux; Python, PHP, Java e C++ hanno guadagnato terreno di recente.

2.1 Concetti della tabella

Linguaggio

Un nome comune del linguaggio.

Principianti

Indica quanto un linguaggio è adatto per persone con poca esperienza di programmazione. Un linguaggio marcato con ``sì'' dovrebbe essere adatto come primo linguaggio di programmazione per un principiante.

Performance

Quanto veloci le applicazioni saranno quando verranno messe in un ambiente di produzione. Le prestazioni dipendono più dalle capacità di programmazione algoritmica che dal linguaggio utilizzato. A lume di naso C, C++ e Fortran sono talvolta necessari perché possono offrire migliori prestazioni di altri linguaggi - altre volte possono essere poco maneggevoli per lo scopo prefisso. (Una idea per un ``benchmarking'' empirico dei linguaggi potrebbe essere implementare un semplice algoritmo di ricerca in tutti quanti e confrontare i tempi di esecuzione. Questo naturalmente non misura le prestazioni del linguaggio in sé - in quanto un tale concetto non ha significato - ma solo dell'implementazione. Naturalmente non é nemmeno un metodo molto affidabile o completo, ma darebbe un'idea di quanto i tempi di esecuzione possono differire tra linguaggi diversi. Nessuno vuol aiutarmi in questa cosa?)

OOP, Object-Oriented Programming vs. altri paradigmi

La programmazione orientata gli oggetti è un importante paradigma di programmazione che sta guadagnando popolarità. Nella programmazione orientata agli oggetti le strutture dati e gli algoritmi sono integrati in unità, spesso chiamate classi. L'OOP è spesso contrapposta alla programmazione procedurale (che separa algoritmi e strutture dati). La questione non è strettamente dipendente dal linguaggio usato: si può fare OOP in un linguaggio non elencato sotto tale categoria (per esempio il C), e programmare in stile procedurale in linguaggi elencati come OOP. Ho elencato come OOP i linguaggi che hanno speciali caratteristiche od estensioni per facilitare l'OOP. I linguaggi funzionali (il Lisp per esempio) sono un tipo un po' diverso - tra le altre cose, la programmazione funzionale è un superinsieme dell'OOP. La programmazione logica (Prolog), anche detta programmazione dichiarativa, d'altra parte, non è collegata alle altre categorie di programmazione in un senso simile.

RAD, Rapid Application Development

Dipende più dagli strumenti che si stanno utilizzanfo che dal linguaggio in sé. C'è un HOWTO sugli strumenti di sviluppo GUI per Linux, anche se non è aggiornato. Con un buon strumento grafico si può fare RAD. Il RAD può essere potente quando si basa anche sul riuso di codice, perciò il software libero potrebbe fornire un buon punto di partenza.

Esempi

Sono gli ambiti della programmazione in cui il linguaggio è più utilizzato. Possono esistere altri buoni (e cattivi) casi di uso, ma sono meno caratteristici.

Commenti

Informazioni aggiuntive sul linguaggio, come capacità e dialetti.

2.2 Linguaggi principali


Perl
Principianti: Sì - OOP: Sì
Esempi: Scripting, amministrazione di sistema, www
Commenti: Potente per gestire testi e stringhe

Python
Principianti: Sì - OOP: Sì 
Esempi: Scripting, scripting di applicazioni, www
Commenti: 

TCL
Principianti: Sì - OOP: No
Esempi: Scripting, amministrazione di sistema, applicazioni
Commenti: 

PHP
Principianti: Sì - OOP: Sì
Esempi: Www
Commenti: Popolare per database web

Java
Principianti: Sì - OOP: Sì
Esempi: Applicazioni cross-platform, www
Commenti: Si sta diffondendo in nuove aree, ad es. infrastrutture di e-commerce

Lisp
Principianti: Sì - OOP: funzionale
Esempi: modi di Emacs (per Elisp), intelligenza artificiale
Commenti: Varianti Elisp, Clisp e Scheme

Fortran
Principianti: No  - OOP: No
Esempi: applicazioni matematiche (scientifiche)
Commenti: Varianti f77 e f90/95

C
Principianti: No  - OOP: No
Esempi: programmazione di sistema, applicazioni
Commenti: 

C++
Principianti: No  - OOP: Sì
Esempi: Applicazioni
Commenti:

2.3 Programmazione di shell

Anche le shell sono un importante ambiente di programmazione. Non le ho trattate qui perché non conosco ancora l'argomento molto a fondo. La conoscenza delle shell è importante per chiunque lavori in Linux regolarmente, ed ancor più per gli amministratori di sistema. Ci sono analogie tra la programmazione di shell e gli altri tipi di scripting - spesso raggiungono gli stessi obiettivi, e si ha la possibilità di scegliere tra una shell nativa ed un linguaggio di scripting a sé stante. Tra le shell più popolari vi sono bash, tcsh, csh, ksh e zsh. Si possono ottenere informazioni di base sulla propria shell con il comando man, ad esempio man bash.

2.4 Altri linguaggi

Altri linguaggi degni di nota: AWK, SED, Smalltalk, Eiffel, Ada, Prolog, assembler, Objective C, Logo, Pascal (convertitore p2c)

2.5 Link


Avanti Indietro Indice