2 poin oleh GN⁺ 2023-11-11 | 1 komentar | Bagikan ke WhatsApp

Beralih ke Elixir

  • Di tempat kerja baru, Elixir digunakan sebagai bahasa backend utama.
  • Tidak memiliki pengalaman dengan Elixir maupun Erlang, tetapi mudah dipelajari berkat sintaksnya yang mirip Ruby.
  • Menghindari masalah manajemen state pada bahasa berorientasi objek, sekaligus menikmati keunggulan immutability dan pemrograman fungsional.

Kelebihan Elixir

  • Kode dengan state yang dapat berubah sulit dipelihara.
  • Elixir mendukung DSL seperti Ruby, tetapi menggunakan macro waktu kompilasi untuk menghasilkan kode saat runtime.
  • Bahkan tanpa menulis pengujian, kesalahan penggunaan macro dapat ditemukan pada waktu kompilasi.

Sintaks dan Ekspresi

  • Sintaks pipeline di Elixir bagus, tetapi operator 'threading' di Clojure lebih disukai.
  • Melalui ekspresi with, fungsi yang kompleks dapat dibagi menjadi jalur sukses dan bagian penanganan error.

Penanganan Eksepsi

  • Di Ruby, penggunaan eksepsi untuk alur kontrol adalah hal yang umum.
  • Di Elixir, alih-alih eksepsi, Result / Either monad digunakan sehingga ok dan error dipakai sebagai nilai kembalian.

Pendapat GN⁺

Hal terpenting dari tulisan ini adalah kesenangan dalam pemrograman dan kemudahan pemeliharaan yang dimiliki bahasa Elixir. Menarik bagaimana Elixir menyelesaikan masalah kompleks manajemen state pada bahasa berorientasi objek, lalu meningkatkan stabilitas dan keterbacaan kode melalui immutability dan pemrograman fungsional. Secara khusus, sistem macro yang dapat menemukan kesalahan pada waktu kompilasi memberi pengembang lingkungan penulisan kode yang lebih andal. Karakteristik ini juga akan membuat engineer perangkat lunak pemula merasakan daya tarik mempelajari bahasa Elixir.

1 komentar

 
GN⁺ 2023-11-11
Komentar Hacker News
  • Minat terhadap bahasa Elixir meningkat dalam beberapa minggu terakhir lewat video YouTube.

    • Elixir disukai karena ide-ide dari Erlang, tetapi pengalaman saat benar-benar menggunakannya terasa agak ganjil.
    • Ada pandangan positif terhadap proses yang terisolasi dan penyampaian pesan (Actors) sebagai masa depan pemrograman terdistribusi.
    • Menyukai fitur pattern matching, tetapi skeptis terhadap "sihir" seperti LiveView dan LiveBook di Elixir.
    • Merasa asing dengan istilah dan konsep khas Elixir seperti GenServers.
    • Menyadari risiko komunitas yang kecil, tetapi memuji pencapaian komunitas tersebut.
    • Mengungkapkan harapan terhadap implementasi sistem tipe.
  • Sebagai keunggulan utama Elixir/Erlang, kemudahan pekerjaan latar belakang sangat ditekankan.

    • Dari pengalaman di tempat kerja sebelumnya, disadari bahwa dengan menggunakan Task di Elixir, server bisa menangani permintaan HTTP tanpa berhenti.
  • Kekuatan bahasa ini ditekankan melalui presentasi Sasa Juric, "The Soul of Erlang and Elixir".

  • Berbagi pengalaman telah menggunakan Erlang sejak 1991.

    • Sudah mencoba bahasa lain juga, tetapi Erlang adalah bahasa yang paling menyenangkan.
    • Berencana terus menggunakan Erlang sampai pensiun.
  • Belajar dan menggunakan Elixir terasa menyenangkan, dan ada kepuasan terhadap kesederhanaan serta fungsionalitas BEAM/OTP.

  • Sebagai kelebihan Elixir, ditekankan keseruannya seperti Ruby serta sifat immutable dan fungsional yang menghilangkan kelemahan pemrograman berorientasi objek.

    • Dengan berharap adanya penambahan sistem tipe, diharapkan pemahaman terhadap codebase besar akan meningkat.
  • Menunjukkan adanya kesalahpahaman tentang penggunaan exception sebagai alur kontrol di Ruby.

  • Sebagai pengguna F#, mengungkapkan bahwa Elixir terasa membingungkan.

    • Karena signature fungsi tidak memberikan informasi tipe, penggunaan di library besar terasa sulit.
    • Mengajukan pertanyaan tentang daya tarik utama Elixir.
  • Dari pengalaman menggunakan Elixir, ditekankan bahwa bahasa ini mudah dipelajari, serta memiliki keunggulan pattern matching dan data immutable.

    • Pernah merasakan bahwa bahasa ini sangat unggul saat membangun sistem CQRS.
    • Memuji kestabilan BEAM dan cara GenServer menangani kesalahan.
  • Memberikan peringatan terhadap optimisme pada tahap awal terhadap teknologi baru.

    • Menyarankan untuk berbagi pengalaman setelah benar-benar menggunakannya dalam waktu lama.