Elm 0.19.2, derleme hızını iyileştiriyor
(elm-lang.org)- Elm 0.19.2, Elm 1.0’a giden yolda derleyici iyileştirmelerini bir dizi küçük sürüm ile yansıtma sürecinin ilk adımı
- Büyük Elm kod tabanlarında sıfırdan derleme 5,7 saniye, sonraki artımlı derlemeler ise 350 ms’nin altında ölçüldü; bu da geliştirme sırasında odak akışının bölünme olasılığını azaltıyor
- Bu iyileştirme, ayrıştırma sırasında ayırmaları azaltmaya odaklandı; 850 bin satırlık bir deneyde GC kopyalama miktarında %20 azalma, tepe bellek kullanımında %10 azalma ve toplam hızda %7 artış gözlendi
- Gerçek proje testlerinde iyileşme oranı değişkenlik gösterdi; 351 modülü sıfırdan derleyen bir örnekte süre 4,981 saniyeden 2,595 saniyeye düşerek 1,9 kat hızlandı
- Acadia çalışmasından çıkan performans ve dil fikirleri ileride uyumluluğu bozmayan sürümler ile sırayla yansıtılacak ve son rötuşların ardından Elm 1.0’a geçilmesi planlanıyor
Elm 0.19.2’de derleme hızlandı
- Elm 0.19.2, birikmiş derleyici iyileştirmelerini Elm’e küçük parçalar hâlinde yansıtan ilk sürüm
- Hızlı bir derleyici, geliştiricinin tarayıcı sekmesine geçip odağını kaybettiği durumları azaltır
- Artımlı derleme 400 ms’nin altında olduğunda başka bir işe geçmek için neredeyse hiç fırsat kalmaz
- 850 bin satırlık Elm kodu bazında performans şöyle
- Sıfırdan derleme: 5,7 saniye
- Artımlı derleme: 350 ms’nin altında
- Asıl değişiklik, ayrıştırma sırasında ayırmaları azaltma çalışmasına odaklandı
- GC kopyalama miktarında %20 azalma
- Tepe bellek kullanımında %10 azalma
- Toplam hızda %7 artış
- 500 bin satırı aşan programlarda ölçülü bir iyileşme beklenebilir; daha küçük programlarda ise Elm derleyicisi hâlâ oldukça hızlı
- Gerçek ortam testlerinde iyileşme oranı projeden projeye değişti
- Bazı projelerde küçük iyileşmeler görüldü
- 351 modülü sıfırdan derleyen durumda süre 4,981 saniyeden 2,595 saniyeye düşerek 1,9 kat iyileşti
- Yeni sürüm Elm compiler 0.19.2 sürümünden indirilebilir
Elm 1.0’a giden sonraki sürümler
- Acadia adlı veritabanıyla ilgili derleyici çalışmasından elde edilen fikirlerin Elm’de de kullanılması planlanıyor
- Acadia şu anda kapalı alfa aşamasında
- Kamuya açık paylaşımın bu yılın sonlarında yapılması planlanıyor
- Elm’e yansıtılacak fikirler hem performans iyileştirmelerini hem de dil özelliklerini kapsıyor
- Örnek: daha hızlı parser
- Örnek:
equatable,hashabletipleri
- Bu değişiklikler, Elm’e doğal biçimde entegre edilebilmeleri için uyumluluğu bozmayan küçük sürümler serisiyle yansıtılacak
- Son rötuş aşamasında Elm 1.0’a geçilmesi planlanıyor
- Elm ile yeni tanışan kullanıcılar çevrimiçi örnekler ve rehber ile başlayabilir
- Elm 0.19.2 bir yama sürümü olduğundan mevcut projelerde yeni sürüm indirilip hemen kullanılabilir
2 yorum
Hacker News yorumları
Elm’i bugünlerde daha çok etkisi büyük bir araştırma dili gibi görüyorum.
Odağı çok net; herkese açık bir yol haritası ya da resmî destek yok ve liderlik de topluluk ya da çekirdek ekip oluşturmaya pek ilgi göstermiyor gibi.
Yine de onunla çalışmak gerçekten çok keyifli ve bunun sonucunda birçok fork ve türev proje ortaya çıktı. Yakın zamanda Gleam konferansında Louis Pilfold, “Elm kullanıcıları kendi derleyicilerini ayrı ayrı sürdürüyor” diye şaka yaptı; gerçekte en az 6 tane var ve geçen ay 2 tane daha duyuruldu.
Evan’ın 1.0’a doğru ilerlemesi sevindirici; umarım Elm’i “tamamlanmış” olarak adlandırdıktan sonra ardıl projelerden biri fork’ları birleştirip topluluğu büyütme gibi zor işi üstlenebilir.
Kişisel olarak bir dahaki sefere Elm’e benzer bir şey ararsam Gleam + Lustre’a bakmayı düşünüyorum. Topluluğu ve tasarımı önemseyen bakımcı kombinasyonu iyi görünüyor; ayrıca hem frontend hem backend tarafında çalışıyor.
Bir dönem büyük bir hevesle tanıtılıyordu; çok sayıda blog yazısı ve sunum vardı, heyecan ve benimseme de oldukça yüksekti.
Sonra yazarı fiilen ortadan kayboldu ve proje durdu.
Elbette kendi projesi olduğu için bunu yapma hakkı var, ama bence beklentileri en baştan daha iyi belirlemeliydi. Aktif tanıtım fikirlerin yayılmasına yardımcı oldu, fakat geliştiricilerin bir anda terk edilmiş hissetmesine de yol açtı.
İkinci en iyi yanı ise “derleniyorsa çalışır” felsefesi. Açıkçası Rust’ın büyük bölümünde de benzer bir his alabiliyorsunuz. Haskell hissi daha az, ama fonksiyonel atalarının sıcak gölgesi yine de var.
Elm iyi bir dil, ama Evan gerçekten yararlı bir şey yapmaya ilgi duymuyor gibi ve dilin yönetimi genel olarak berbat.
2023’te neden hâlâ Elm kullandığıma dair bir yazı yazmıştım.
https://taylor.town/elm-2023
2026’da da aynı nedenlerle Elm kullanmaya devam ediyorum :)
Ayrıca Claude’un Elm ile çok iyi anlaştığını düşünüyorum.
https://taylor.town/diggit-000
Yaklaşık 2 yıl önce, sevdiğim dil Elm ile tarayıcı için bir Snake oyunu ChatGPT vibe-coding ile yapmayı denediğim bir deney yapmıştım.
O zamanlar oldukça kabaydı ve büyük dil modellerinin Elm’i öldürebileceği sonucuna varmıştım.
Şimdi Elm’i production’da kullanıyorum ve büyük dil modelleri çok daha iyi hâle geldi. Hatta Elm’in şu anda büyük dil modelleri için ideal bir dil olduğunu, bu yüzden benimsenmesini artırabileceğini düşünüyorum. Çünkü çoğu dilden daha basit, kararlı ve dilin içinde güçlü görüşlere sahip bir mimari var; bu da codebase’lerin birbirine çok benzemesini sağlıyor.
Rust ile de daha fazla şey yapmaya başladım ve Rust dokümantasyonunu daha çok okuyorum. Büyük dil modelleri, onları kullandığınız şeyin kendisini öğrenmemek için bir bahane olmamalı; böyle yapıyorsanız kötü bir mühendissiniz.
Büyük dil modelleri, aldığınız sonucu sürdürebilmeniz için araştırma ve öğrenme zamanı kazandırır. Problemi anlıyorsanız prompt’ları da daha iyi yazabilirsiniz.
Sonuçta eğitim verisinde ve RLHF’de Elm’in ne kadar yer aldığına bağlı. Yapılandırılmış framework’lerin ya da dillerin, codebase’ler daha benzer olduğu için üretimi kolaylaştırdığına katılıyorum.
Ama bu tek başına yeterli değil; geliştirici benimsemesi genelde başlı başına çok daha karmaşık bir tartışma.
Python’ı çok iyi idare etmesi tuhaf gelmişti; Elm ise modern diller arasında en kararlı olanlardan biri. Hatta o kadar kararlı ki değişmediğinden şikâyet ediyoruz. Yine de son denemem yaklaşık 1 yıl önceydi, şimdi daha iyi olmuş olabileceğini düşünüyorum.
JavaScript ile ilgili sınırlamalar çözüldü mü? Hatırladığım kadarıyla JavaScript ile entegre olmak için Elm’in Ports mekanizmasını kullanmak gerekiyordu ve doğrudan wrapper yazmaya izin verilmiyordu.
Birinin doğrudan JavaScript wrapper’ı ya da FFI yazılabilen bir fork yapmasıyla bir tartışma da çıkmıştı sanki.
Bu bilinçli bir tercih ve muhtemelen 1.0’a kadar, hatta sonrasında da korunacak.
Bu projenin hâlâ hayatta olduğunu bilmiyordum. Alay etmek için söylemiyorum ama çoktan bitti sanıyordum
Yani ölüydü; şimdi ise yeni yeni dirilmiş sayılır. Bu arada topluluğun epey sönümlendiğini sanıyorum
Çok popüler bir özellikti ama dilin kurucusu sevmediği için, topluluk güçlü biçimde korunmasını istemesine rağmen kaldırıldı.
Teknik açıdan muhtemelen doğru karardı ama sosyal açıdan hiç popüler değildi ve bence muhtemelen yanlış bir karardı
İşe girmeden önce bilmiyordum ama React, Redux vb. deneyimim olduğu için hızlıca öğrendim.
Elm topluluğu muhtemelen bunu bir özellik olarak adlandırır. 6–8 yıl önce yazılmış React kodunun ne kadarı bugün React araç zincirinde tamamen aynı şekilde sorunsuz çalışır?
Değerler bütünü tamamen farklı. 2026’daki iyi React kodu, 2016’dan beri derlenebilen Elm koduna benziyor
Elm’i öğreticiler dışında hiç kullanmadım ama yakın zamanda Gleam full-stack uygulaması yaptım ve çoğunlukla kodlama ajanlarından yararlandım. Başlarda kod yapısını epey sıkı denetledim; bu süreç oldukça iyi uydu
Elm 1.0’dan çok Elm 0.19 sonrası beni daha fazla meraklandırıyor. 0.19, Elm’in yazarının resmen onaylamadığı tüm native modülleri engelleyen sürümdü ve bana göre bu fiilen Elm’in sonunu işaret etti
1.0’a gidiş duyurusu olarak bundan daha kötüsünü düşünmek zor. Kimin umurunda? Yerelleştirme veya erişilebilirlik desteği yoksa bir UI framework’üne üretime hazır 1.0 demek mantıklı değil.
Üçüncü taraf katkıcıların tarayıcı API’lerini bağlayabileceği kapsamı sınırlamak, oyuncak projeler dışında Elm’in ivmesini öldürdü bence.
Şu anda üretim için bir şeyden çok Evan’ın derleyici fikirleriyle oynadığı bir sandbox gibi görünüyor
Yerelleştirmeyi, her dil için büyük bir record tutup bunu uygulamanın string kullanan her bölümüne ileterek yapıyoruz. Çoğul biçimler veya dile özgü özel durumlar için record içine basit fonksiyonlar koyabiliyorsunuz; bu da çok kullanışlı.
Erişilebilirliği ise iyi HTML, ports ve otomatik tamamlama typeahead gibi karmaşık durumlarda web component’leri birleştirerek sağlıyoruz
Öte yandan 7 yıl boyunca hiçbir şey olmayıp ardından küçük bir derleyici performansı iyileştirmesi çıkarıp buna “1.0’a giden yol” demek biraz tuhaf. Kötü niyetle söylemiyorum ama neden uğraşılıyor? Zaten ölmüştü, yas tutuldu, herkes uzun zaman önce gitti.
Gerçekten şaşırtıcı bir sürüm gelene kadar pek çok kişinin umursayacağını sanmıyorum
Evan bir şeyi işaret ediyor ama herkes parmağa bakıyor gibi. Bence bu aslında Elm’in kendisinden çok Acadia hazırlığı ile ilgili.
Economics of Programming Languages sunumunda https://www.youtube.com/watch?v=XZ3w_jec1v8 son 7 yıldır üzerinde çalıştığı şeyi biraz gösteriyor. Fonksiyonel fikirleri uygulayan bir sorgu dili.
Web uygulamalarında tip bilgisinin genellikle bozulduğu sınırları işaret ediyor: dil ile depolama arasında, depolama ile aktarım arasında.
Bu sınırların ötesinde tip bilgisini koruyabilirsek ne elde ederiz? Verdiği yanıtlardan biri daha kolay migration. SQL’i elle yazmak yerine tip farklarıyla ele alınabiliyor.
Bu yüzden doğru soru bence Elm’e giren değişikliklere bakıp Acadia’nın nasıl görüneceğini çıkarıp çıkaramayacağımız. Artımlı derleme bir sorgu diline ne sağlar?
Fikirler ne kadar iyi olursa olsun, Arcadia daha geleceğe dönük ve topluluk odaklı bir geliştirme modeli sunmazsa kimse benimsemeyecek. En fazla “XYZ’ye ilham veren proje” olur.
Evan bunun bir sonraki büyük şey olduğunu düşünebilir ve gerçekten haklı da olabilir, ama Elm sonrası dünyanın yeterince kulak vereceğinden emin değilim
Belirli dil özelliklerini yalnızca Elm ekibinin kullanabilmesi kararını geri aldılar mı? Bu, dili öldürebilecek türden bir karar gibi görünmüştü
Elm’in çok ivme kaybettiğini düşünmek doğru mu? Artık HN’de de neredeyse hiç tartışılmıyor; sürümler ve haberler arasındaki aralığın büyük olmasının nedenlerinden biri bu mu merak ediyorum.
Sürüm aralıklarına bakınca 0.19.2 “Faster builds, and the Road to Elm 1.0” Temmuz 2026’da, 0.19.1 “Friendly syntax hints, faster builds” ise Ekim 2019’da çıkmış
Lobste.rs yorumları
Vay! Elm 0.19.1 21 Ekim 2019'da çıkmıştı; demek ki neredeyse 7 yıl önceydi ve bu aynı zamanda Elm geliştirmesiyle ilgili son kamuya açık haberdi
Projeden yeni haber görmek oldukça sevindirici
Bir yan projede Elm kullanmıştım ve gerçekten keyif almıştım, ama dışarıdan bakınca topluluk biraz sessiz görünüyordu. Çok heyecan verici bir haber
Elm web geliştirmeyi eğlenceli hale getirmişti
1.0'ın neler getireceğini merak ediyorum
Gerçekten çok hoş bir sürpriz
Elm'in kararlılığını her zaman sevmişimdir; 1.0 da radikal değişiklikler yapmayacak gibi görünüyor, bence bu iyi bir yön
==ve benzerleri artık herhangi bir tipi kabul etmeyecekse değiştirilmesi gereken epey Elm kodu olacaktır. Yükseltme sürecinin nasıl olacağını merak ediyorumElm güncellemesini görmek sevindirici
Bir programlama dilinin birkaç yıl boyunca hiç güncelleme almaması biraz sıra dışı. Sebebini anlıyorum ama kamu algısı tuhaf bir şey
Bu haber güzel
Zaman zaman modern frontend geliştirmenin çılgınlığından kaçmak için iyi bir mola gibi Elm'e yeniden bakıyorum
ZuriHac 2026'da Evan'ın sunumunu izleme fırsatım oldu; yeni bir Elm sürümünün yolda olduğunu ima edince gerçekten şaşırdım
Umarım video yakında yüklenir; fakat kararlılığı hedefleyen yaklaşımın bu sektörün hızlı ilerleme takıntısıyla pek uyuşmadığını anlamış gibiydi. Benim anladığım kadarıyla Elm daha küçük ve hızlı adımlar da atabilir. Heyecan verici ve o sunum Elm'i bana çok özletti
Elm'in
equatablevehashabletipleri gibi daha görünür özellikleri nasıl ele alacağını merak ediyorumDilin tartışmalı tasarım tercihlerinden biri, typeclass gibi daha güçlü Haskell tarzı tip sistemi özelliklerinden kaçınması. Kişisel olarak, doğal ve iyi tanımlı bir sırası olan özel tipleri bile sözlük anahtarı olarak kullanamamak bana hep rahatsız edici gelmişti. Yine de Elm üzerinde çalışmanın sürüyor olması genel olarak iyi haber
Blog yazısındaki ifadeden yola çıkarak, mevcut kısıtlı tip değişkenlerine, yani
number,appendable,comparable,compappend'e ek olarak birkaç yeni kısıtlı tip değişkeni eklenmesi gibi bir şey olacağını hayal ediyorum