Il progetto LeanQt ha avviato lo sviluppo di un ramo semplificato di Qt 5, mirato a semplificare la compilazione da sorgente e l'integrazione con le applicazioni. LeanQt è sviluppato da Rochus Keller, l'autore del compilatore e dell'ambiente di sviluppo per il linguaggio Oberon, legato a Qt 5, con l'obiettivo di semplificare la compilazione del proprio prodotto con il minor numero di dipendenze, mantenendo però il supporto per le piattaforme attuali. Il codice continua a svilupparsi sotto le licenze GPLv3, LGPLv2.1 e LGPLv3.
Negli ultimi anni si è notata una tendenza all'ingrandimento di Qt, alla sua eccessiva complessità e all'arricchimento di funzionalità discutibili, mentre l'installazione di compilazioni binarie richiede la registrazione sul sito di un'azienda commerciale e il download di oltre un gigabyte di dati. In LeanQt è stato fatto un tentativo di creare una versione leggera di Qt 5.6.3, ripulita da tutto il superfluo e ristrutturata. Per la compilazione viene utilizzato un sistema di build proprietario chiamato BUSY. Sono state proposte opzioni aggiuntive che consentono di includere ed escludere vari componenti chiave durante la compilazione.
Supporto dichiarato per le seguenti funzionalità di Qt:
- Array di byte, stringhe, unicode.
- Localizzazione.
- Collezioni, condivisione implicita dei dati (Implicit Sharing).
- Gestione di date, orari e fusi orari.
- Tipo variant e metatipi.
- Codifiche: utf, simple, latin.
- Astrarre i dispositivi di input/output.
- Motore file.
- Flussi di testo e flussi di dati.
- Espressioni regolari.
- Registrazione delle attività.
- Hash md5 e sha1.
- Primitive geometriche, json e xml.
- rcc (compilatore di risorse).
- Multithreading.
- Possibilità di compilare per Linux, Windows e macOS.
Tra i prossimi obiettivi: supporto per plugin, oggetti base, metatipi ed eventi, moduli QtNetwork e QtXml.
Piani a lungo termine: moduli QtGui e QtWidgets, stampa, parallelizzazione delle operazioni, supporto per porta seriale.
Non saranno supportati: qmake, framework State Machine, codifiche avanzate, animazione, multimedialità, D-Bus, SQL, SVG, NFC, Bluetooth, motore web, testlib, scripting e QML. Le piattaforme non supportate includono iOS, WinRT, Wince, Android, Blackberry, nacl, vxWorks e Haiku.
Fonte: opennet.ru
