Programmazione

Sono un programmatore hobbista ed incostante, che usa soltanto (o quasi) strumenti Open Source. Per un po’, ultimamente, ho saltellato fra vari linguaggi.

Sono tra i tanti che hanno cominciato con il Basic sugli home-computer e poi l’hanno ritrovato sui primi personal. Ho usato il Fortran all’Università, nella vecchia variante 77 “non strutturata”. Ho invece scoperto il Pascal molto più tardi e mi ha brevemente appassionato per l’eleganza e la razionalità, nulla a che vedere con quelle macchine di tortura del C e derivati. Fra essi metto non solo il C++, ma anche Java e C#.

Per il C++ il legame con il C è una croce e delizia. E’ uno dei motivi per cui si è così tanto diffuso, accede facilmente alle librerie C, ma è anche la causa di alcuni degli aspetti peggiori del linguaggio, come i meccanismi per lavorare a basso livello con i puntatori e l’esigenza di costruire una libreria standard per disporre di stringhe e contenitori dati pratici. Sembra una costruzione affastellata, in cui una stessa cosa si può fare con costrutti diversi e vario grado di complessità. Il C, almeno, in questo senso si attiene alla finalità di essere più piccolo possibile.

Java e C# provano a razionalizzare l’approccio alla programmazione ad oggetti ma aggiungono complessità concettuale e non risolvono il problema della simbologia poco intuitiva ereditata dal C.

Forse un giorno dovremo arrivare alla conclusione che tornare al Pascal sarebbe un grosso passo avanti (linguaggi come D ed ancor più Go mi sembra che dicano proprio questo). Il problema è che il C++ mi sembra di base inelegante e farraginoso. Tanti strati e convenzioni di cui tenere conto. Dopo un po’ mi stanca.

Credo che gli appassionati del Basic siano oggi molto più numerosi di quelli del Pascal, ma stranamente divisi e litigiosi. Dev’essere una conseguenza della pletora di dialetti che ne esistono. Mentre i cultori del Pascal si stringono attorno al Free Pascal (libero) ed al Dephi (proprietario), con un piccolo manipolo di nostalgici del Turbo Pascal, quelli del Basic si tengono stretti ciascuno il proprio interprete o compilatore. Ne conseguono una sfilza di progetti, tutti asfittici per carenza cronica di sviluppatori. Il maggiore tra quelli “liberi”, Free Basic, (forse il migliore) ha un forum vivace, ma si evolve a singhiozzo. Il rischio, per entrambi i linguaggi, ma in maggior misura per il Basic, è di non evolversi a sufficienza e diventare il passatempo di nicchia di vecchi nostalgici, incapaci di imparare qualcos’altro. Non riesco a trovare una versione di Basic veramente convincente. Il Free Basic è solo 32 bit e scomodo da far funzionare su Linux 64 bit. Bcx è sviluppato solo per hobby e BaCon(che nel complesso non è male) è lento nella conversione e non mi piace

Sfumature a margine delle vicende quotidiane

l’idea delle variabili tutte globali: per progetti grossi diventa un caos; in più non c’è per Windows. In generale preferisco la definizione esplicita delle variabili perché più sicura. QB64 sa troppo di retrò: convivere oggi con le peculiarità del Qbasic non mi alletta molto, e poi è lento, realizza applicazioni solo grafiche e non per terminale ed è sviluppato secondo i personalissimi canoni e ritmi del suo creatore. Gli interpreti li scarto a priori: per deformazione personale mi piace la velocità sui calcoli.

Forse per questo non mi piace Python. C’è chi lo definisce il nuovo Basic, forse è pratico e le distribuzioni Linux lo usano a dismisura, ma lo trovo lento ed inelegante, proprio non mi appassiona.

Ultimamente mi alterno tra C, C++ (usando i compilatori “liberi” gcc e tcc), e Java secondo lo stato d’animo del momento ed il problema che mi propongo. Risparmiare battute sulla tastiera è comodo, anche se molti costrutti del C++ sono ben poco intuitivi; però tutto quello smanettare con i puntatori mi sembra una perdita di tempo e risorse mentali, oltre che a continuo rischio d’errore. In questo senso il Java è un bel passo in avanti e, in più, mi ha finalmente insegnato un po’ di “programmazione ad oggetti”.

Devo dire che, un po’ alla volta, comprendo l’utilità di strutturale ad oggetti un programma. Se una certa funzione serve per un tipo di dato, è più pratico legarla ad esso e ad esso soltanto. Le statistiche sulla diffusione dei linguaggi di programmazione sono più altalenanti dei risultati di borsa e, con tutta evidenza, raccolgono più “rumore” che dati concreti. Ritengo che siano utili soltanto le tendenze a medio-lungo termine.

Come tanti, ho ricominciato con i frattali: Mandelbrot e Julia.

Annunci

One thought on “Programmazione

  1. Aggiornamento. Ho fatto esperienza di C++ e anche realizzato qualcosa di discretamente complesso (a livello hobbistco) compreso un abbozzo di grafica 3D. Tuttavia non riesco ad appassionarmi a questo linguaggio: troppo conciso e astruso, e poi le parentesi graffe continuano a starmi antipatiche.
    Uso ogni tanto Python e ho nutro qualche attrattiva per quella vecchia cariatide di Ada. In pratica, nel poco tempo che posso dedicare a questo hobby, mi diverto a seguire le evoluzioni dei linguaggi, compresi i funzionali (Haskel e compagnia) e i tentativi di sostituire C/C++ con qualcosa di più moderno e pratico (D, Go, Rust).

Lascia pure un Commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...