[Review] Windows udah Cocok Buat Development? Kesan Pertama menggunakan WSL 2 (Windows System Linux)

Aisy Muhammad Rozsidhy
7 min readJun 15, 2020

Apakah anda menggunakan Windows buat development? Iri dengan temen-temen yang menggunakan Linux atau OSX karena lebih mudah ngodingnya? Kesulitan menjalankan service di Windows? Jangan khawatir ada kabar baik buat orang-orang yang masih mengandalkan Windows sebagai development utama mereka, Microsoft secara resmi mengungumkan bahwa WSL(Windows Subsystem Linux) versi ke 2 sudah rilis secara official kabar baiknya bisa digunakan di Windows 10 untuk edisi Home, saya sebagai pengguna Windows Home sudah lama sudah menanti WSL 2 ini untuk rilis di publik.

Lalu apa yang spesial dari WSL 2 ini? kenapa saya dan beberapa developer lain menunggu versi 2 ini? mari kita bahas!

Kenalan dulu sama Windows subsystem Linux

Saya dan termasuk beberapa orang yang melakukan development di Windows. Yah karena beberapa orang memang sudah familiar dengan Windows sehingga menjadikan Windows sebagai Sistem Operasi sehari-hari, selain bisa digunakan untuk bekerja terkadang juga sering digunakan sebagai media hiburan seperti game, dan melihat film.

Namun ada beberapa kasus yang menyebalkan ketika melakukan development seperti menggunakan git yang dimana membutuhkan aplikasi terminal khusus, kebutuhan docker yang dimana masih menggunakan virtual machine dan beberapa development sekarang yang membutuhkan sistem UNIX jelas orang-orang lebih prefer menggunakan Linux daripada Windows untuk development.

kebutuhan coding saya sudah beda ketika sudah masuk ke dunia kerja dan ketika saya masih menggunakan Windows, sangat annoyed Photo by Christian Erfurt on Unsplash

Namun Micrososft tidak diam saja, mereka tahu dan mereka menciptakan sistem untuk mengijinkan kita menggunakan ekosistem UNIX di Windows dengan menggunakan fitur “Windows SubSystem Linux” atau lebih dikenal dengan WSL.

Konsep WSL ini kurang lebih sama dengan Virtual machine, kita perlu menginstall distro Linux yang ingin kita gunakan dan ini sudah disediakan di Microsoft store, karena ini didukung oleh Microsoft jadinya performance yang dihadirkan jelas lebih cepat daripada virtual machine. Direktori atau struktur folder yang ada di WSL berbeda dengan Windows dan jelas sekali kita membutuhkan lebih banyak sisa data untuk menggunakan WSL ini, namun WSL ini juga bisa mengakses file dan folder yang ada di Windows.

Jika saya tidak mau menggunakan fitur WSL ini bagaimana? tenang Fitur ini tidak langsung menyala secara default di Windows terlebih buat pengguna umum, jadi jika kalian adalah developer dan butuh UNIX untuk melakukan development tapi malas untuk dual boot maka WSL menjadi solusi buat kalian.

Rilis ke versi 2, Apa yang spesial?

Meski konsep WSL terbilang bagus yang dimana kita tidak perlu repot-repot melakukan dual booting, namun sayangnya masih ada beberapa masalah di WSL versi 1, sehingga niat awal saya yang ingin menggunakan environment Linux di WSL ini saya tunda dan kembali ke environment di Windows, karena beberapa hal :

  • Tampilan UI terminal pada WSL masih jelek menurut saya personal, bahkan fitur untuk customize sangatlah terbatas.
  • Ada beberapa aplikasi yang tidak bisa berjalan di WSL contohnya yang sering dibutuhkan seperti Docker.
  • Performance masih terasa lamban, entah melakukan instalasi ataupun menjalankan project, jadi bagi kebanyakan orang masih prefer Linux asli ketimbang menggunakan WSL.
  • Dan masih banyak lainnya

WSL versi 2 inilah masalah yang saya sebutkan diatas diperbaiki oleh Microsoft, yah meskipun kita harus mengupdate ke versi Windows yang terbaru agar bisa menjalakan WSL 2 ini. Lha kok harus update sih? Ya karena Di Windows 10 update May 2020 atau versi Windows 10 2004 memiliki kernel Linux didalamnya!

ada kernel Linux di Windows? Woaaaaah Photo by Ben White on Unsplash

Iya kalian tidak salah membacanya, ada kernel linux didalam Windows, Semenjak Satya Nadela memegang Microsoft, Nadela berusaha untuk menjodohkan Linux di Windows konsep penjodohan ini bermula dari WSL sebetulnya, namun karena tidak semudah itu membuat Linux berjalan di Windows, ide untuk memasukkan kernel Linux tersebut dilakukan, tentu dengan harapan performance akan meningkat ketika menggunakan WSL.

Emang performancenya bakal kencang?

Well.. saya sendiri sudah mencobanya untuk menjalakan aplikasi vue-cli, nextjs dan create-react-app, itupun juga dengan spesifikasi laptop yang berbeda juga. Tapi kecepatan itu baru terasa buat saya ketika saya menjalankan project saya dengan vue-cli(kebetulan saya bekerja dengan vue-cli sekarang) dan dengan menggunakan WSL2 dalam mode debug di vue-cli hasilnya proses menjalankan di mode debug jauh lebih cepat daripada ketika saya build di Windows.

Yah saya tahu kalau saya cuma menulis tulisan ini tidak bisa menjadi tolak ukur karena saya tidak sempat untuk mengukur kecepatannya secara langsung (mungkin di next artikel). Namun jangan khawatir, saya juga membaca artikel yang sudah mengetes kecepatan WSL 2 ini kok, saya baca referensi dari artikel ini, di artikel tersebut dia menginstall create-react app dan hasil dia mengunduh aplikasi tersebut seperti ini :

  • Surface Book 2 dengan WSL 1: 257 detik
  • Surface Book 2 dengan WSL 2: 52 detik
  • 2015 MacBook Pro: 45 detik
  • 2018 MacBook Pro: 38 detik

Dari hasil tersebut terlihat perbedaan kecepatan WSL 2 mengingkat secara pesat dibandingkan dengan WSL 1, yang dimana WSL 1 butuh 257 detik sedangkan di WSL 2 hanya butuh 52 detik, Meskipun kecepatan WSL 2 ini masih kalah beberapa detik dengan Macbook pro, hei tapi itu tidak buruk bukan? bisa saja update kedepannya akan menambah kecepatannya lagi.

Tertolong dengan Windows terminal

Yaah meski ada WSL 2 dengan performa yang meningkat, namun masih ada masalah satu lagi yaitu terminal atau command prompt yang digunakan WSL2 tidak jauh berbeda dengan WSL1, yang menurut saya jelek terlebih di customization yang sudah saya sebutkan diatas tadi.

Untungnya Microsoft juga mengerti hal itu dan mereka sudah menyediakan aplikasi untuk menghandle terminal WSL, powerShell, git bash dan command prompt di Windows menjadi satu dengan menggunakan Windows terminal, dan kebetulan rilisnya juga berbarengan dengan update Windows dan WSL2 jadi momen aplikasi Windows terminal untuk digunakan sangat pas.

Ini tampilan dari Windows terminal dan support beberapa tab

Windows terminal sudah tersedia juga di Microsoft store, jadi buat teman-teman yang development di Windows bisa langsung menggunakannya, saya juga menyarankan menggunakan ini karena Windows terminal sudah mendukung tab dan bisa memilih terminal mana yang akan digunakan seperti yang saya sebutkan tadi selain itu juga customizenya sangat bebas kita bisa menambahkan command dan menambah tema sendiri.

Lalu bagaimana penggunaan ketika kerja? apakah sudah bisa digunakan?

Sebelum saya bahas pekerjaan perlu di ketahui juga bahwa WSL ini konsepnya sama dengan virtual machine, jadi folder, aplikasi dan strukturnya berdiri sendiri dan tidak tergantung dengan Windows. Meskipun WSL masih bisa membuka folder dan file yang ada di Windows namun WSL akan lebih mengutamakan aplikasi yang terinstall di WSL.

Hal tersebut menjadi masalah di awal ketika saya menggunakan WSL 1, hal ini saya alami ketika saya ingin membuka project di visual studio code yang saya letakkan di Windows bukan di dalam WSL, jadi ketika saya menjalankan perintah code . di WSL maka Vscode tidak akan berjalan.

Jangan khawatir masalah tersebut sudah hilang di WSL terbaru dan versi 2, karena WSL 2 akan menginstall aplikasi remote untuk meng trigger Vscode agar berjalan tentunya kita juga harus menginstall extention di Vscode yang ada di Windows yaitu “Remote WSL” untuk membantu Vscode meng-remote project yang ada pada WSL(mungkin ini akan saya bahas juga di artikel lain).

Debugging dan akses localhost juga berjalan normal (Yah meski saya harus mematikan WSL dulu, kemudian dinyalakan) karena memang koneksi yang di WSL juga terhubung di Windows, semisal kita running app vue-cli yang running di http://localhost:3000 dari WSL maka kalau kita buka link tersebut di Browser Windows maka akan berjalan dengan lancar.

Nah dari situ saya mulai menggunakan WSL 2 ini saat mengajar di bootcamp coding saja, lebih tepatnya hanya coding yang menurut saya ringan-ringan saja. Saya juga belum test dengan project lain dan project dengan skala yang lebih besar karena masalah waktu dan environmentnya juga perlu disiapkan, setidaknya WSL 2 membantu saya mengajar framewrok Vue karena proses debugnya yang cepat daripada Windows.

Meski bisa di buat kerja, namun project yang saya gunakan kerja itu hanya bisa dilakukan kalau project tersebut berada di WSL di luar itu atau di dalam Windows tidak akan bekerja. Hal ini saya alami ketika saya menjalankan project vue-cli yang saya build di Windows dan berhasil saya jalankan di Windows tanpa ada masalah, lalu saya coba menjalankannya melalui WSL.

Memang benar aplikasi tersebut tetap bisa berjalan namun ketika saya mengubah code tersebut code yang saya ubah harusnya ketika saya cek di Browser berubah malah tidak berubah, saya lalu melakukan beberapa percobaan :

  • mematikan project tersebut lalu saya jalankan, eh baru bekerja,
  • memindahkan project tersebut ke WSL, saya jalankan projectnya lalu saya ubah codenya dan berjalan dengan seharusnya

Saya juga masih belum menemukan solusi issue ini di github WSL atau bahkan bisa juga konsep saya yang salah karena menganggap project di Windows bisa running di Linux(yang jelas environmentnya yang berbeda) karena menggunakan WSL.

Kesimpulan

Dengan adanya WSL ini sudah sangat membantu developer untuk melakukan development di sistem operasi Windows tanpa harus melakukan dual boot. Terlebih ketika sudah tersedianya di versi 2 yang memberikan update besar-besaran dari performa, kecepatan download, kecepatan menjalankan project. Selain itu juga dukungan dari Microsoft seperti Windows terminal dan extension untuk menghubungkan ke WSL ini sudah cukup menarik perhatian developer.

Selama penggunaan WSL2 untuk development vue-cli yang tergolong project kecil dan menengah saya tidak menemukan masalah yang berhubungan dengan performa dan masalah teknis lainnya, dan bisa dibilang saya juga tidak ragu untuk menggunakannya di ruang lingkup pekerjaan.

mungkin nanti jika sudah di project besar saya akan membuat artikelnya sendiri, namun sebelum itu saya mau melakukan riset dengan golang karena saya sempat mencampur aduk environment golang yang ada di Windows dengan di Linux 🤣 kalau dari test sederhana sih berhasil cuma klo menjalankan project saya belum coba.

Sumber :

--

--