2 poin oleh GN⁺ 2023-08-26 | 1 komentar | Bagikan ke WhatsApp
  • Penulis membagikan perjalanan meninggalkan Haskell, bahasa pemrograman fungsional yang telah ia gunakan selama 10 tahun sebagai software engineer.
  • Penulis tertarik pada kemampuan Haskell untuk memahami kode secara simbolik dan aljabar, serta sistem tipenya yang kuat.
  • Sistem tipe Haskell memungkinkan pemeriksaan tipe yang ketat tanpa terasa terlalu membatasi atau berisik, sehingga memudahkan penulisan dan pemeliharaan kode.
  • Penulis sangat menghargai kemampuan Haskell untuk mengekspresikan invarians melalui tipe, yang membuat compiler memeriksa ulang logika sehingga meningkatkan keamanan dan ketepatan kode.
  • Meski memiliki kelebihan tersebut, penulis meninggalkan Haskell karena tiga alasan utama: keinginan akan kebaruan gaya, tooling yang canggung, dan perubahan yang terus berlanjut.
  • Kebaruan gaya merujuk pada kecenderungan komunitas Haskell untuk bereksperimen dengan abstraksi baru, yang meski inovatif dapat membuat pemeliharaan kode menjadi lebih sulit.
  • Penulis menilai tooling Haskell sebagai "lumayan", tetapi menyebut tidak ada alat yang semudah dan sestabil cargo milik Rust.
  • Perubahan yang terus berlanjut di Haskell, khususnya revisi berkala yang tidak kompatibel ke belakang, menambah friksi dalam penggunaan bahasa tersebut.
  • Meski sudah meninggalkan Haskell, penulis tetap mengakui kekuatannya, yaitu kemampuan melakukan refactor kode secara aljabar, sistem tipenya, dan ekosistem library yang deklaratif.
  • Penulis menyimpulkan bahwa apakah seseorang sebaiknya memakai Haskell bergantung pada tujuan masing-masing, dan merekomendasikan untuk mempelajarinya agar menjadi programmer yang lebih baik, tetapi mengingatkan agar berhati-hati menjadikannya sebagai bahasa utama karena tantangan yang ia jelaskan.

1 komentar

 
GN⁺ 2023-08-26
Komentar Hacker News
  • Komunitas Haskell dikenal karena penekanannya yang kuat pada pembelajaran serta membangun lingkungan rasa ingin tahu dan berbagi pengetahuan.
  • Namun, komunitas ini sering kesulitan membuang ide setelah diuji, sehingga codebase Haskell profesional menjadi membingungkan.
  • Tooling Haskell sering dikritik, tetapi ada juga yang berpendapat bahwa sebagian besar bahasa pemrograman memiliki tooling yang lebih buruk.
  • Tooling Haskell memiliki fitur unik bernama Hoogle, yang sangat dihargai karena kegunaannya.
  • Perkembangan Haskell dan satu-satunya implementasi publiknya yang dianggap masuk akal, GHC, dikritik karena perubahan terus-menerus dan inkonsistensi.
  • Keterkaitan antara GHC dan versi tertentu dari pustaka standarnya, base, dipandang sebagai masalah karena memaksa perubahan dependensi saat versi GHC baru dirilis.
  • Hilangnya minat penulis pada Haskell dikaitkan dengan tiga faktor utama: kebaruan gaya, tooling yang canggung, dan perubahan yang terus berlanjut.
  • Dokumentasi dan tooling Haskell sulit untuk digunakan, dan peralihan komunitas dari Cabal ke Stack, lalu kembali ke Cabal, dianggap sebagai tanda perbaikan.
  • Bahasa pemrograman lain telah mengintegrasikan elemen pemrograman fungsional, sehingga menjadi lebih menarik bagi sebagian pengembang.
  • Beberapa pengembang berpindah dari Haskell ke F# karena menulis kode terasa lebih sederhana.
  • Haskell dianggap sulit dipelajari dan pustaka-pustakanya sering kali usang atau setengah matang.
  • Performa Haskell dikritik, dan evaluasi malas menyebabkan masalah memori serta kinerja yang lambat.
  • Bagi pengembang Haskell, prospek kerja dianggap terbatas karena sifat bahasanya yang sangat khusus.
  • Debugging di Haskell digambarkan menantang karena kompleksitas bahasanya.
  • Scala dianggap sebagai alternatif yang baik untuk Haskell, karena menawarkan keunggulan dari keduanya.
  • Sebagian orang mempertanyakan perlunya fitur bahasa tingkat lanjut dalam pekerjaan rekayasa perangkat lunak sehari-hari.
  • Fokus Haskell pada riset dan pencarian akademis dianggap berpotensi berbenturan dengan kebutuhan pemrograman praktis.
  • Postingan tersebut mengusulkan perlunya cara untuk memisahkan fitur eksperimental dan fitur stabil di Haskell.
  • Penulis mengatakan ia tidak merasa tertekan untuk menggunakan fitur tipe tingkat lanjut yang baru di Haskell, dan menyarankan untuk mengembangkan intuisi tentang seberapa jauh tipe kompleks perlu digunakan.