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

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

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

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.

freebasic

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.

tcl_tk

La blockchain secondo Python

Con il mio articolo del marzo 2018 “Software libero per la blockchain” sottolineavo come il primo software per la tecnologia blockchain, quello utilizzato per la realizzazione del Bitcoin, fosse software libero.
Con il successivo articolo del dicembre 2018 “Sempre software libero per perfezionare la blockchain” rilevavo come anche il software per i perfezionamenti che hanno portato all’evoluzione Blockchain 2.0 sia stato sviluppato all’insegna dell’open source, costituendo anzi l’occasione per affermare l’opportunità che software di tipo infrastrutturale come questo siano sviluppati in maniera collaborativa: da qui il progetto Hyperledger Fabric promosso da IBM all’interno della Linux Foundation.
Un lettore di questi articoli, lo scorso luglio, apprezzando le informazioni, mi invitò a parlare anche di cosa si potesse fare con Python per la blockchain.
Dopo qualche ricerca e sperimentazione sono in grado di segnalare qualche cosa di concreto che è maturato nel mondo Python, sicuramente utile per capire cosa sia la blockchain nell’intimità e per creare una vera e propria blockchain.
Nell’allegato manualetto in formato PDF, dopo una piccola introduzione esplicativa terra a terra utile per capire di cosa stiamo parlando, segnalo alcune possibilità di approfondimento per chi vi fosse interessato.
Come sempre si tratta di documentazione liberamente riproducibile e distribuibile.

blockchain_python

Newlisp

Nel mio articolo “Lisp sempreverde” del maggio 2015 ho parlato di come il vecchio linguaggio di programmazione LISP, concepito nel lontano 1958, avesse ritrovato una delle sue tante vite grazie ai recenti sviluppi di una nuova versione, chiamata NewLISP, ultima arrivata di altre, come il Common LISP, l’Emacs LISP, l’AutoLISP, ecc.: alcuni chiamano queste versioni “dialetti”, ma trovo questo termine troppo dispregiativo, soprattutto se riferito a NewLISP.

In quell’articolo ho illustrato brevemente alcune caratteristiche del NewLISP riferendomi alla versione di allora, la 10.6.2, già particolarmente ricca di utilissime funzioni preconfezionate. Nei quattro anni che sono trascorsi si sono susseguiti parecchi perfezionamenti, soprattutto dedicati all’arricchimento delle funzioni preconfezionate, e siamo arrivati alla versione 10.7.5, rilasciata il 12 maggio 2019.

Dal momento che qualche frequentatore di questo blog ha osservato che il contenuto del mio articolo aveva il difetto di poter essere compreso solo da coloro che già conoscevano il LISP, ho ritenuto di rimediare proponendo l’allegato manualetto nel quale, rivolgendomi al mio solito pubblico di dilettanti evoluti, descrivo le basi del linguaggio in modo che il lettore possa cominciare a sviluppare qualche programmino e rendersi conto di quanto possa essere affascinante programmare con NewLISP.

Come sempre, il documento è liberamente scaricabile, stampabile e distribuibile.

newlisp