Kolom Tekno

Alat CLI 'st' Hadir Sebagai Manajer Seragam untuk Berbagai Dialek Smalltalk

Ringkasan

  • Pengembang Hernán Morales merilis 'st', antarmuka baris perintah ringan yang menyederhanakan instalasi dan eksekusi image Pharo, Cuis, Squeak, Glamorous Toolkit, serta GNU Smalltalk melalui satu perintah konsisten.

Fragmentasi lingkungan eksekusi dan berkas image sejak lama menjadi hambatan utama bagi pengembang Smalltalk. Setiap dialek — Pharo, Cuis, Squeak, Glamorous Toolkit, hingga GNU Smalltalk — memerlukan mesin virtual (VM) sendiri, instalator berbeda, dan manajemen image yang tidak terstandarisasi. Situasi ini memaksa pengembang menguasai banyak alur kerja hanya untuk beralih antar dialek, menciptakan gesekan yang justru bertentangan dengan filosofi *live programming* yang ditawarkan Smalltalk.

Menjawab tantangan itu, pengembang perangkat lunak Hernán Morales meluncurkan 'st', sebuah utilitas *command-line interface* (CLI) berbasis *shell* yang dirancang sebagai *installer* dan *runner* terpadu. Alat ini memungkinkan pengguna memasang dan menjalankan image Smalltalk hanya dengan perintah singkat seperti `st pharo install` atau `st gt run`, menghilangkan kebutuhan mengunduh VM dan image secara manual dari situs resmi masing-masing proyek. Kode sumber diterbitkan di repositori GitHub di bawah organisasi hernanmd dengan lisensi terbuka.

Latar belakang kelahiran 'st' bermula dari frustrasi pribadi Morales saat sering beralih antara dialek untuk keperluan penelitian dan pengajaran. Ia mengamati bahwa meski ekosistem Smalltalk kaya akan inovasi — seperti *live object inspection* di Glamorous Toolkit atau kesederhanaan Cuis — *developer experience* di lapisan infrastruktur justru tertinggal jauh dibandingkan bahasa modern seperti Rust, Go, atau Node.js yang sudah dilengkapi *version manager* serupa (rustup, gvm, nvm).

Di komunitas Smalltalk internasional, keluhan soal *dependency hell* VM dan image bukan hal baru. Pharo misalnya mengandalkan *Pharo Launcher* berbasis GUI, sedangkan GNU Smalltalk lebih condong ke manajemen paket sistem operasi. Squeak dan Cuis sering didistribusikan sebagai arsip *zip* mentah. Tidak ada standar *command-line* yang memungkinkan otomatisasi *pipeline* CI/CD, *scripting* instalasi server, atau *onboarding* pengembang baru tanpa interaksi manual. 'st' hadir mengisi kekosongan itu dengan pendekatan *convention over configuration*.

Bagi pengembang di Indonesia, kehadiran alat semacam ini relevan meski komunitas Smalltalk lokal relatif kecil. Beberapa universitas seperti ITB dan UI pernah memperkenalkan Squeak atau Pharo di mata kuliah paradigma pemrograman berorientasi objek. Kendala aksesibilitas — unduhan besar, konfigurasi VM *headless* di server Linux, serta dokumentasi tersebar — sering membuat mahasiswa dan dosen beralih ke Python atau Java yang lebih ramah *tooling*. 'st' berpotensi menurunkan *barrier to entry* tersebut secara signifikan.

Arsitektur 'st' sengaja dibangun ringan dan bergantung pada *shell* standar (POSIX *sh* kompatibel) agar berjalan di Linux, macOS, dan Windows melalui WSL tanpa *runtime* tambahan. Morales menegaskan bahwa pilihan ini memastikan alat bisa dipasang di *container* Docker, *CI runner* GitHub Actions, atau *VPS* murah tanpa *overhead*. Dukungan pencarian dan pemasangan paket dasar (*package search/install*) serta evaluasi kode (*eval*) sudah tersedia untuk dialek yang menyediakan *registry* paket, seperti Pharo dan Glamorous Toolkit.

"Saya bangun ini untuk mengurangi gesekan saya sendiri, tapi harapannya berguna bagi siapa pun yang ingin mencoba Smalltalk tanpa repot mengurus VM," tulis Morales di halaman proyek. Ia terbuka untuk masukan, laporan *bug*, dan terutama kontribusi *backend* dialek baru. Saat ini dukungan inti mencakup Pharo, Cuis, Squeak, Glamorous Toolkit (GT), dan GNU Smalltalk. Rencana lanjutan mencakup integrasi *Smalltalk CI*, dukungan *Docker image* resmi, serta *completion* shell untuk Bash, Zsh, dan Fish.

Dari perspektif industri, 'st' mendemonstrasikan tren *tooling convergence* yang sudah terjadi di ekosistem bahasa lain. Seperti *SDKMAN!* untuk JVM, *asdf* untuk multi-bahasa, atau *mise* generasi baru, 'st' membawa Smalltalk ke standar *developer experience* kontemporer. Hal ini krusial jika Smalltalk ingin menarik generasi pengembang baru yang terbiasa dengan *workflow* terminal-first dan *infrastructure-as-code*.

Tantangan ke depan terletak pada pemeliharaan kompatibilitas saat setiap dialek merilis versi mayor. Pharo 12, GT v1.0, atau Squeak 6.0 mungkin mengubah struktur URL unduhan, format image, atau argumen VM. Morales mengundang komunitas masing-masing dialek menjadi *maintainer* *backend* masing-masing agar *st* tetap andal tanpa beban tunggal pada pencipta alat. Model *federated maintenance* ini mirip strategi *asdf* yang mendelegasikan *plugin* ke komunitas bahasa masing-masing.

Bagi praktisi di Indonesia yang mengeksplorasi *live programming*, *moldable development*, atau arsitektur berbasis *image-based persistence*, 'st' menawarkan titik masuk praktis. Cukup jalankan `st pharo install && st pharo run` di terminal, dan lingkungan Pharo siap digunakan dalam hitungan detik — tanpa *wizard* GUI, tanpa akun *login*, tanpa konfigurasi manual. Kemudahan itulah yang selama ini hilang dari narasi Smalltalk modern.

Mengapa Ini Penting

Kehadiran 'st' menandakan kematangan *tooling* Smalltalk yang selama ini tertinggal dari bahasa populer. Bagi ekosistem teknologi Indonesia, alat ini memungkinkan eksperimen *live programming* dan *moldable development* tanpa hambatan infrastruktur, membuka peluang penelitian akademik dan *niche* industri (seperti sistem *real-time* atau *domain-driven design*) yang membutuhkan *feedback loop* instan. Model *federated maintenance*-nya juga menjadi teladan bagi proyek *open source* multi-dialek lain di negara kita.

Sumber Asli
Dev.to
Tanggal
15 Juli 2026
Waktu Baca
5 menit