Menelusuri perjalanan Zsh dari proyek yang ditulis Paul Falstad pada 1990 sebagai superset ksh, dirawat oleh Peter Stephenson dkk, hingga menjadi default shell macOS sejak Catalina 2019, serta memahami mengapa completion, globbing, prompt, dan ekosistem pluginnya membuat Zsh pantas menjadi shell harian para developer

Setelah di episode 0 kita menyiapkan environment — memastikan zsh terinstall dan lab ~/zsh-lab siap — pada episode ini kita menarik napas sejenak dari hands-on dan memahami mengapa Zsh ada. Sejarah sebuah shell mungkin terasa tidak penting, padahal di sanalah letak alasan mengapa desainnya seperti sekarang.
Mengapa harus memahami sejarah Zsh? Karena Zsh tidak lahir dari rapat perusahaan, melainkan dari hobi seorang mahasiswa Princeton yang menginginkan shell dengan lebih banyak fitur. Memahami asal-usulnya akan menjelaskan keputusan-keputusan desainnya — mengapa Zsh punya globbing yang sangat ekstensif, mengapa completion-nya begitu pintar, dan mengapa ia berhasil menggantikan bash sebagai default shell di macOS.
Zsh pertama kali ditulis oleh Paul Falstad pada tahun 1990, saat masih menjadi mahasiswa di Princeton University. Nama zsh sendiri konon berasal dari kombinasi nama Zvezdan Petkovic (rekan pengajarnya) dan "shell" dari Professor Zhong Shao. Awalnya Zsh adalah superset dari ksh (Korn Shell) dengan banyak fitur tambahan.
| Fakta | Detail |
|---|---|
| Penulis | Paul Falstad (Princeton University) |
| Rilis pertama | 1990 |
| Asal nama | Konon dari "Z" Zvezdan Petkovic + "sh" (shell) |
| Basis | Superset dari ksh (Korn Shell) |
| Maintainer utama | Peter Stephenson (sejak 1995) |
Zsh berkembang jauh melampaui ksh: ia menambahkan completion system yang luar biasa, globbing ekstensif, prompt yang sangat fleksibel, dan arsitektur modul. Sejak 1995, Peter Stephenson dan komunitas zsh-users mengelola proyek ini secara konservatif dan stabil — filosofi yang masih terasa sampai sekarang.
Perjalanan Zsh dari shell niche ke status default adalah kisah bertahap:
| Tahun | Tonggak |
|---|---|
| 1990 | Paul Falstad menulis Zsh di Princeton |
| 1995 | Peter Stephenson mengambil alih maintenance |
| 2000-an | Zsh populer di kalangan power user; Oh My Zsh lahir (2009) |
| 2016 | macOS High Sierra membundel zsh sebagai opsi |
| 2019 | macOS Catalina menjadikan zsh default shell menggantikan bash |
| 2022 | Zsh 5.9 rilis — major terakhir sampai sekarang |
Keputusan Apple menjadikan Zsh default adalah momen legitimasi besar. Alasan utamanya: bash versi yang dibundel macOS terlalu tua (3.2, karena lisensi GPLv3), sementara Zsh menggunakan lisensi yang lebih longgar dan punya fitur modern yang dibutuhkan developer.
Empat alasan Zsh menjadi pilihan utama developer dan SysAdmin:
| Keunggulan | Arti Praktis |
|---|---|
| Completion canggih | Tab completion memahami konteks: opsi perintah, argumen, bahkan menu multi-pilihan |
| Globbing ekstensif | Pattern seperti **/*.md, negasi ^, dan ekstensi *.{c,h} jauh melampaui bash |
| Prompt & right-prompt | PROMPT dan RPROMPT bisa menampilkan git branch, status, jam, apa pun |
| Ekosistem plugin | Oh My Zsh, zinit, powerlevel10k — customization tanpa menulis semuanya dari nol |
Kombinasinya jarang ditemukan di shell lain: Zsh se-interaktif shell modern, tetapi tetap kompatibel dengan sebagian besar sintaks bash untuk skrip. Inilah yang membuatnya "interactive-rich, scripting-friendly" — best of both worlds.
Salah satu alasan adopsi Zsh mulus adalah kompatibilitasnya dengan bash. Mayoritas sintaks bash — variabel, for, if, while, pipe, redirect, fungsi — berjalan langsung di Zsh. Artinya kalian tidak perlu membuang pengetahuan bash yang sudah ada.
Note
Ada beberapa perbedaan yang wajib diingat sejak awal: array Zsh 1-indexed (bukan 0 seperti bash), $path/$PATH adalah tied array (satu variabel terlihat sebagai dua bentuk), dan globbing di Zsh tidak melebar otomatis saat tidak ada match — ia malah menampilkan error "no matches found". Semua ini dibahas detail di episode 4.
Di tengah munculnya shell modern seperti fish dan nushell, Zsh tetap relevan karena tiga alasan:
Ini berarti skill Zsh langsung berguna di pekerjaan nyata: mengonfigurasi server, menulis helper script, membangun prompt produktif, sampai otomasi CLI yang akan kita pelajari sepanjang series ini.
Pada episode 1 ini, kalian telah menelusuri perjalanan Zsh dari proyek 1990 karya Paul Falstad hingga menjadi default shell macOS dan favorit developer di dunia.
Inti yang harus dibawa pulang:
Di episode 2 selanjutnya, kita akan membedah konsep dasar dan arsitektur utama Zsh — bagaimana shell ini dibangun di atas C, perbedaan mode interaktif vs non-interaktif, urutan startup files (zshenv, zprofile, zshrc, zlogin, zlogout), dan komponen ZLE (Zsh Line Editor). Sampai jumpa di episode 2!