Macbook

Beberapa minggu terakhir saya mulai menggunakan Macbook Pro M1 untuk kebutuhan software development dimana project yang sedang dibangun merupakan project lama sejak beberapa tahun lalu.

Tidak disangka ada banyak kendala yang belum pernah saya temui. Empat poin dibawah ini merupakan beberapa insight yang saya dapat saat menggunakan Macbook Pro M1 selama hampir sebulan dengan spesifikasi Mac M1 sebagai berikut.

  • Sistem Operasi: macOS Monterey version 12.1
  • Processor: 2,5 GHz Quad-Core Intel Core i7
  • RAM: 16 GB 1600 MHz DDR3
  • Graphics: AMD Radeon R9 M370X 2 GB

1. Kompatibilitas

Project yang saya kerjakan menggunakan bahasa pemrograman Ruby dimana project lama dan sudah berjalan di production sejak beberapa tahun lalu.

Bahasa pemrograman Ruby pada dasarnya dibuat dengan bahasa pemrograman C. Ketika ada library Ruby versi lama yang menggunakan native bahasa C, ada kejadian tidak dapat dikompilasi oleh C compiler pada Macbook Pro M1 karena beda arsitektur antara Intel dan ARM yang digunakan di M1.

Untungnya adalah Macbook Pro M1 sudah cukup lama rilis dari 2020 banyak dipakai untuk software development, sehingga solusinya cukup dengan update library dengan versi baru atau update versi Ruby.

2. Homebrew

Instalasi aplikasi melalui Homebrew di Macbook Pro M1 normal dan lancar. Namun, ada kasus dimana saya perlu secara manual mengarahkan library, entah kenapa instalasi lewat Homebrew tidak otomatis. Misal, salah satu library yang dibutuhkan perlu header librsync.h.

Normalnya cukup Install dengan brew install librsync, di Macbook Pro M1 saya perlu mengarahkan include path seperti dibawah.

C_INCLUDE_PATH=/opt/homebrew/Cellar/librsync/2.3.2/include bundle install

3. Docker

Untuk mengatasi isu kompatibilitas, saya mencoba melakukan eksperimen dengan memasang Vagrant saat instalasi project. Namun karena dependensi Vagrant yang saya gunakan yaitu VirtualBox belum bisa dijalankan di Macbook Pro M1, akhirnya saya urungkan dan mencoba pakai Docker.

Dengan Docker, tanpa melakukan update versi library atau Ruby saya berhasil melakukan instalasi project pada Mac M1. Berikut contoh perintah dengan menggunakan Docker.

docker run <OPTIONS> bundle install
docker run <OPTIONS> bundle exec rails console

Walau begitu, hingga saat ini saya masih belum berhasil konfigurasi Docker dengan Selenium karena Selenium dipasang dengan Docker belum didukung untuk berjalan di Macbook M1.

4. Booting

Saya melakukan perbandingan booting Macbook Pro model 2015 dengan processor Intel dengan RAM 16 GB juga hingga tampilan login muncul, ternyata Mac M1 jauh lebih lambat sekitar 20-30 detik.

Jujur saya kaget karena ekspektasi saya Macbook Pro M1 jauh lebih cepat. Selain booting, saya belum melakukan perbandingan, namun sejauh ini perbedaan mencolok adalah kipas Macbook tidak pernah terdengar pada Macbook Pro M1.