14 poin oleh GN⁺ 2025-11-04 | Belum ada komentar. | Bagikan ke WhatsApp
  • Menyajikan hasil evaluasi 2025 yang membandingkan emulator terminal utama berdasarkan akurasi dukungan Unicode dan kinerja
  • Ghostty adalah terminal baru yang dikembangkan dari nol dengan Zig, mencatat skor tertinggi dan mewujudkan penanganan Unicode yang akurat
  • Kitty memperoleh skor yang setara dengan Ghostty, serta mempublikasikan algoritme pemisahan teks yang berkontribusi pada standardisasi
  • Banyak terminal menunjukkan masalah penurunan kinerja dan ketidakkonsistenan dukungan DEC Private Mode, khususnya terminal berbasis VTE yang tidak menunjukkan perbaikan
  • Munculnya protokol teks lebar variabel membuka kemungkinan peningkatan keterbacaan untuk berbagai bahasa, melampaui batas sel lebar tunggal
  • Errant Champions (Para Juara Pengembara): penantang seperti Ghostty dan Kitty yang tidak puas dengan spesifikasi klasik, melainkan mendesain ulang secara mendasar persoalan lebar karakter, rendering, dan Unicode di terminal

Alat ucs-detect dan gambaran pengujian

  • Sebagai studi lanjutan dari eksperimen perbandingan dukungan Unicode yang dipublikasikan pada 2023, alat ucs-detect menambahkan kemampuan deteksi DEC Private Modes, grafik sixel, ukuran piksel, dan versi perangkat lunak
    • Alat ini mengirim urutan kendali posisi kursor, lalu mencatat ketidaksesuaian dengan membandingkan respons terminal terhadap hasil Python wcwidth
  • Pengujian memverifikasi akurasi perhitungan lebar karakter tiap terminal, dan hasilnya mengkuantifikasi kualitas dukungan Unicode

Masalah lebar karakter (The Width Problem)

  • Terminal memiliki keterbatasan struktural karena harus menampilkan berbagai karakter Unicode di dalam grid lebar tetap
  • Karakter gabungan, urutan emoji, Zero-width joiner, dan lainnya membuat prediksi lebar karakter sering gagal
  • Galat semacam ini menyebabkan kesalahan posisi kursor dan kerusakan output, bahkan mendistorsi posisi input
  • Hasil pengujian mengidentifikasi terminal yang paling sedikit menimbulkan masalah tersebut

Ghostty: kekuatan baru

  • Ghostty adalah terminal baru yang diperkenalkan pada 2025, dibangun dari nol dengan bahasa Zig
    • Berkat implementasi dukungan Unicode yang sangat matang, akurasinya paling tinggi dan mencatat skor terbaik dalam pengujian
  • Pengembang Mitchell Hashimoto telah meneliti prinsip dasarnya lewat tulisan 2023 Grapheme Clusters and Terminal Emulators
  • libghostty yang baru diumumkan berpotensi menjadi alternatif pengganti libvte, dan dapat menyediakan fondasi Unicode yang kuat bagi ekosistem terminal ke depan

Kitty: juara lainnya

  • Kitty mencatat skor yang nyaris identik dengan Ghostty, dan mempublikasikan algoritme pemisahan sel teks
    • Algoritme ini selaras dengan spesifikasi Python wcwidth dan didasarkan pada interpretasi standar Unicode
  • Hanya dua terminal ini yang mendukung Variation Selector 15 dengan benar
    • Fitur ini memang kurang praktis saat ini, tetapi direncanakan akan masuk ke standar Python wcwidth di masa mendatang

Ringkasan perbandingan kinerja Unicode emulator terminal

  • Peringkat 1 Ghostty, 2 Foot, 3 Kitty menempati posisi teratas
    • Ketiga terminal sama-sama meraih skor tertinggi pada kategori akurasi pemrosesan Unicode (WIDE/LANG/ZJW/VS16)
    • Ghostty meraih 100 di semua kategori dengan skor total 100, dan DEC Modes juga enabled
    • Kitty sedikit lebih lambat dari sisi kinerja (Elapsed time 1748s), tetapi tingkat akurasinya sangat tinggi
  • Terminal berbasis VTE (GNOME Terminal, Terminator, LXTerminal, dll.) tetap berada di papan bawah
    • Semuanya mencatat Final Scaled Score 5 atau kurang, dengan waktu uji sangat lambat, sekitar 8000~18000 detik
    • Tidak ada perbaikan dibanding 2023
  • Dari sisi kinerja (Elapsed time), Foot, WezTerm, tmux, Konsole termasuk yang cepat (di bawah 100 detik)
    • iTerm2 dan Extraterm sangat lambat karena penggunaan CPU yang tinggi (lebih dari 4000 detik)
  • Dukungan grafik sixel bahkan di kelompok atas hanya tersedia pada sebagian terminal
    • Ghostty, Kitty, Konsole, contour mendukungnya
    • GNOME Terminal dan keluarga VTE sebagian besar tidak mendukung
  • Terminal yang mendukung Variation Selector 15 (VS15) dengan benar hanya Ghostty dan Kitty
    • Dari sisi kelengkapan pemrosesan Unicode, kedua proyek ini praktis berada di kelas tersendiri

Analisis kinerja (The Long Road)

  • Banyak terminal menunjukkan kinerja yang sangat lambat, sehingga penyelesaian pengujian memakan waktu berjam-jam
    • iTerm2 dan Extraterm memakai CPU secara berlebihan, sehingga waktu pengujian harus dipersingkat
    • GNOME Terminal dan terminal berbasis VTE memiliki penggunaan CPU rendah, tetapi tetap membutuhkan lebih dari 5 jam
  • Python wcwidth, meski merupakan bahasa tingkat tinggi, tetap mampu menyamai kecepatan sebagian besar terminal
  • Untuk optimasi kinerja, telah diuji bit vector, Bloom filter, LRU cache, dan lainnya, namun kombinasi pencarian biner + LRU cache terbukti paling efisien
    • LRU cache efektif saat menangani himpunan karakter yang berulang
  • Penerapan modul C juga sempat dipertimbangkan, tetapi implementasi Python saat ini sudah memberikan kinerja yang memadai

Kasus khas dan masalah (Tilting at Edges)

  • Terminology menghasilkan hasil berbeda pada setiap eksekusi, sehingga diduga ada kemungkinan kerusakan status internal
  • iTerm2 melaporkan semua DEC Private Mode sebagai “didukung tetapi dinonaktifkan”
  • Konsole tidak merespons kueri, tetapi beberapa mode didukung saat diaktifkan
  • Contour merespons dengan nomor mode yang salah sehingga ditandai sebagai “tidak didukung”, dan pada rilis Desember 2024 terjadi kesalahan konfigurasi tombol ESC
  • Terminal berbasis VTE/7600 tetap mempertahankan skor rendah yang sama seperti pada 2023
  • Diskusi peningkatan Unicode pada proyek libvte menuai kritik, tetapi isu dukungan urutan emoji dinilai sebagai sinyal perbaikan menuju 2026

Tentang Mode 2027

  • Mode 2027 hanya membedakan apakah dukungan Unicode terminal itu “didukung/tidak didukung”, tetapi tidak dapat menunjukkan tingkat detail fiturnya
  • Dalam praktiknya, pendekatan seperti ucs-detect yang menguji langsung tiap fitur dan code point jauh lebih akurat

Melampaui lebar tetap (Beyond Fixed Widths)

  • Struktur sel lebar tetap menyebabkan penurunan keterbacaan pada banyak bahasa
  • Protokol pengaturan ukuran teks (text sizing protocol) menawarkan pendekatan baru untuk mengatasinya
    • Kovid Goyal dari Kitty menjelaskannya dengan contoh, “saya ingin melihat judul file Markdown dengan ukuran lebih besar”
  • Fitur ini membuka kemungkinan peningkatan aksesibilitas dan keterbacaan skrip karakter yang kompleks
  • Sebagai contoh, pada perbandingan tampilan bahasa Khün di Contour dan editor Kate, rendering lebar variabel memberikan hasil yang lebih jelas
  • Mode lebar variabel yang memungkinkan mesin font merender teks tanpa batasan per sel diajukan sebagai arah pengembangan ke depan
  • Pengenalan protokol ukuran teks dinilai sebagai kemajuan dalam menyelesaikan persoalan ini

Belum ada komentar.

Belum ada komentar.