- Tcl/Tk 9.0 adalah rilis mayor terbaru Tcl dan Tk, menghadirkan fitur-fitur baru serta beberapa ketidakcocokan dibandingkan Tcl/Tk 8
- Penandaan rilis terbaru adalah Tcl/Tk 9.0.4 dengan tanggal 26 Juni 2026
- Tcl menyediakan kapasitas 64-bit untuk menangani nilai data yang melebihi 2GB, string dapat memiliki panjang sewenang-wenang dalam batas memori yang tersedia, dan list serta dictionary dapat memiliki sangat banyak elemen
- Pemrosesan teks mendukung seluruh rentang code point Unicode, encoding baru seperti keluarga
utf-16,utf-32,ucs-2, danCESU-8,encodingprofiles untuk mengontrol encoding I/O, serta default-encoding utf-8untuksource - Tcl dapat me-mount file zip sebagai filesystem melalui
zipfs, serta mendukung distribusi aplikasi bergaya starkit dengan arsip filesystem yang ditempelkan ke executable atau library - Mesin pemrosesan event Unix dikonfigurasi berbasis epoll atau kqueue bila tersedia, dan implementasi berbasis
selecttetap ada untuk platform tanpa system call tersebut - Ketidakcocokan utama di Tcl 9.0 mencakup nama variabel tak berkualifikasi yang kini diresolusikan di namespace saat ini, bukan global; respons default terhadap I/O malencoding berubah menjadi error (
-profile strict);~pada path tidak lagi diinterpretasikan sebagai home directory; dan$::tcl_precisiontidak lagi digunakan untuk mengontrol pembuatan string dari double - Dalam perubahan build dan platform, opsi build
--disable-threadsdihapus sehingga thread selalu diaktifkan, dan Windows memerlukan Windows 7 atau Windows Server 2008 R2 atau yang lebih baru - Untuk ekstensi C Tcl, binary yang dibangun untuk Tcl 8.6 atau lebih lama tidak berjalan di Tcl 9.0; kompatibilitas ABI Tcl 9.0 memang bukan target, tetapi dalam banyak kasus cukup rebuild untuk Tcl 9.0 selama tidak menggunakan fungsi API yang telah dihapus
- Antarmuka publik C diperbarui dengan banyak argumen diperluas dari
intkeTcl_Size, penghentian dukungan untukTcl_ChannelTypeVersiondi bawah 5, pengenalan versioning pada structTcl_ObjType, serta penghapusan makroCONST*dan berbagai fungsi API - Tk 9.0.0 tidak mendukung Tcl 8.6, dan penggunaan Tk 9.0.0 memerlukan Tcl 9.0.0 terlebih dahulu
- Tk menyediakan
tk sysnotify,tk print, dantk systrayuntuk akses ke fitur notifikasi, output, dan tray OS - Image Tk mendukung SVG secara parsial, pembacaan/penulisan
metadatapada photo image, serta akses ke alpha channel - Widget dan tema bawaan Tk kini sadar scaling, dukungan gesture dua jari ditingkatkan di lingkungan yang mendukung, dan “aqua” pada
tk windowingsystemmemerlukan macOS 10.10 atau yang lebih baru - Materi migrasi Tcl 9 tersedia melalui Migrating C extensions to Tcl 9 dan Migrating scripts to Tcl 9
1 komentar
Pendapat di Hacker News
Ini adalah rilis mayor pertama dalam 27 tahun. Karena struktur internalnya 64-bit, data bisa menjadi sangat besar, dan ada banyak fitur baru seperti dukungan Unicode penuh termasuk emoji terbaru, sistem berkas Zip, dan lainnya.
Sebagian sisa lama juga dihapus, jadi beberapa program mungkin perlu diperbarui, tetapi kompatibilitasnya masih tergolong tinggi. Halaman di atas menautkan ke catatan rilis yang merinci fitur yang disertakan/dikecualikan.
~, notasi pintas praktis untuk menuju direktori Home, dihapus.Para puris bahasa dan puris OOP ala 1990-an benar-benar tidak menyukai Tcl, tetapi ekosistemnya punya filosofi desain yang khas.
Semuanya berupa string atau perintah, dan ekstensi OOP terasa agak seperti tambahan tempelan, tetapi jika Anda mencoba membuat GUI dengan Tcl/Tk murni alih-alih memakai Tcl lewat Python seperti tkinter, memakai antarmuka SQLite, menulis ekstensi C kecil, atau membungkus library, banyak hal ternyata berjalan begitu saja dengan baik.
Saya menemukannya lewat tautan di dokumentasi https://folk.computer, dan proyek ini juga memakai Tcl sebagai bahasa scripting. Untuk penggunaan seperti itu, mungkin tidak ada alasan khusus untuk membenci Tcl.
[1] http://antirez.com/articoli/tclmisunderstood.html
Salah satu pelajarannya adalah bahwa saya tidak ingin lagi memakai bahasa dinamis tanpa compiler JIT untuk server web penuh. Bahasanya sendiri bagus, tetapi karena masalah performa, harus rutin menulis ulang library Tcl ke C itu tidak menyenangkan.
Sebelum menulis komentar Anda harus mengakhiri perintah dengan
;, tanda kurung kurawal tidak boleh tidak berpasangan sehingga Anda tidak boleh mencoba mengomentari kode yang salah, dan Anda juga tidak bisa memasukkan backslash di dalam komentar. Meski begitu, ini dijelaskan sebagai fitur, karena saat menjalankanwishdigunakan pola seperti di bawah ini.#!/bin/sh# the next line restarts using wish \exec wish8.0 "$0" "$@"Backslash diabaikan oleh shell, tetapi diparsing oleh
wish.https://github.com/TPC-Council/HammerDB/blob/master/src/post...
Tcl cukup layak sebagai bahasa skrip shell.
Fakta bahwa mesin pemrosesan event pusat Tcl dibangun di atas
epollataukqueuesaat tersedia, dan tetap menyediakan implementasi berbasisselectuntuk platform yang tidak mendukungnya, adalah perubahan besar.Salah satu alasan utama konkurensi Tcl dianggap usang dan berperforma rendah adalah karena Tcl bergantung pada
select, padahalepolldankqueuesudah tersedia setidaknya selama 10 tahun. Tcl adalah salah satu bahasa yang saya sukai karena mudah untuk mulai digunakan dan metaprogramming-nya juga mudah.Alasan lainnya adalah kita belum benar-benar tahu cara menulis Tcl yang cepat, dan di thread itu saya tanpa sengaja menunjukkan hal tersebut.
Saya ingin merekomendasikan NaviServer [0]. Nama lamanya adalah AOLServer [1], sebuah web server yang sangat tangguh dan sudah lama terbukti di penggunaan nyata.
Kalau itu adalah sesuatu yang dulu dipakai untuk menjalankan AOL, rasanya tidak perlu banyak penjelasan lagi. OpenACS [2] adalah proyek utamanya dan sudah ada sejak 1997; khususnya saat dipakai bersama Tcl, ini sangat kuat. Masih dipelihara, dan kini juga mendukung Tcl 9.
Kombinasi JavaScript, Tcl, dan NaviServer, ditambah modul bawaannya sendiri seperti DNS Server, LDAP, dan Mail, menjadi alat yang kuat. Jika ingin mulai dengan Tcl dan pengembangan web, saya merekomendasikan mencoba keduanya bersama karena mudah menghasilkan sesuatu yang menarik.
[0] https://wiki.tcl-lang.org/page/NaviServer
https://github.com/naviserver-project/naviserver
[1] https://news.ycombinator.com/item?id=35648805
https://www.linuxjournal.com/article/6164
[2] https://openacs.org/about/history
https://openacs.org/
Saya juga ingat pernah mengikuti kelas gratis yang disponsori dan diajarkan langsung oleh ArsDigita di kantor mereka, entah di Pasadena, CA atau Glendale. Tidak terlalu mendalam atau panjang, tetapi bagus sebagai pengantar.
Bagi orang yang baru mengenal Tcl, pernah ada juga semesta alternatif tempat Tcl menjadi bahasa browser alih-alih JavaScript
“Catatan kaki menarik: pendirian Netscape bertepatan dengan masa ketika saya meninggalkan Berkeley pada 1994 dan memutuskan akan ke mana di industri. Jim Clarke dan Marc Andreessen sempat menjajaki kemungkinan saya bergabung sebagai pendiri Netscape, tetapi pada akhirnya saya menolak. Saat berbicara dengan mereka, saya bahkan belum memutuskan untuk mengerjakan sesuatu yang terkait web. Itu adalah salah satu ‘seandainya’ terbesar dalam karier saya. Jika saya bergabung dengan Netscape, cukup mungkin Tcl menjadi bahasa browser alih-alih JavaScript, dan dunia akan berbeda! Namun jika dipikir kembali, saya tidak yakin Tcl sebenarnya akan menjadi bahasa yang lebih baik untuk web dibanding JavaScript, jadi mungkin saja yang terjadi memang hal yang benar.”
Sumber: https://pldb.io/blog/JohnOusterhout.html
Bahasa apa pun yang dipakai lebih dari beberapa orang, sebagus apa pun, akan membawa semacam beban. Jadi di semesta alternatif itu, ekosistem bahasa skrip browser mungkin bisa jauh lebih terfragmentasi
Jika mau, perintah bisa dihapus cukup banyak sampai bahasanya tidak lagi Turing-complete
https://sunsite.icm.edu.pl/pub/programming/tcl/plugin/
Saya juga ingat sebelum itu ada sesama mahasiswa yang datang ke lab komputer dan berkata, “Lihat, sekarang ada plugin TK untuk Mosaic juga!” Itu bukan lagi masa ketika orang berkata “seperti gopher dengan mouse!”, tetapi belum terlalu lama setelahnya
Namun untuk memakai plugin Tcl, pengguna harus melakukan sesuatu sendiri, sedangkan JavaScript, setelah masuk, tersedia secara bawaan
Mungkin yang lebih mungkin adalah TCL hadir bersama sesuatu yang lain, lalu TCL akhirnya ditandai untuk dihentikan
Saya tidak ingin melihat kode seperti
set x [ expr $y + $z ]tersebar di mana-mana. Sebagai bahasa perintah, itu tidak terlalu buruk sihTidak berlebihan kalau saya mengatakan benar-benar menyukai Tcl. Saya hanya sempat memakainya sebentar saat menulis skrip IRC XiRCON pada akhir 1990-an, tetapi itu bahasa yang elegan, sederhana, mudah dipelajari, dan fleksibel sampai-sampai layak disebut Lisp untuk manusia
Saya berharap bahasa ini lebih populer, dan senang melihatnya masih hidup dan bergerak
Namun bahasa utama saya yang lain saat itu adalah assembly x86, jadi mungkin standar saya untuk terkesan memang rendah
Penulis Tcl dan Tk adalah Profesor John Ousterhout, dan buku desain perangkat lunaknya sudah terbit sampai edisi ke-2
A Philosophy of Software Design:
https://web.stanford.edu/~ouster/cgi-bin/book.php
Sekarang saya sudah sampai bab 11, “Design it Twice”, jadi mungkin setelah selesai membaca, saya akan menulis ulang semuanya dari atas sampai bawah. Saat ini modelnya hanya menaruh variabel di core Python minimal dan sisanya di OpenSCAD, tetapi dalam implementasi baru saya berencana menaruh sebanyak mungkin hal di Python dan menggunakannya melalui OpenPythonSCAD https://pythonscad.org/
Saya sangat menyukai bahasanya, tetapi belakangan tidak banyak memakainya. Saya penasaran apakah di Linux pun masih menghasilkan GUI gaya 1995
Kalau saja ada dukungan GUI Linux yang cukup masuk akal, setara dengan yang sudah lama memungkinkan di platform lain, saya mungkin masih akan memakainya sampai sekarang
Namun tangkapan layar tema inti mengacu pada 8.5/8.6, dan khususnya tema bawaan sedikit berubah di Tk 9. Jebakannya adalah mesin tema memakai widget baru miliknya sendiri, jadi agar aplikasi mendapat tema, aplikasi harus memakai API baru. Kalau kodenya dari 1995 atau 2005, GUI yang keluar tetap gaya 1995
Dokumentasinya terlalu lama berpusat pada Tk(inter), sehingga kebanyakan orang tampaknya memilihnya seperti pilihan default. Dukungan GUI Python sudah membaik, tetapi mungkin popularitas penggunaannya untuk machine learning/AI ikut berpengaruh. Karena Tcl kurang populer, Anda harus memeriksa lebih teliti untuk menemukan dokumentasi cara memakai GUI modern
Belakangan ini saya hanya sempat menyentuh Tcl sebatas mengerjakan portfile MacPorts
Kalau sekarang ada yang memakainya untuk keperluan lain, saya penasaran mengapa mereka memakainya. Saya tidak membenci bahasanya, tetapi juga tidak sampai menyukainya
Programmer Tcl yang mahir bisa melakukan hal-hal seperti sihir. Dari 2005 sampai 2015 saya hampir sepenuhnya memprogram dengan Tcl/Tk dan benar-benar menyukainya. Setelah itu saya lebih sering memakainya untuk skrip ringan daripada menulis aplikasi, tetapi ketika harus menulis skrip otomasi tingkat sistem operasi, Tcl masih menjadi pilihan pertama saya
Alasan saya memakainya setiap hari adalah keseimbangannya yang bagus antara sisi mirip Lisp dan kesederhanaan sebagai bahasa scripting, serta antarmuka C-nya yang luar biasa. REPL-nya juga cukup baik, dan kita bisa menulis ekstensi dalam C lalu menumpuknya seolah-olah 100% Tcl kelas satu. Ini sebagian besar, atau mungkin sepenuhnya, karena Tcl adalah bahasa yang sangat sederhana[4] dan memiliki homoiconicity[5]. Menyenangkan untuk dikembangkan dan digunakan
[0] https://community.f5.com/kb/technicalarticles/irules-concept...
[1] https://www.mcs.anl.gov/~wozniak/papers/Swift_Tcl_2015.pdf
[2] https://www.acoustic.com/pdf/Acoustic-Experience-Analytics-%...
[3] https://docs.python.org/3/library/tkinter.html
[4] https://www.tcl-lang.org/man/tcl/TclCmd/Tcl.htm
[5] https://stackoverflow.com/questions/6492704/what-exactly-doe...
Kelebihannya adalah kita bisa mengendalikan tool EDA seperti perintah shell script semacam
run_my_task -option_a -option_B. Kalau Anda tidak merancang chip, tidak ada alasan untuk memakainya, dan bahasanya sendiri mengerikan. Semakin cepat industri EDA meninggalkan TCL, semakin baikDan test suite itulah yang membuat SQLite menjadi mesin yang dapat dipercaya seperti sekarang. Test suite tersebut terus dipelihara, sementara mesinnya telah ditulis ulang secara keseluruhan atau sebagian
Saya membuat aplikasi backup untuk aplikasi penjualan online, aplikasi untuk memperbaiki file POS bermasalah milik jaringan ritel besar, aplikasi kecil yang menyalin Forms/Reports ke server lalu menjalankan kompilasi dan memasukkan file baru ke git, serta wrapper
gsagar departemen media lebih mudah menggabungkan beberapa PDF menjadi satu. Semuanya hanya sekitar satu atau dua halaman kodeIni lebih penting daripada Python 3.13
Bravo !!!!
Saya menunggu Scilab dan Python didistribusikan dengan menyertakan Tcl/Tk 9.0. Rilis terbaru Next Scripting tampaknya sudah siap untuk 9.0. Bagian Undroidwish dan Binary Releases di halaman resminya layak dipantau