[Soci SLIP] qt, quel che funziona, quello che non funziona, e perche'

loredana llcfree a gmail.com
Dom 10 Nov 2013 14:10:14 CET


Per Giorgio in particolare, ma ovviamente per tutti.

Ieri all'incontro di arduino abbiamo visto velocemente come funziona la
generazione di un widget in Qt, provando ad aggiungere un "quit".

Qui sotto trovate un buon tutorial sui concetti di base che possono poi
servire sempre, anche quando si voglia usare un generatore grafico
anziche' scrivere direttamente il codice. Servono sempre perche'
spiegano e percio' poi si puo' capire quel che si fa, indipendentemente
dal farlo con un editor di testo o un generatore grafico che
automaticamente produce le macro per il widget:

http://doc.qt.digia.com/4.7/gettingstartedqt.html

Disclaimer: non l'ho provato, ma e' ben fatto e non vedo ragione per cui
non debba funzionare. Fra l'altro, ha giusto l'esempio del "quit". :
come aggiungere un bottone per uscire da un'applicazione, e spiega quali
sono le istruzioni relative.

Intanto, io che non sapevo niente di qt, ho imparato che:

E' scritto in c++, quindi ovviamente si puo' compilare e generare un
eseguibile.

Ha interfacce per vari linguaggi (tra cui python, ma non solo).

Sembra che la versione qt5 sara' incompatibile con la versione qt4 ma
manterra' un core di funzioni di base che varranno anche per la qt4.
Tutto il resto, quello che lo rendera' davvero appetibile, non sara'
compatibile. Percio' se uno vuole cominciare a sviluppare ora, dovrebbe
tenerne conto. Se lo fa in qt4, allora bisogna che usi solo quello che
restera' anche in qt5, se vuole continuare ad usare lo stesso codice
senza modificarlo. Altrimenti, con un aggiornamento di sistema a qt5
rischia che quello che prima funzionava non funzioni piu'.

Dico "sembra" perche' non ho visto che cosa significhi in dettaglio. Ma
e' facile da immaginare, vale per molti altri linguaggi. Basta
aggiungere delle classi proprietarie (che poi sono delle librerie
proprietarie, ma si chiamano classi nella programmazione ad oggetti) e
se si sviluppano applicazioni che fanno uso di quelle classi, allora
"non funzioneranno" senza. Ovvio, no? Poi si aggiornano le librerie,
classi etc (di continuo, perche' altrimenti ci si sente lasciati
indietro) e succede il patatrack, quello che funzionava non funziona
piu'. Colpa di? Beh, a me e' ovvio, ma ai piu' gli si dice che la colpa
sta da tutt'altra parte.

Questa e' la ragione essenziale per cui le applicazioni "non funzionano"
e quelle in java, per esempio, richiedono una specifica versione,
contribuendo al casino dei formati, dei codecs, dei driver proprietari,
delle librerie proprietarie e delle classi proprietarie. Ma non e' colpa
di Java. Come faccio a saperlo? Perche' ho scritto un'applicazione nel
1982 per dos che gira ancora adesso e percio' posso spiegarvi come si
fa. Ah, era in fortran 77, ma compilava anche in fortran 4 (il
precedente). Ora vedrete la stessa cosa tra qt4 e qt5. Se scoprite che
cosa si mantiene di qt4 in qt5 e usate solo quello, allora la vostra
applicazione continuera' a funzionare. Ma non e' necessario saper
programmare per capire, o credere a uno o all'altro, se ci pensate e
state ad osservare, vi rendete conto se quello che qualcuno dice e' vero
o no. In genere, e' "quasi" vero, se non altro perche' si dimostra che
non esiste la verita' assoluta (con buona pace di chi crede di averla),
non esiste la sicurezza assoluta e cosi' via (per "si dimostra" intendo
proprio dire che si dimostra matematicamente).

Fra l'altro, questo vale anche per LaTeX, per tutto. Se vi manca un
pezzo, o se quel pezzo c'e' ma cambia con un aggiornamento, quello che
lo usava va rivisto perche' non funziona piu'. A meno che ... uno non
sappia davvero scrivere codice per sempre e non solo per un giorno. E
anche quello non basta. Bisogna esplicitamente dire quali sono i
requisiti (tutti) che permettono di far funzionare qualcosa. Allora
funziona. Risolto un problema, si puo' passare al prossimo, visto che
quello non solo e' risolto, ma lo e' per un bel po'. 

La vicenda delle licenze di qt e' un buon esempio di cosa succeda in
generale. Si ripete molto velocemente e percio' e' semplice riconoscere
quando riaccade qualcosa di analogo. Spiega anche la posizione di molti
che si scannano per kde (basato su qt) invece di gnome (basato su gtk),
nonche' perche' ubuntu scelga qt. Dietro ci sono ragioni piu' profonde
di quanto sia bello un desktop o di quanto sia facile o difficile far
qualcosa. E anche queste ragioni finiscono per essere riconoscibili,
visto che poi sono sempre quelle. Chi non sa, beve una o l'altra, tanto
e' solo una moda, Chi sa, fa la guerra per la sua, di scelta, portandosi
dietro il suo piccolo o grande esercito. In genere, la scelta e' tra
libero per tanti e libero per me. L'evoluzione va con libero per tanti,
tutti riprovano sempre ad usare il "libero per me".

Buon divertimento. Io ora vado a vedermi il compagno di qt, gtk, quello
di gnome, per intenderci, visto che sono in tema di "widget" grafici
(che sono sempre esistiti, una volta si chiamavano "maschere" e,
pensate, orrore, si facevano in cobol, quello della vostra banca
probabilmente e' ancora quello fatto in cobol, i signori del denaro mica
lo buttano via facilmente).

Loredana




 





Maggiori informazioni sulla lista Soci