1 poin oleh GN⁺ 5 jam lalu | 2 komentar | Bagikan ke WhatsApp
  • Elm 0.19.2 adalah langkah pertama dalam alur untuk menghadirkan peningkatan compiler lewat beberapa rilis kecil sebelum menuju Elm 1.0
  • Pada codebase Elm berskala besar, kompilasi dari awal terukur 5,7 detik, sementara build inkremental berikutnya di bawah 350 ms, sehingga lebih kecil kemungkinannya mengganggu fokus saat pengembangan
  • Peningkatan kali ini berfokus pada pengurangan alokasi saat parsing; dalam eksperimen 850 ribu baris, jumlah penyalinan GC turun 20%, penggunaan memori puncak turun 10%, dan kecepatan keseluruhan naik 7%
  • Dalam pengujian pada proyek nyata, besarnya peningkatan bervariasi; pada kasus kompilasi 351 modul dari awal, waktu turun dari 4,981 detik menjadi 2,595 detik, 1,9 kali lebih cepat
  • Ide performa dan bahasa yang muncul dari pekerjaan Acadia akan diterapkan bertahap ke depannya lewat rilis yang tidak memutus kompatibilitas, lalu setelah penyempurnaan akhir akan berlanjut ke Elm 1.0

Kompilasi lebih cepat di Elm 0.19.2

  • Elm 0.19.2 adalah rilis pertama yang menghadirkan akumulasi peningkatan compiler ke Elm dalam satuan kecil
  • Compiler yang cepat mengurangi situasi ketika developer beralih ke tab browser dan kehilangan fokus
    • Jika kompilasi inkremental di bawah 400 ms, hampir tidak ada celah untuk berpindah ke pekerjaan lain
  • Performa berdasarkan 850 ribu baris kode Elm adalah sebagai berikut
    • Kompilasi dari awal: 5,7 detik
    • Build inkremental: di bawah 350 ms
  • Perubahan nyata berfokus pada pengurangan alokasi saat parsing
    • Jumlah penyalinan GC turun 20%
    • Penggunaan memori puncak turun 10%
    • Kecepatan keseluruhan naik 7%
  • Pada program di atas 500 ribu baris, peningkatan moderat bisa diharapkan; pada program yang lebih kecil, compiler Elm tetap tergolong sangat cepat
  • Dalam pengujian di lingkungan nyata, besarnya peningkatan berbeda-beda antarproyek
    • Sebagian proyek mengalami peningkatan kecil
    • Untuk kompilasi 351 modul dari awal, waktu turun dari 4,981 detik menjadi 2,595 detik, atau meningkat 1,9 kali
  • Versi baru dapat diperoleh dari rilis Elm compiler 0.19.2

Rilis-rilis berikutnya menuju Elm 1.0

  • Ide dari pekerjaan compiler terkait database bernama Acadia akan dimanfaatkan juga di Elm
    • Acadia saat ini berada dalam status alfa privat
    • Berbagi secara publik dijadwalkan pada akhir tahun ini
  • Ide yang akan diterapkan ke Elm mencakup peningkatan performa dan fitur bahasa
    • Contoh: parser yang lebih cepat
    • Contoh: tipe equatable, hashable
  • Perubahan seperti ini akan diterapkan sebagai rangkaian rilis kecil yang tidak memutus kompatibilitas agar terintegrasi secara natural ke Elm
  • Pada tahap penyempurnaan akhir, rencananya Elm akan beralih ke 1.0
  • Pengguna yang baru mengenal Elm dapat memulai dari contoh online dan panduan
  • Elm 0.19.2 adalah rilis patch, sehingga proyek yang sudah ada dapat langsung mengunduh dan menggunakan versi baru

2 komentar

 
GN⁺ 4 jam lalu
Opini Hacker News
  • Belakangan ini Elm lebih saya lihat sebagai bahasa riset yang berpengaruh besar
    Fokusnya jelas, tidak ada roadmap publik atau dukungan resmi, dan kepemimpinannya tampak hampir tidak tertarik membangun komunitas atau core team
    Namun pengalaman menggunakannya benar-benar enak, dan sebagai hasilnya muncul beberapa fork serta proyek turunan. Di konferensi Gleam baru-baru ini, Louis Pilfold bercanda bahwa “pengguna Elm masing-masing memelihara compiler mereka sendiri”; kenyataannya memang ada setidaknya 6, dan bulan lalu 2 lagi diumumkan
    Senang melihat Evan bergerak menuju 1.0, dan saya berharap setelah menyebut Elm sebagai “selesai”, salah satu proyek penerus bisa mengambil pekerjaan sulit untuk menyatukan fork dan membesarkan komunitas
    Secara pribadi, kalau nanti mencari sesuatu yang mirip Elm, saya akan melihat Gleam + Lustre. Kombinasi maintainer yang peduli pada komunitas dan desain terlihat bagus, dan berjalan baik di frontend maupun backend

    • Jejak perjalanan Elm memang cukup aneh, tetapi menyebutnya bahasa riset rasanya tepat
      Dulu pernah dipromosikan dengan sangat antusias, ada banyak tulisan blog dan presentasi, serta cukup banyak semangat dan adopsi
      Lalu pembuatnya pada dasarnya menghilang dan proyeknya mandek
      Tentu saja itu proyeknya sendiri, jadi ia berhak begitu, tetapi menurut saya ekspektasi seharusnya ditetapkan lebih baik sejak awal. Promosi yang aktif memang membantu menyebarkan ide, tetapi juga membuat para developer merasa tiba-tiba ditinggalkan
    • Hal terbaik dari Elm adalah nuansanya sangat mirip Haskell. Beberapa tahun lalu saya membuat hal-hal menarik dengan Elm
      Hal terbaik kedua adalah filosofi “kalau berhasil dikompilasi, maka berjalan”. Sejujurnya, di sebagian besar Rust pun saya bisa mendapat perasaan serupa. Nuansa Haskell-nya lebih sedikit, tetapi masih ada semacam bayangan hangat dari leluhur fungsionalnya
    • Gren terlihat sebagai penerus yang cukup mumpuni, dan komunitasnya juga aktif serta sangat membantu
    • Saya juga salah satunya. Saya memperluas bahasanya dengan beberapa fitur kenyamanan, dan pada dasarnya membuatnya mendukung dependency injection melalui kanal error yang tepat serta sum type yang bisa dihapus
      Elm adalah bahasa yang bagus, tetapi Evan tampaknya tidak tertarik membuat sesuatu yang benar-benar berguna, dan pengelolaan bahasanya secara keseluruhan berantakan
    • Karena Elm begitu bagus, orang-orang tampaknya kecewa dengan stagnasinya. Namun stagnasi itu juga yang membuat Elm bagus
  • Pada 2023 saya menulis tentang mengapa saya masih memakai Elm
    https://taylor.town/elm-2023
    Sekarang, pada 2026, saya masih terus memakai Elm karena alasan yang sama :)
    Sebagai bonus, Claude tampaknya sangat cocok dengan Elm
    https://taylor.town/diggit-000

  • Sekitar 2 tahun lalu, saya bereksperimen membuat game Snake untuk browser dengan bahasa favorit saya, Elm, lewat vibe coding dengan ChatGPT
    Saat itu hasilnya masih cukup kasar, dan saya menyimpulkan bahwa model bahasa besar bisa saja membunuh Elm
    Sekarang saya memakai Elm di produksi, dan model bahasa besar sudah jauh lebih baik. Justru menurut saya Elm saat ini adalah bahasa yang ideal untuk model bahasa besar, sehingga mungkin malah bisa meningkatkan adopsinya. Sebab Elm lebih sederhana daripada kebanyakan bahasa, stabil, dan memiliki arsitektur yang sangat beropini di dalam bahasanya, sehingga codebase-codebase menjadi sangat mirip satu sama lain

    • Berkat AI, saya juga makin mendalami musik, membeli keyboard MIDI, dan menyiapkan software DAW yang layak
      Saya juga jadi lebih banyak membuat sesuatu dengan Rust dan lebih banyak membaca dokumentasi Rust. Model bahasa besar tidak boleh menjadi alasan untuk tidak mempelajari hal yang sedang kita pakai; kalau begitu, kita engineer yang buruk
      Model bahasa besar memberi waktu untuk meneliti dan belajar agar kita bisa memelihara hasil yang diterima. Jika memahami masalahnya, kita juga bisa menulis prompt dengan lebih baik
    • Pernyataan bahwa model bahasa besar bisa meningkatkan adopsi Elm itu benar sekaligus tidak
      Pada akhirnya itu bergantung pada seberapa banyak Elm ada dalam data pelatihan dan RLHF. Saya setuju bahwa framework atau bahasa yang terstruktur membuat codebase lebih mirip sehingga lebih mudah digenerasi
      Namun itu saja tidak cukup, dan biasanya adopsi developer sendiri merupakan diskursus yang jauh lebih kompleks
    • Mungkin sudah membaik, tetapi saya sangat kecewa melihat agent seperti Claude Code terus tersandung pada whitespace yang bermakna di Elm
      Rasanya aneh karena ia sangat mahir menangani Python, dan Elm termasuk bahasa modern yang paling stabil. Saking stabilnya sampai orang mengeluh bahwa Elm tidak berubah. Namun terakhir saya mencobanya sekitar 1 tahun lalu, jadi saya rasa sekarang mungkin sudah lebih baik
    • Sudut pandang itu masuk akal. Saya belum pernah memikirkannya seperti itu, tetapi kalau ekosistemnya tidak bergerak maju, saya tetap akan ragu
  • Apakah batasan terkait JavaScript sudah diatasi? Seingat saya, untuk berinteraksi dengan JavaScript harus memakai mekanisme Ports milik Elm, dan sepertinya mereka mencegah kita menulis wrapper langsung
    Sepertinya juga pernah ada kontroversi ketika seseorang membuat fork agar bisa menulis wrapper JavaScript langsung atau FFI

    • FFI masih sebagian besar ditangani dengan ports. Untuk sisi view, kadang juga memakai web components
      Ini pilihan yang disengaja, dan kemungkinan besar akan tetap dipertahankan sampai 1.0, bahkan setelahnya
  • Saya tidak menyangka proyek ini masih hidup. Bukan bermaksud menyindir, tapi saya kira sudah berakhir

    • Proyeknya memang sudah mati. Rilis sebelumnya 7 tahun lalu, dan setelah penciptanya berhenti memelihara, komunitas tidak bisa melampaui model BDFL sehingga semuanya berhenti begitu saja
      Jadi memang sudah mati, dan sekarang bisa dibilang baru saja bangkit kembali. Setahu saya, komunitasnya sudah banyak meredup selama itu
    • Saya tidak terlalu terlibat mendalam di komunitas, tetapi saya kenal orang-orang yang ikut saat itu, dan sejauh pemahaman saya, penghapusan operator infix kustom membuat banyak dukungan komunitas hilang
      Itu fitur yang sangat populer, tetapi dihapus hanya karena pencipta bahasanya tidak menyukainya, meskipun komunitas sangat meminta agar fitur itu dipertahankan
      Secara teknis mungkin keputusan yang benar, tetapi secara sosial sangat tidak populer dan menurut saya mungkin keputusan yang keliru
    • Senang melihatnya kembali. Elm selalu punya keanggunan luar biasa yang membuat saya ingin mendukungnya
    • Selama 2 tahun terakhir saya memakai Elm secara profesional di perusahaan yang sangat menguntungkan dan ramping
      Sebelum bergabung saya belum mengenalnya, tetapi karena punya pengalaman dengan React, Redux, dan sebagainya, saya cepat mempelajarinya
      Komunitas Elm mungkin akan menyebut ini sebagai fitur. Dari kode React yang ditulis 6–8 tahun lalu, berapa banyak yang hari ini masih berjalan sepenuhnya sama baiknya di toolchain React modern?
      Nilai-nilainya benar-benar berbeda. Kode React yang baik pada 2026 terlihat mirip dengan kode Elm yang masih bisa dikompilasi sejak 2016
    • Saya juga mengira komunitas di sekitar Elm pada dasarnya sudah hilang. Meski begitu, sepertinya maintainer tunggal sekaligus penciptanya masih ada
      Saya belum pernah memakai Elm selain tutorial, tetapi belakangan ini saya membuat aplikasi full-stack Gleam dan sebagian besar memanfaatkan agen pengodean. Di awal saya mengendalikan struktur kode dengan cukup ketat, dan proses itu ternyata cukup cocok
  • Saya lebih penasaran dengan setelah Elm 0.19 daripada Elm 1.0. 0.19 adalah versi yang memblokir semua modul native yang tidak disetujui secara resmi oleh penulis Elm, dan menurut saya itu pada dasarnya menandai akhir Elm

  • Sulit membayangkan pengumuman menuju 1.0 yang lebih buruk dari ini. Siapa yang peduli? Tanpa lokalisasi atau dukungan aksesibilitas, tidak masuk akal menyebut sebuah framework UI siap produksi sebagai 1.0
    Menurut saya, membatasi sejauh mana kontributor pihak ketiga bisa menghubungkan API browser telah membunuh momentum Elm di luar proyek mainan
    Sekarang ini lebih terlihat seperti sandbox bagi Evan untuk bermain-main dengan ide compiler daripada sesuatu untuk produksi

    • Menurut saya itu tidak akurat. Aplikasi Elm yang saya pelihara sepenuhnya terlokalisasi, dan saya rasa aksesibilitasnya juga cukup baik
      Lokalisasi ditangani dengan menaruh satu record besar per bahasa, lalu meneruskannya ke tiap bagian aplikasi yang memakai string. Untuk bentuk jamak atau kasus khusus per bahasa, kita bisa menaruh fungsi sederhana di dalam record, dan itu sangat praktis
      Aksesibilitas dicapai dengan kombinasi HTML yang baik, ports, dan untuk kasus yang rumit seperti autocomplete typeahead, web components
    • Biarkan saja mereka membangunnya. Orang yang benar-benar paham akan mengenalinya saat sudah siap, dan orang yang terbawa tren memang tidak bisa diselamatkan
    • Di satu sisi, senang melihat Evan baik-baik saja. Ia punya sejumlah ide yang cukup bagus tentang pengembangan bahasa, dan Elm telah menginspirasi banyak proyek yang sangat menarik
      Di sisi lain, setelah 7 tahun tanpa apa-apa, merilis satu peningkatan kecil performa compiler lalu menyebutnya “jalan menuju 1.0” terasa agak begitu. Tidak bermaksud jahat, tapi untuk apa? Sudah mati, sudah selesai diratapi, dan semua orang sudah lama pergi
      Sepertinya banyak orang tidak akan peduli sampai ada rilis yang benar-benar mengejutkan
  • Sepertinya Evan sedang menunjuk sesuatu, tetapi semua orang hanya melihat jarinya. Saya pikir ini sebenarnya bukan tentang Elm itu sendiri, melainkan persiapan Acadia
    Dalam presentasinya Economics of Programming Languages https://www.youtube.com/watch?v=XZ3w_jec1v8, ia memberi sedikit gambaran tentang apa yang ia kerjakan selama 7 tahun terakhir. Itu adalah bahasa kueri yang menerapkan ide-ide fungsional
    Ia menunjukkan batas-batas di aplikasi web tempat informasi tipe biasanya terputus: antara bahasa dan penyimpanan, serta antara penyimpanan dan transport
    Apa yang bisa kita dapatkan jika informasi tipe dapat dipertahankan melintasi batas-batas ini? Salah satu jawaban yang ia berikan adalah migrasi yang lebih mudah. Alih-alih menulis SQL secara manual, hal itu bisa ditangani lewat perbedaan tipe
    Jadi menurut saya pertanyaan yang tepat adalah apakah kita bisa melihat perubahan yang masuk ke Elm dan menyimpulkan seperti apa Acadia nantinya. Apa yang akan diberikan kompilasi inkremental kepada bahasa kueri?

    • Mengingat sejarah Elm, mengapa kita harus percaya Arcadia tidak akan berakhir sama?
      Sebagus apa pun idenya, jika Arcadia tidak memiliki model pengembangan yang lebih berorientasi masa depan dan berpusat pada komunitas, tidak ada yang akan mengadopsinya. Paling banter hanya menjadi “proyek yang menginspirasi XYZ”
      Evan mungkin menganggap ini sebagai hal besar berikutnya, dan bisa saja ia benar, tetapi saya tidak tahu apakah dunia pasca-Elm akan cukup mau mendengarkan
  • Apakah keputusan yang membuat fitur bahasa tertentu hanya bisa dipakai oleh tim Elm saja sudah dibatalkan? Itu tampak seperti keputusan yang bisa membunuh bahasa

  • Apakah benar kalau dikatakan Elm sudah kehilangan banyak momentum? Sekarang hampir tidak dibahas di HN, dan saya penasaran apakah itu salah satu alasan jarak antara rilis dan kabarnya begitu panjang
    Jika melihat jarak rilis, 0.19.2 “Faster builds, and the Road to Elm 1.0” ada pada Juli 2026, sedangkan 0.19.1 “Friendly syntax hints, faster builds” ada pada Oktober 2019

 
GN⁺ 5 jam lalu
Pendapat di Lobste.rs
  • Wow! Elm 0.19.1 dirilis pada 21 Oktober 2019, jadi sudah hampir 7 tahun lalu, dan itu juga merupakan kabar publik terakhir tentang pengembangan Elm
    Senang sekali melihat kabar baru dari proyek ini

    • Sangat menantikan Evan yang katanya sedang merencanakan rilis v1
    • Aku juga datang untuk mengatakan ini
      Saat mencoba Elm untuk proyek sampingan, rasanya sangat menyenangkan, tetapi dari luar komunitasnya tampak agak sunyi. Ini kabar yang sangat menggembirakan
  • Elm membuat pengembangan web terasa menyenangkan
    Penasaran apa yang akan dibawa 1.0

  • Ini benar-benar kejutan yang menyenangkan
    Aku selalu menyukai stabilitas Elm, dan 1.0 tampaknya juga tidak akan membawa perubahan radikal; secara pribadi menurutku itu arah yang baik

    • Breaking changes yang dijelaskan tampaknya bisa berdampak cukup besar
      Jika == dan sejenisnya tidak lagi menerima sembarang tipe, akan ada cukup banyak kode Elm yang perlu diubah. Penasaran seperti apa prosedur upgrade-nya nanti
  • Senang melihat pembaruan Elm
    Agak tidak lazim jika sebuah bahasa pemrograman tidak punya pembaruan sama sekali selama beberapa tahun. Alasannya bisa dimengerti, tetapi persepsi publik itu memang punya sisi yang aneh

    • Benar, terutama di frontend, tempat semuanya bergerak dengan kecepatan gila
  • Suka kabar ini
    Sesekali aku kembali melihat Elm seperti rehat yang menyenangkan dari kegilaan pengembangan frontend modern

  • Aku berkesempatan melihat presentasi Evan di ZuriHac 2026, dan benar-benar terkejut ketika ia mengisyaratkan bahwa rilis Elm baru akan datang
    Semoga videonya segera naik, tetapi sepertinya ia memahami bahwa pendekatan yang menargetkan stabilitas tidak terlalu cocok dengan obsesi industri ini terhadap kemajuan yang cepat. Sejauh yang kupahami, Elm mungkin akan mengambil langkah-langkah yang lebih kecil dan cepat. Aku antusias, dan presentasi itu membuatku sangat merindukan Elm

  • Penasaran bagaimana Elm akan menangani fitur yang lebih mencolok seperti tipe equatable dan hashable
    Salah satu pilihan desain bahasa ini yang kontroversial adalah menghindari fitur sistem tipe ala Haskell yang lebih kuat seperti typeclass. Secara pribadi, aku selalu merasa kurang nyaman karena bahkan tipe kustom yang punya urutan alami dan terdefinisi dengan baik pun tidak bisa dipakai sebagai key dictionary. Meski begitu, secara keseluruhan ini kabar baik bahwa pekerjaan pada Elm terus berlanjut

    • Sepertinya sebaiknya jangan terlalu berharap pada fitur ala typeclass
      Melihat ungkapan di posting blog tersebut, aku membayangkan kemungkinan hanya akan ada beberapa constrained type variables baru yang ditambahkan di samping constrained type variables yang sudah ada, yaitu number, appendable, comparable, compappend