Perché sempre nuovi linguaggi di programmazione?

Esistono tantissimi linguaggi di programmazione. In questo blog ne ho presentati una decina, per limitarmi a quelli alla portata di un dilettante principiante.
La maggior parte dei linguaggi esistenti proviene dallo scorso secolo ma almeno una quarantina – e non sono pochi – sono stati creati nei primi vent’anni di questo secolo: i più noti e utilizzati sono C# del 2000, Scala del 2003, Go del 2009, Kotlin del 2011, Julia e Rust del 2012, Crystal del 2014 e Raku del 2015.
I primi due sono praticamente riscritture di Java: C# ad opera della Microsoft nell’ambito del progetto .NET e Scala nel mondo del software libero.
Di Go, come semplificazione del linguaggio C, di Kotlin, come semplificazione del linguaggio Java, e di Julia, come rivale del linguaggio Python, ho parlato in questo blog, dedicando a ciascuno di essi un manualetto di apprendimento.
Si tratta sempre di linguaggi ampiamente debitori, nella concezione, a linguaggi preesistenti e creati con obiettivi di semplificazione, di miglioramento della velocità di compilazione o di esecuzione oppure di miglioramento della sicurezza.
Soprattutto il miglioramento della sicurezza rispetto a C e C++ è stato l’obiettivo dei creatori di Rust, di cui non ho mai parlato in quanto non è adatto all’apprendimento e non lo considero alla portata dei dilettanti cui è dedicato questo mio blog.
Lo stesso dicasi di Crystal, un linguaggio basato sul linguaggio Ruby, che migliora enormemente la sicurezza del fin troppo libero Ruby con il pregio di essere un linguaggio compilato. Il miglioramento della sicurezza ha comportato tuttavia l’introduzione di complicazioni, specie nella tipizzazione, che lo rendono ostico e praticamente inutilizzabile per fare della matematica come si deve e senza impazzire. Peraltro le funzionalità di Crystal sono soprattutto pensate nell’ambito del software di sistema: cose non da dilettanti.
Per noi dilettanti ritengo invece interessante Raku, la riedizione del vecchio Perl, arrivato alla versione 5, e che, con la versione 6, denominata Raku, diventa ancor più facile di quanto già non fosse, si arricchisce di un nuovo compilatore di bytecode e diventa interattivo, a tutto vantaggio di chi voglia imparare a programmare.
Alla divulgazione delle caratteristiche e delle basi di questa riedizione del linguaggio Perl dedico l’allegato manualetto.
Come sempre il documento è liberamente scaricabile, stampabile e distribuibile.

raku

Le miniere del software libero

In questo blog, dedicato alla divulgazione del software libero, ho presentato tanti programmi, penso oltre il centinaio, per tutti i gusti e per tutte le esigenze.
Quasi sempre si tratta di programmi che possono essere innanzi tutto utilizzati sul sistema operativo del mondo del software libero, GNU Linux, ma che hanno versioni installabili anche sui sistemi operativi, così detti proprietari, Windows e Mac OS. Si tratta dei software più famosi, che hanno un proprio sito web dal quale possiamo scaricare il file per l’installazione sul sistema operativo preferito, purché si tratti del sistema e della versione adatta al file di installazione.
In questo caso utenti Linux, utenti Windows e utenti Mac sono sullo stesso piano: se dispongono di una versione del sistema operativo adatta per far funzionare il software lo installano avvalendosi del file di installazione.
Ma gli utenti di Linux possono procurarsi il software, sia esso utilizzabile anche su altri sistemi, sia esso riservato al sistema Linux, anche senza accedere ai siti, con il vantaggio di ottenere sempre versioni del software, magari superate e non più esibite sui siti, ma adatte alla versione del proprio sistema operativo Linux.
Come dire che Linux, con il software libero, può giocare a casa propria.
Per capire come si gioca in questa casa ho ritenuto utile proporre l’allegato manualetto, liberamente scaricabile, stampabile e distribuibile.
Spero così di contribuire a dimostrare quanto sia vera l’affermazione che GNU/Linux è il miglior sistema operativo del mondo.

mondo_linux

Non dimentichiamoci del C

In questo blog ho pubblicato una serie di manualetti per acquisire le basi di alcuni linguaggi di programmazione che ritengo adatti per principianti dilettanti (Freebasic, Freepascal, Golang, Javascript, Kotlin, Newlisp, Python, Julia, Tcl/Tk).
Non ho fatto altrettanto per i linguaggi C/C++ e Java innnanzi tutto perché li classifico tra i linguaggi di più difficile apprendimento ed anche perché su questi linguaggi esiste un’ampia letteratura in libreria e in rete, dove abbondano anche tutorial ed esempi di programmazione.
Per quanto riguarda il linguaggio Java, nell’allegato in formato PDF “java_android” al mio articolo “Importante riconoscimento per Open JDK” dell’aprile 2016, lasciando alla letteratura esistente l’apprendimento del linguaggio, ho illustrato alcuni strumenti di software libero che ne facilitano l’utilizzo anche per la realizzazione di progetti importanti.
Per quanto riguarda il linguaggio C/C++ faccio altrettanto con il manualetto allegato, come sempre liberamente scaricabile, stampabile e distribuibile.

c_c++

Un nuovo linguaggio per la data science

Rispettando la realtà dei fatti, ogniqualvolta ho parlato di data science in questo blog il linguaggio di riferimento è sempre stato Python, con l’unica eccezione di quando ho parlato di Knime, uno strumento programmato in linguaggio Java, che consente di fare analisi di dati senza scrivere codice.
Da qualche anno è tuttavia insistente la presenza di un altro linguaggio open source, arricchitosi in poco tempo di funzionalità sempre più sofisticate, considerato ormai da molti come un forte concorrente di Python nel campo dell’analisi dei dati.
Si tratta del linguaggio Julia, nato alcuni anni fa al Massachusetts Institute of Technology (MIT).
Visto che la documentazione in lingua italiana su questo linguaggio è praticamente inesistente, e che quella esistente, oltre che essere in lingua inglese, molto spesso non è alla portata di dilettante, penso di fare cosa utile proponendo l’allegato manualetto per una conoscenza di base del linguaggio.
Al solito, il documento è liberamente scaricabile, stampabile e distribuibile.

julia

Software libero per fotografi

In questo mio blog ho presentato due gioielli del software libero sull’argomento fotografia.
Il primo, ffDiaporama, in un manualetto allegato all’articolo “ffDiaporama S.O.S.” del giugno 2017, riguarda un software con il quale possiamo utilizzare le nostre fotografie per costruire veri e propri filmati.
L’altro, digiKam, in un manualetto allegato all’articolo “digiKam, il massimo” del febbraio 2018, riguarda un software per la catalogazione di un archivio fotografico (ma non solo).
In entrambi i casi si tratta di software destinati ad utilizzare fotografie già prodotte e finite.
Esistono altri software destinati a produrre o a manipolare le fotografie prima che diventino cosa finita.
A questi dedico il manualetto allegato, liberamente scaricabile, stampabile e distribuibile.

foto_editing

Orange: data science con Python senza scrivere codice

Nell’aprile 2019, con il mio articolo “Software libero per data scientists” e l’allegato PDF “python_anaconda”, ho presentato l’armamentario che ci offre il linguaggio di programmazione Python per il data mining e la data science.
Armamentario fatto innanzi tutto del linguaggio Python e di una serie di librerie che lo arricchiscono per sviluppare script destinati a lavorare con masse di dati al fine di illustrarli, interpretarli e trarne conoscenza. Cose per fare le quali occorre saper programmare, avendo una profonda conoscenza del linguaggio e delle librerie che si utilizzano.
Nel giugno 2019, con il mio articolo “KNIME: l’alternativa a Python per data scientists” e l’allegato PDF “knime”, ho presentato un gioiello del software libero, costruito con il linguaggio di programmazione Java, attraverso il quale possiamo fare per lo più le stesse cose senza scrivere una riga di codice: semplicemente utilizzando visualmente strumenti preconfezionati e contraddistinti da icone, collegandoli tra loro con il mouse.
Con KNIME, ferma la necessità di avere la preparazione matematico-statistica per sapere ciò che si vuole, per farlo non occorre anche conoscere il linguaggio di programmazione per ottenere dal computer ciò che vogliamo ma semplicemente occorre conoscere gli strumenti preconfezionati che il computer ci mette a disposizione e saper scegliere quelli adatti.
Anche nel mondo Python esiste una cosa simile. Si tratta di una libreria, attualmente denominata Orange3, sviluppata al fine di facilitare l’utilizzo delle varie librerie Python per il data mining, che ci offre anche la possibilità di essere utilizzata visualmente con icone e mouse.
Come libreria utilizzabile per scrivere codice alternativo ad altro codice ritengo abbia scarsa utilità ed è forse per questo che non si trova un testo che ne parli, ma non mi sembra giusto ignorare la grande utilità ricollegabile alla possibilità di essere utilizzata visualmente.
Dal momento che nessuno ne parla e che la sola documentazione è quella disponibile sul sito internet, non sempre tecnicamente di agevole lettura e in lingua inglese, ho predisposto l’allegato manualetto illustrativo che non ha altra ambizione se non quella di far vedere di che cosa si tratta con qualche esempio.
Il documento è liberamente scaricabile, stampabile e distribuibile.

orange

Pascal per principianti

In uno dei primi articoli all’apertura di questo blog dedicato al software libero, nel maggio 2015, ho festeggiato il rilascio della versione 1.4 di Lazarus, un software libero per scrivere e compilare programmi scritti in linguaggio Free Pascal, anche dotati di interfaccia grafica, interpretando l’evento come una resurrezione del vecchio linguaggio Pascal nel mondo del software libero.
Da allora, sia il Free Pascal sia Lazarus hanno avuto numerosi rilasci migliorativi, gli ultimi in giugno e in luglio di quest’anno 2020, a dimostrazione del fatto che si tratta di una coppia di strumenti che hanno tuttora amatori, nonostante il linguaggio Pascal sia poco utilizzato per la produzione di software commerciale a livello professionale.
Dal momento che si tratta di un linguaggio inventato per insegnare a programmare, pertanto particolarmente adatto a neofiti, ho pensato che ai frequentatori di questo blog farà piacere disporre di un manualetto del tipo di quelli che ho proposto per altri linguaggi.
Il documento allegato è, come sempre, liberamente scaricabile, stampabile e distribuibile.

freepascal

Python per principianti

In questo blog ho parlato spesso del linguaggio Python.
Presentando vari argomenti (grafica con Python, moduli Python per data scientists, calcolo simbolico con Python, Python su Android, ecc.) ho sempre dato per scontato che il lettore conoscesse le basi del linguaggio.
Peraltro sul linguaggio Python esiste una nutrita serie di manuali e manualetti in lingua italiana, anche alla portata di dilettante, ed ho sempre ritenuto pleonastico proporre a mia volta uno di quei manualetti che ho variamente proposto su altri linguaggi di programmazione aventi documentazione meno abbondante e meno accessibile.
Oggi, tuttavia, avverto questa come una lacuna ingiustificabile nei confronti dei dilettanti che seguono il mio blog e intendo rimediare proponendo l’allegato manualetto sul linguaggio Python per principianti.
In questo modo, se altri si aggiungeranno a coloro che, numerosissimi, hanno manifestato interesse agli argomenti Python avanzati che si trovano sul blog potranno ora trovare servizio completo.
Come sempre, il documento è liberamente scaricabile, stampabile e distribuibile.

python

Nel mondo di JavaScript

Negli oltre cinque anni di vita di questo mio blog dedicato al software libero non ho mai parlato di JavaScript, nonostante si tratti di uno dei più fulgidi esempi di software libero.
Il motivo è che si tratta di un argomento non semplice da trattare con i dilettanti ai quali, da dilettante, mi rivolgo.
A fronte di una relativa facilità di apprendimento del linguaggio JavaScript in quanto tale, infatti, proprio alla portata di dilettante, sono i contesti nei quali si utilizza il linguaggio che non sono da dilettante, quanto meno da dilettante alle prime armi.
Tanto è vero che se cerchiamo di capire cos’è JavaScript navigando in rete ci imbattiamo facilmente in documentazione che, mischiando linguaggio e contesti, spesso dando per scontati concetti di contesto che il dilettante ignora, prospetta situazioni che appaiono più difficili di quanto in realtà non siano.
Per rimediare alla pecca di non aver mai parlato di JavaScript e con l’ambizione di contribuire a fare chiarezza su dove stiano le vere difficoltà, ho ritenuto di proporre l’allegato manualetto in formato PDF sull’argomento.
Come sempre, il documento è liberamente scaricabile, stampabile e distribuibile.

javascript

Un sequencer MIDI per principianti

Il mese scorso, parlando di soundfonts, ho dovuto accennare a cosa sia il MIDI, visto che i soundfonts servono per tradurre in suoni le istruzioni contenute in un file MIDI.
Può darsi che qualcuno si sia incuriosito e desideri approfondire la materia, per arrivare lui stesso a produrre un file MIDI.
Su questo blog ho presentato vari strumenti atti allo scopo, strumenti quasi sempre aventi finalità più complesse, come la scrittura di partiture musicali o l’arrangiamento musicale. In proposito rimando all’allegato al mio articolo “Software libero per fare musica” del maggio 2015, archiviato in “Software libero”.
Una sola volta ho parlato di un software che, per chi usa il sistema operativo Windows, ha funzione limitata a quella di sequencer MIDI, peraltro con un funzionamento non del tutto soddisfacente: è avvenuto nel dicembre 2015 con l’allegato all’articolo “Rosegarden come sequencer MIDI”, archiviato in “Computer music”.
In ogni caso si tratta di strumenti concepiti non con la finalità unica e diretta di produrre un file MIDI ma per fare anche altro e si presentano, pertanto, con una varietà di funzioni che possono spaventare il principiante.
Proprio ai principianti – e penso anche a ragazzi alle prime armi con lo studio della musica – suggerisco allora un piccolo software, libero e disponibile per tutti i sistemi operativi, che serve solo per produrre file MIDI e ci consente di farlo in modo estremamente semplice, grazie ad un’interfaccia grafica che guida letteralmente la mano.
Si chiama Aria Maestosa e lo presento nell’allegato manualetto in formato PDF.
Il documento è liberamente scaricabile, stampabile e distribuibile.

aria_maestosa