1 puan yazan GN⁺ 5 시간 전 | 2 yorum | WhatsApp'ta paylaş
  • 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, hashable tipleri
  • 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

 
GN⁺ 4 시간 전
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.

    • Elm’in izlediği yol epey tuhaftı ama ona araştırma dili demek doğru gibi.
      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ı.
    • Elm’in en iyi yanı, Haskell hissinin güçlü olması. Birkaç yıl önce Elm ile eğlenceli şeyler yapmıştım.
      İ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.
    • Gren yeterince yetkin bir ardıl gibi görünüyordu; topluluğu da aktif ve yardımsever.
    • Ben de onlardan biriyim. Dili genişletip çeşitli kolaylıklar ekledim; özünde uygun bir hata kanalı ve silinebilen sum type’lar üzerinden bağımlılık enjeksiyonunu destekler hâle getirdim.
      Elm iyi bir dil, ama Evan gerçekten yararlı bir şey yapmaya ilgi duymuyor gibi ve dilin yönetimi genel olarak berbat.
    • Elm çok iyi olduğu için insanların durağanlıktan hayal kırıklığına uğradığını düşünüyorum. Ama Elm’i iyi yapan şeyin nedeni de bu durağanlık.
  • 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.

    • Yapay zeka sayesinde müziğe de daha çok kapıldım; bir MIDI klavye aldım ve düzgün bir DAW yazılımı da kurdum.
      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.
    • Büyük dil modellerinin Elm’in benimsenmesini artırabileceği sözü hem doğru hem değil.
      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.
    • İyileşmiş olabilir, ama Claude Code gibi ajanların Elm’in anlamlı boşluklarında sürekli takıldığını görünce büyük hayal kırıklığına uğradım.
      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.
    • Bu bakış açısı geçerli. Böyle düşünmemiştim, ama ekosistem ilerlemiyorsa yine de tereddüt ederdim.
  • 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.

    • FFI hâlâ çoğunlukla ports üzerinden yapılıyor. View tarafında web component’leri de kullanılıyor.
      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

    • Proje ölüydü. Önceki sürüm 7 yıl önceydi ve kurucusu bakımı bıraktıktan sonra topluluk BDFL modelinin ötesine geçemediği için öylece durmuştu.
      Yani ölüydü; şimdi ise yeni yeni dirilmiş sayılır. Bu arada topluluğun epey sönümlendiğini sanıyorum
    • Topluluğun içinde derinlemesine yer almadım ama o dönemde katılan insanları tanıyorum; benim anladığım kadarıyla özel infix operatörlerinin kaldırılması topluluk desteğinin ciddi biçimde kaybedilmesine yol açtı.
      Ç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ı
    • Geri dönmesine sevindim. Elm’de her zaman desteklemek isteyeceğiniz şaşırtıcı bir zarafet vardı
    • Son 2 yıldır çok kârlı ve yalın bir şirkette profesyonel olarak Elm kullanıyorum.
      İş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
    • Ben de Elm çevresindeki topluluğun fiilen yok olduğunu düşünüyordum. Yine de tek bakımcısı ve kurucusu hâlâ var gibi görünüyor.
      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

    • Bunun doğru olmadığını düşünüyorum. Benim bakımını yaptığım Elm uygulaması tamamen yerelleştirilmiş durumda ve erişilebilirliğinin de oldukça iyi olduğunu düşünüyorum.
      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
    • Bırakın yapsın. Gerçekten bilenler hazır olduğunda anlayacaktır; modaya kapılanlar ise zaten kurtarılamaz
    • Bir yandan Evan’ın iyi olduğunu görmek güzel. Dil geliştirme konusunda oldukça iyi fikirleri var ve Elm çok ilginç projelere büyük ilham verdi.
      Ö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?

    • Elm’in geçmişini düşününce, Arcadia’nın neden aynı olmayacağına inanalım?
      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ış

 
GN⁺ 5 시간 전
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

    • Evan'ın v1 sürümünü planlıyor olması gerçekten heyecan verici
    • Ben de bunu söylemeye gelmiştim
      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

    • Açıklanan geriye dönük uyumluluğu bozan değişiklik epey büyük etki yaratabilecek gibi görünüyor
      == 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 ediyorum
  • Elm 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

    • Doğru, özellikle de her şeyin çılgın bir hızla ilerlediği frontend tarafında
  • 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 equatable ve hashable tipleri gibi daha görünür özellikleri nasıl ele alacağını merak ediyorum
    Dilin 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

    • Typeclass tarzı özellikler için fazla beklentiye girmemek daha iyi olabilir
      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