Lo sviluppo di Lua procede lento ma costante. Ieri è stata infatti rilasciata la Beta di Lua 5.2. La nuova versione del linguaggio introduce, come è solito, grandi cambiamenti e una manciata di incompatibilità con le precedenti versioni. Vediamone alcune (la lista completa la trovate qui)
Intanto che rifinisco l’ltimo articolo di Lua o mi viene in mente qualcosa di intelligente da dire, vi presento i venti linguaggi più quotati nel mese di giugno 2011 così come rilevati da TIOBE.
1 – Java
Conoscete già tutti Java, uno dei linguaggi più fastidiosi della storia (almeno secondo i miei canoni xD) che però detiene la prima posizione per due motivi: l’uso aziendale intensivo e il fatto di essere il linguaggio di programmazione nativo per Android.
2/3 – C/C++
Aggrego queste due posizioni in una a causa della strettissima correlazione fra i due linguaggi. Il fatto che siano nelle parti alte della classifica non sorprende.
4 – C#
Il clone (migliorato) di Java targato Microsoft è competitivo. Non avevo dubbi, molte aziende utilizzano il framework .net per le loro applicazioni.
5 – PHP
PHP è il linguaggio di scripting più usato del Web. Dopo anni ancora nessun linguaggio riesce a competere in modo significativo con questo mostro sacro dei linguaggi (anche se, la sintassi del PHP sembra fatta apposta per rendere il codice illeggibile).
6 – (Visual) Basic
Qui c’è la prima sorpresa. Il Visual Basic, per chi bazzica la rete, è praticamente un linguaggio morto e solo un pazzo consiglierebbe a qualcuno di mettersi a studiare il Basic. Tuttavia è bene ricordare che VB era usato massicciamente per uso aziendale circa dieci anni fa e che il mondo aziendale è dannatamente lento. Ed è anche comprensibile: quale azienda spenderebbe tempo e denaro per riconvertire migliaia di linee di codice che in VB funzionano perfettamente ai loro scopi?
7 – Objective-C
Questo stupendo spin-off del C/C++ è il linguaggio di programmazione usato per iPhone e iPad, motivo per cui mi verrebbe la voglia di comprarmi un suddetto dispositivo e programmarci su. L’Objective-C è un estensione ad oggetti del C, come il C++, ma da un punto di vista sintattico rispetto a quest’ultimo sembra più organico e versatile. L’uso nei dispositivi di casa Apple è sicuramente la causa principale del suo successo.
8 – Python
Onestamente il Python me lo immaginavo più alto. Il linguaggio di scripting più famoso e chiacchierato del decennio si ferma a 8 perdendo una posizione rispetto ad un anno fa.
9 – Perl
Perl è un linguaggio che ha perso un po’ di fama e notorietà negli ultimi anni spodestato da linguaggi più complessi e completi come Python. Tuttavia, a livello di script di sistema, ci sono ancora tonnellate di script che utilizzano Perl. Dopotutto la sua integrazione nativa con le espressioni regolari lo rendono adattissimo allo scopo.
10 – Lua
Scalando ben 10 posizioni in un anno Lua arriva dalla ventesima alla decima posizione! Se non conoscete l’esistenza di Lua dopo gli articoli che ho fatto vi picchio!
Questa è la novità più rilevante del rapporto tant’è che TIOBE gli dedica un approfondimento. Il motivo? Semplice, un anno fa Apple ha deciso di permettere l’esecuzione di Lua su iOS.
11 – JavaScript
Incremento per JavaScript. Il motivo a mio parere può essere solo uno: HTML5. Con i nuovi browser e le meraviglie che si possono fare con HTML5 e JavaScript quest’ultimo ha beneficiato di un notevole interesse da parte della comunità. Ricordo ancora quando il JavaScript veniva dato per morto a causa di Flash e altre tecnologie emergenti ora superate.
12 – Ruby
Ruby è un linguaggio di scripting strano: o lo si ama, o lo si ignora. Questo perché non offre molto più di un Python qualunque ma allo stesso tempo ha una sintassi molto piacevole. Un motivo per cui si mantiene attorno alla dodicesima posizione è la presenza del framework web RubyOnRails.
13 – Delphi/OjectPascal
Lo usavo a undici anni. Poi, ovviamente, è quasi scomparso dalla programmazione mainstream. Comunque, nonostante abbia perso ben 4 posizioni ancora rimane nella top 20. Il motivo per la sua permanenza è comunque storico e legato all’uso aziendale.
14 – Lisp
Questo meraviglioso linguaggio funzionale di “nicchia” è in posizione 14. Ho fatto qualche guida al suo dialetto Scheme che potete trovare nell’archivio di Slashcode.
15 – Pascal
È stupendo notare che un dinosauro dell’informatica come il Pascal sia ancora nella top 20. Il Pascal ha smesso di essere usato come linguaggio didattico già da anni eppure, a quanto pare, l’impatto che ha avuto negli anni 90 è stato talmente elevato che può vivere ancora di rendita.
16 – Assembly
Con Assembly TIOBE aggrega tutti i vari linguaggi macchina. L’uso di tali linguaggi è fondamentale per la programmazione di OS, Driver e altri moduli di bassissimo livello.
17 – Transact-SQL
Transact balza di 4 posizioni ed entra nella top-20. Questo linguaggio è un estensione proprietaria targata Microsoft del classico linguaggio SQL. Tuttavia, a differenza di SQL è Turing completo e quindi può essere considerato linguaggio di programmazione.
18 – RPG (OS/400)
Sale di ben 7 posizioni RPG. RPG è un linguaggio ad alto livello della IBM dalla sintassi scoppiacervello (tenete conto che è un evoluzione di un linguaggio pensato per schede perforate). Onestamente potete ignorarlo e vivrete comunque felici.
19 – Ada
Noto con piacere che un linguaggio dal nome così evocativo sia tornato nella top-20. Ada infatti prende il nome da Ada Lovelace la prima programmatrice del genere umano (ebbene si, era una donna). Ada si ispira molto alla sintassi del Pascal.
20 – Scheme
Dialetto del Lisp. Per cui valgono le stesse considerazioni del suo papà.
Ogni qual volta un nota azienda sforna un prodotto che fa della non-libertà il suo cavallo di battaglia e una valanga di persone accorre ad acquistare e ad osannare il sommo leader, mi chiedo che fine faranno le libertà digitali. Non voglio parlare del prodotto in se; non l’ho usato e non voglio scadere nel solito post criticone e di parte. Voglio affrontare un problema più vasto.
Per prima cosa dobbiamo dare a Cesare quel che è di Cesare. Che tali prodotti siano affascinanti e funzionanti è senza ombra di dubbio soprattutto se paragonati a quel trattore a pedali che è Windows. Oltretutto basta cercare fra i temi più scaricati in Gnome-Look per rendersi conto a quale sistema si ispirano i temi nelle prime posizioni. Anche le ultime scelte di sviluppo e restyling grafico di Ubuntu proposte dal “vendicatore solitario” Mark Shuttleworth puntano sempre più vistosamente in quella direzione.
C’è quindi un forte desiderio di imitazione, desiderio che a volte mi fa pensare se non sia che molte persone usino GNU/Linux solamente perché non possono permettersi gli attrezzi ultra-costosi della mela.
In questo spazio dove trovano spazio le libertà digitali? Perché ci deve essere qualcuno al di sopra degli utenti che deve decidere che cosa posso o non posso fare con un oggetto che ho comprato? Ci vengono a dire che lo fanno per questioni di sicurezza. Una giustificazione terribilmente insensata: sarebbe come un frigorifero che si rifiutasse di tenere al fresco alimenti poco salutari o come vietare la vendita di fertilizzanti per evitare che qualche malintenzionato li usi per fabbricare degli esplosivi. Tale “censura” inoltre viene applicata in triplice via: tramite incomprensibili limitazioni hardware (vedi la mancanza di una porta USB nell’ultima tavolozza), tramite SDK inutilmente mutilate e, dulcis in fundo, tramite dissennate e severe censure nello store.
La prima è piuttosto evidente. Conosciamo tutti le carenze che vengono riscontrate ad ogni rilascio di qualche attrezzo del genere. Carenza sempre sminuite dal “non c’è… tanto non la uso”. Frase pronunciata in continuazione prima di rimangiarsi tutto quando nella versione successiva tale funzione viene magicamente integrata. A quel punto serve, è utile e bella.
La seconda invece è molto subdola e costringe gli sviluppatori a fare i salti mortali per simulare una funzione che, per qualche strano motivo, è vietata dalle SDK. Tanto per dirne una: il tethering esplicitamente vietato del primo telefono “melenso” (non so se sia ancora così).
La terza invece è del tutto aberrante. Il solo pensiero che sia un gruppo di persone non meglio identificato a decidere quale software è possibile installare e quale no è qualcosa che non concepisco. Prendiamo ad esempio il caso dell’applicazione podcaster, piccola applicazione per gestire i podcast, di cui è stata vietata la vendita perché iTunes svolge le medesime funzioni. Oltre il madornale conflitto di interessi appare chiaro che è una palese violazione di una libertà digitale. Perché non posso usare quel programma se a me iTunes fa schifo? Non si sa. Vuolsi così colà dove si puote / ciò che si vuole, e più non dimandare. Punto.
Censure tanto abominevoli quanto le risposte estremamente demagogiche del tipo:
Siamo stati sommersi dalle lamentele soprattutto di clienti donne che trovavano il contenuto di molte applicazioni degradante e discutibile, ma anche di genitori preoccupati di quello che potevano vedere i loro figli.
Apple tiene in piena considerazione gli sviluppatori, ma prima di loro vengono le famiglie e i bambini.
Come se non fossero sufficienti i meccanismi di parental control (e senza contare che se ad un bambino in età prepuberale regali un telefono da 500€ meriti la galera).
Per capire meglio l’infondatezza di alcune motivazioni tenete presente che anche i repository delle più famose distribuzioni GNU/Linux compiono severissime selezioni prima di inserire un software all’interno del proprio sistema di distribuzione. Chiunque abbia mai provato ad inserire una propria applicazione all’interno dei repo ufficiali di Debian sa quanta severità e quanta inutile burocrazia bisogna seguire. Ma tutto questo iter è necessario per garantire la presenza di software affidabili: non viene in alcun modo impedito l’accesso di un programma per ragioni “etiche” o per motivazioni concorrenziali.
Mi chiedo quindi come sia possibile non rendersi conto che il prezzo da pagare va ben oltre il già caro prezzo da pagare al negoziante di fiducia? Il potere più forte che abbiamo non è il voto: è il boicottaggio ed io, nel mio piccolo, lo faccio a 360 gradi.
Quando ho deciso di passare a GNU/Linux l’ho fatto anche per questo. Per riacquistare la mia libertà, per liberarmi di DRM e altre volgarità digitali, abbracciare l’idea che l’uomo debba lavorare per l’uomo e, soprattutto, per non dare più un centesimo ad aziende che, giustamente, curano solamente i loro interessi. Perché è ovvio che delle aziende del genere non fanno dei prodotti per “il bene dell’umanità”.
A questo punto torniamo alla domanda principale: che fine fanno le libertà digitali? Secondo me vivono e continueranno a vivere finché ci sarà qualcuno a crederci. Vivranno finché ci saranno persone che non si arrenderanno a quella che sembra “l’evidenza dei fatti”. Nonostante il circo dei media si occupi sempre del nuovo giocattolo luminescente di turno.
“Fa più rumore un albero che cade che una foresta che cresce” diceva qualcuno. Io, nel mio piccolo, penso proprio di far parte della foresta.
Quando si lavora con complesse strutture dati, specie quando queste strutture sono generate a partire da dati offuscati, è estremamente importante utilizzare uno strumento in grado di rappresentare visivamente tali grafi. Io stesso ho perso alcune settimane dietro i problemi matematici che si nascondono dietro la visualizzazione dei grafi. Un esempio fra i tanti riguarda il problema di disporre i nodi in modo tale da minimizzare gli accavallamenti degli archi.
Non avevo però la pretesa di riscrivere da capo una libreria che disegnasse grafi e alberi in quanto ero sicuro che esistesse già qualcosa di pronto nel marasma del codice libero.
La risposta è iGraph. Fra tutte le librerie che ho visto e provato questa è sicuramente la più interessante. Il punto di forza di questa libreria consiste nel numero di piattaforme e linguaggi che supporta: C/C++, Python e anche Ruby più altre piattaforme di statistica. Inoltre, dando un occhiata alle API e alla documentazione, sembra molto semplice, intuitiva e ben tenuto.
Allora lo installo sfruttando i repository di Launchpad (ho utilizzato karmic anche se uso Sidux e pare che tutto funzioni bene). Scrivo un codicillo di prova e ho la brutta sorpresa:
Accidenti! La funzione principe del programma non è ancora stata implementata!? Non vi nascondo che ci sono rimasto malissimo. Anche perché era una libreria di cui avevo bisogno per visualizzare alcuni grafi di stato di piccoli progetti di prova di IA.
Pazienza. Guarderò il codice e cercherò di contattare gli sviluppatori per sapere come procede l’implementazione di questa funzionalità. Magari posso dare anche una mano. Alla fine è questo il bello del software libero.
UPDATE:
HO RISOLTO IL PROBLEMA! Ora funziona bene anche la visualizzazione. Vi aggiornerò a breve!
Per prima cosa vorrei segnalare che Sidux non è una distribuzione adatta i neofiti. Essa è infatti un riadattamento di Debian Sid (ovvero al versione Unstable) per renderla meno unstable. Tuttavia condivide la totalità dei pacchetti con Sid e per essere aggiornata necessita di alcuni accorgimenti che le altre distro non richiedono.
Sono approdato a Sidux per un motivo fondamentale: amo la leggerezza e la “spartanità” di Debian, nonché la praticità delle Rolling Distro ma allo stesso tempo non volevo una distribuzione completamente allo sbando.
Per prima cosa ho masterizzato la il live-cd. Ci sono 3 versioni di Sidux:
- La versione KDE Full – Versione DVD che contiene tutto KDE in tutte le lingue possibili per tutte le piattaforme.
- La versione KDE Standard – Versione CD che contiene solo la versione minimale di KDE. Solo in inglese e tedesco.
- La versione XFCE - Versione CD che contiene Sidux con il DE XFCE.
Manca Gnome, cosa che da KDE-User non mi interessa ma che a molti potrebbe interessare. E’ comunque possibile installarlo successivamente tramite apt-get.
Avviata la Live l’impressione è molto buona. Grafica curata e schema di colori accattivante (nero-rosso). Così dopo un rapido controllo delle periferiche (riconosciute tutte al primo colpo) sono passato all’installazione.
Prima punto dolente. Sebbene sia completamente per via grafica ritengo che il partizionamento dell’hard disk è veramente poco intuitivo. Addirittura meno intuitivo dell’istallazione da terminale di Debian classica. Quindi consiglio di fare molta attenzione a questo passaggio e di leggere qualche guida.
L’installazione, d’altrocanto, è molto veloce (5 minuti escludendo il partizionamento). Questo perché viene installato proprio il minimo necessario.
Al riavvio tutto funziona correttamente. Sebbene la versione 2009-02 non sia uscita da molto il primo apt-get dist-upgrade è già parecchio pesante (ovvio, data la natura unstable). Va fatto subito tenendo presente che il team Sidux sconsiglia di eseguire un dist-upgrade con il Server X attivato! (e lo sconsiglio anche io ;D). Inoltre prima di aggiornare è sempre bene consultare il sito per vedere se ci sono problemi noti durante l’aggiornamento.
Una volta aggiornato. Devo solo localizzare il tutto in italiano (con il pacchetto kde-l10n-it) e aggiungere con apt-get tutta una serie di programmi che utilizzo di solito.
Tutto funziona a meraviglia. La distribuzione per il momento mi soddisfa molto. Spero di avervi incuriosito. Continuerò a tenervi aggiornati.


Recent Comments