Dopo 27 anni dalla creazione della versione 8.0, è stata presentata la release Tcl/Tk 9.0, un linguaggio di programmazione dinamico distribuito insieme alla libreria cross-platform per l'interfaccia grafica di base Tk. Tcl ha trovato la sua principale diffusione come piattaforma per la creazione di interfacce utente e come linguaggio incorporato, ed è adatto anche per la prototipazione rapida, lo sviluppo web, la creazione di applicazioni di rete, l'amministrazione di sistemi e il testing. Il codice del progetto è distribuito con licenza BSD.
Il cambiamento significativo del numero di versione è dovuto all'introduzione di modifiche che rompono la compatibilità retroattiva. In particolare, in Tcl 9.0 la logica dell'applicazione degli spazi dei nomi alle variabili è stata modificata: invece dello spazio dei nomi globale di default, ora viene utilizzato lo spazio dei nomi locale. In caso di incompatibilità delle codifiche durante l'input/output, ora restituisce un errore. L'interpretazione del simbolo «~» nei percorsi dei file come catalogo home dell'utente è stata interrotta. Nella formattazione dei numeri, il valore di tcl_precision non viene più considerato.
Tra le nuove funzionalità:
- È stata aggiunta la supporto per variabili a 64 bit, che consente di utilizzare valori superiori a 2 GB.
- È stata garantita la piena compatibilità con Unicode e i set di caratteri, aggiunti profili di ricodifica per input/uscita.
- È stata aggiunta la possibilità di lavorare con archivi ZIP come con un file system.
- È stata aggiunta la supporto per l'allegato di archivi a librerie e file eseguibili, consentendo la creazione di pacchetti unificati che includono tutti i dati necessari per far funzionare l'applicazione.
- Il motore di elaborazione degli eventi è stato rielaborato per utilizzare le chiamate di sistema epoll e kqueue (il multiplexing attraverso la chiamata select è stato conservato come opzione per i sistemi senza supporto per epoll e kqueue).
- Nella libreria Tk è stato fornito accesso a funzionalità di sistema come notifiche, stampa e vassoio di sistema. È stata aggiunta la supporto per grafiche vettoriali in formato SVG, utilizzabili per creare widget scalabili e temi. Sono state fornite funzionalità per accedere ai metadati e al canale alfa delle immagini. È stata aggiunta la supporto per gesti su schermo a due dita.
Fonte: opennet.ru
