Nell’allegato in formato PDF “tts_stt” al mio articolo “Software libero per sintesi e riconoscimento vocale” ho presentato alcune soluzioni di software libero per ottenere che il nostro computer reciti un testo scritto oppure scriva un testo sotto dettatura.
In quella sede ho anche accennato all’esistenza di un modulo Python per la sintesi vocale.
Ma l’attrezzatura Python per fare queste cose va ben oltre questo accenno e, in questo periodo in cui sto presentando tutta la ricchezza del linguaggio Python, non posso evitare di completare il quadro.
Lo faccio nell’allegato PDF a questo articolo, liberamente scaricabile, stampabile e distribuibile.
Categoria: programmazione
Python e il calcolo scientifico
Nell’ottobre 2020, dopo aver parlato molto di Python in questo blog, ho ritenuto utile produrre un manualetto, allegato all’articolo “Python per principianti”, in cui sono descritte le basi del linguaggio ad uso di dilettanti che vogliano divertirsi a scrivere codice per propri usi personali.
Dando per scontata la conoscenza di queste basi avevo precedentemente, nel maggio 2018, in un allegato all’articolo “Grafica con Python”, illustrato il modulo Tkinter attraverso il quale possiamo vestire i nostri programmi Python con una interfaccia grafica.
Sempre dando per scontata la conoscenza di queste basi avevo precedentemente, nel settembre 2019, in un allegato all’articolo “Software libero per il calcolo simbolico”, descritto il modulo Sympy attraverso il quale possiamo utilizzare il linguaggio Python per il calcolo simbolico.
Per calcoli numerici molto impegnativi, tipo quelli ricollegabili alla Data Science ed all’analisi dei big data, per eseguire i quali la scrittura del codice va ben oltre le basi del linguaggio, nell’articolo “Orange: data science con Python senza scrivere codice” del dicembre 2020, ho illustrato uno strumento basato su Python che ci dà modo di sviluppare queste analisi senza conoscere il linguaggio.
Ora, a parte la grafica e il calcolo simbolico, mi accorgo che tra le basi del linguaggio e la data science c’è una zona, identificabile genericamente come calcolo scientifico, nella quale il dilettante può trovare modo di divertirsi utilizzando alcuni moduli aggiuntivi: Numpy, Scipy e Matplotlib.
Ad un utilizzo di base di questi moduli Python dedico l’allegato manualetto in formato PDF, liberamente scaricabile, stampabile e distribuibile.
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.
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.
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.
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.
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.
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.
Intramontabile BASIC
I vecchi come me ricordano certamente i tempi in cui per divertirsi con i primi piccoli computer ad uso personale che cominciarono a comparire a metà degli anni settanta del secolo scorso c’era a disposizione un linguaggio di programmazione molto più facile da imparare e da utilizzare rispetto a quelli con cui si lavorava sui grossi mainframe: il BASIC.
Per la verità anche il BASIC (Beginner’s All-purpose Symbolic Instruction Code) era nato presso l’Università di Dartmouth per agevolare l’accesso a un grosso calcolatore da parte dei ricercatori universitari di quell’ateneo, ma, grazie alla sua relativa semplicità di apprendimento e di uso, trovò diffusione planetaria con l’avvento dei piccoli calcolatori alla portata di tutti.
Ciò con il contributo determinante di due giovanotti che adattarono il BASIC di Dartmouth ai piccoli calcolatori, creando una versione del BASIC, l’Altair BASIC, per il primo computer personale comparso nel 1975, il MITS Altair 8800: i due giovanotti si chiamavano Bill Gates e Paul Allen, i quali, proprio sull’onda di questo primo successo, fondarono la Microsoft, che, di fatto, acquisì la proprietà intellettuale del linguaggio BASIC.
Da allora il BASIC ha avuto parecchie rivisitazioni, sempre ad opera o sotto licenza Microsoft.
Una prima rivisitazione libera avvenne nel 1999, quando nacque GAMBAS che portò nel mondo Linux qualche cosa di molto simile al VISUAL BASIC di Microsoft.
Una rivisitazione libera più radicale è quella del 2004, ad opera di Andre Victor, cui si deve la creazione di FreeBASIC.
Altrettanto libera la rivisitazione ad opera di Paul Laughton che ha sviluppato la versione di BASIC per Android di cui ho parlato nel mio articolo “Basic su Android” del novembre 2015 su questo blog.
FreeBASIC continua ad essere perfezionato e si susseguono rilasci a cadenza periodica: l’ultimo è del settembre 2019.
Possiamo dire che FreeBASIC è il BASIC del futuro.
E’ sempre un linguaggio abbastanza semplice da apprendere, anche se, rispetto ai tempi in cui è nato, non è più il solo linguaggio semplice da apprendere ed ha buoni concorrenti su questo piano: anzi, forse ve ne sono ormai di ancora più semplici.
Ereditando la tradizione del vecchio BASIC, concepito con arricchimenti di programmazione grafica adatti per creare i primi video-giochi, pur rudimentali rispetto a ciò che si fa ora, FreeBASIC ingloba una libreria grafica di tutto interesse.
Per chi voglia approfondire allego una introduzione al linguaggio che mette in grado chiunque, anche i principianti, di creare qualche programma.
Il documento è liberamente scaricabile, stampabile e distribuibile.
Tcl/tk: un tesoro nascosto
Chi lavora su un personal computer con sistema operativo Linux o su un Mac con sistema operativo OS X molto probabilmente non sa di avere a disposizione l’interprete per uno, si dice, dei più facili linguaggi di programmazione esistenti, addirittura con la possibilità di creare applicazioni dotate di interfaccia grafica.
Per rendersene conto basta aprire il terminale, digitare il comando tclsh e premere Invio: immediatamente compare un prompt contrassegnato dal simbolo %, pronto a ricevere ed eseguire comandi scritti nel linguaggio Tcl.
Se usciamo da questo prompt premendo insieme i tasti Ctrl e D e poi digitiamo il comando wish e premiamo Invio ricompare il prompt contrassegnato dal simbolo % e a lato del terminale compare anche una finestrella vuota: ora il linguaggio Tcl è arricchito dal tool Tk, che serve per creare interfacce utente grafiche.
Chi lavora su Windows può pure godere di queste meraviglie del software libero ma deve procurarsi quanto serve e caricarselo sul computer.
A chi sia interessato ad apprendere le basi di questo linguaggio di programmazione per vedere come funziona e magari per servirsene, data la carenza di documentazione in lingua italiana alla portata di principianti dilettanti, propongo il manualetto allegato in formato PDF.
Come sempre si tratta di materiale liberamente scaricabile, stampabile e distribuibile senza alcun problema.