- ty, type checker dan language server Python supercepat yang ditulis dengan Rust, kini dirilis dalam versi beta
- Dirancang sebagai alternatif untuk mypy, Pyright, dan Pylance, dengan performa 10–60 kali lebih cepat
- Melalui arsitektur inkremental, hanya bagian yang diperlukan yang dihitung ulang saat kode diubah, sehingga memaksimalkan kecepatan respons real-time
- Dengan fokus pada akurasi dan kegunaan, ty mendukung fitur sistem tipe modern seperti intersection types, advanced type narrowing, dan reachability analysis
- Astral berencana mengembangkan ty bersama Ruff dan uv sebagai alat pengembangan inti dalam ekosistem Python
Ikhtisar ty
- ty adalah type checker dan language server Python yang dikembangkan oleh Astral dan diimplementasikan dengan Rust
- Dirancang sebagai alternatif yang jauh lebih cepat daripada mypy, Pyright, dan Pylance
- Sudah digunakan di berbagai proyek internal Astral, dan pada tahap beta kini direkomendasikan juga untuk pengguna eksternal
- Astral adalah tim yang membuat alat pengembangan berperforma tinggi untuk ekosistem Python, dan dikenal lewat uv (package manager) dan Ruff (linter dan formatter)
Performa dan arsitektur
- ty dirancang dengan struktur berpusat pada language server, dan mengadopsi pemrosesan inkremental yang hanya menjalankan ulang operasi yang diperlukan saat file diubah
- Karena itu, kecepatan pembaruan real-time di editor menjadi sangat tinggi
- Bahkan saat dijalankan tanpa cache, ty tetap 10–60 kali lebih cepat daripada mypy dan Pyright
- Contoh: saat file utama di repositori PyTorch diubah, kecepatan perhitungan ulang diagnostik mencapai 4.7ms, 80 kali lebih cepat daripada Pyright (386ms) dan 500 kali lebih cepat daripada Pyrefly (2.38 detik)
- Bahkan pada proyek berskala besar, selisih performa saat pembaruan inkremental bisa mencapai puluhan kali lipat atau lebih
Sistem tipe dan akurasi
- ty mendukung intersection types, advanced type narrowing, dan reachability analysis berbasis tipe
- Melalui fitur-fitur ini, ty memberikan umpan balik tipe yang akurat dan mengurangi false positive yang tidak perlu
- Tujuannya bukan sekadar meningkatkan kecepatan, tetapi membangun type checker yang meningkatkan akurasi sekaligus pengalaman pengguna
Sistem diagnostik
- ty menyertakan sistem diagnostik canggih yang terinspirasi dari sistem pesan galat kompiler Rust
- Dalam satu pesan diagnostik, konteks dari beberapa file dapat ditampilkan bersama untuk memperjelas penyebab masalah dan arah perbaikannya
- Contoh: saat ada penetapan key dictionary yang salah, lokasi ketidakcocokan tipe dan lokasi deklarasi ditampilkan bersamaan
- Output diagnostik adalah antarmuka inti ty, dan dirancang dengan struktur yang mudah dipahami oleh manusia maupun AI
Fitur language server
- ty dapat digunakan di semua editor yang mendukung LSP (Language Server Protocol), seperti VS Code dan Cursor
- Mendukung seluruh fitur language server modern seperti go to definition, rename symbol, autocompletion, auto-import, semantic syntax highlighting, dan inlay hints
- Dapat dipasang melalui ekstensi VS Code, dan CLI juga bisa diinstal dengan perintah
uv tool install ty@latest
Rencana ke depan
- Target jangka pendek setelah beta adalah peningkatan stabilitas dan perbaikan bug, penyelesaian spesifikasi tipe Python, serta dukungan untuk Pydantic dan Django
- Dalam jangka panjang, ty akan diperluas menjadi mesin fitur berbasis semantik dalam toolchain Astral
- Fitur yang direncanakan mencakup penghapusan dead code, deteksi dependensi yang tidak terpakai, reachability analysis untuk kerentanan keamanan (CVE), dan linting yang memahami tipe
- Astral menargetkan peningkatan ty secara berkelanjutan untuk menjadikan Python sebagai ekosistem pemrograman paling produktif
Ucapan terima kasih
- Pengembangan ty melibatkan puluhan kontributor open source, dan dirilis di bawah lisensi MIT
- Berbagai tokoh dan tim dari Salsa, Elixir, dan komunitas typing Python memberikan kolaborasi teknis serta inspirasi
- Tim inti Astral mengembangkan ty berdasarkan pemahaman mendalam tentang teori tipe, semantik runtime Python, dan pola pemanfaatan ekosistem
Belum ada komentar.