1 puan yazan GN⁺ 1 일 전 | 1 yorum | WhatsApp'ta paylaş
  • Yeni ana sayfa Elixir’i, bireysel geliştirmeden yüzlerce kişilik ekiplere, tek sunucudan küresel ağlara kadar ölçeklenebilen Erlang tabanlı bir dil olarak tanıtıyor
  • Değişmezlik, bellek güvenliği ve kademeli tip sistemi sayesinde arızalardan toparlanması kolay, bakımı yapılabilir sistemler kurmayı mümkün kılıyor
  • Tek bir kod tabanı çok çekirdekli makinelere ve birden fazla node’a ölçeklenebiliyor; Numerical Elixir ile birlikte kullanıldığında GPU hesaplamalarını da destekliyor
  • Phoenix, Nerves, Nx ve Broadway ekosistemiyle web, gömülü sistemler, makine öğrenimi, veri işleme, IoT ve dağıtık sistemler geliştirilebiliyor
  • Paket yöneticisi, kod biçimlendirici, dokümantasyon araçları, IEx, Livebook ve Hex ekosistemi prototiplemeden prodüksiyon işletimine kadar destek sağlıyor

Geliştirme deneyimi ve ölçeklenebilirlik

  • Elixir, hızlı geliştirmeyi sağlam pratiklerle birleştirir ve onlarca yılda birikmiş Erlang’in güvenilirliği ile hata toleransına dayanır
  • Veri ve domaine odaklanan anlaşılır kodu hedefler
    • Değişmezlik ve bellek güvenliği sağlar
    • Elixir 1.20 ile gelen kademeli tip sistemi kullanılabilir
  • Tek bir kod tabanı çok çekirdekli makinelerde dikey olarak, node’lar arası iletişimle de yatay olarak ölçeklenir; mesaj odaklı ve gerçek zamanlı web sistemleri için uygundur
  • Numerical Elixir ile birleştirildiğinde hesaplamalar çekirdekler, kümeler ve GPU’lar genelinde ölçeklenebilir
  • Üst üste birkaç yıl dünyanın en çok tercih edilen dillerinden biri seçilmiştir; sonuçlar Stack Overflow 2025 anketinde görülebilir
  • Yerleşik paket yöneticisi, kod biçimlendirici ve dokümantasyon özelliklerine sahiptir
    • IEx etkileşimli shell’i ve Livebook etkileşimli notebook’u ile hızlıca prototip oluşturulabilir ve çalışan sistemlerde gerçek zamanlı debug yapılabilir
  • Tek kişilik işletmelerden Fortune 500 şirketlerine kadar farklı sektör ve uygulamaların prodüksiyon ortamlarında kullanılır

Kullanım alanları ve ekosistem

  • Web geliştirme için hızlı geliştirmeyi destekleyen Phoenix, az kodla gerçek zamanlı özellikler ekleyen LiveView, veri katmanı için Ecto ve Plug kullanılır
  • Gömülü sistemlerde Nerves uygulamanın tamamını küçük bir firmware olarak paketler; kablosuz güncellemeler ve telekom operatörü seviyesinde hata toleransı sunar
    • AtomVM ile mikrodenetleyici kadar küçük cihazlarda bile Elixir çalıştırılabilir
  • Makine öğreniminde Nx GPU hızlandırmalı tensörler sağlar; Livebook ise önceden eğitilmiş modelleri çalıştırma, veri görselleştirme ve dağıtımı tek bir ortamda destekler
  • Veri ve medya işleme için backpressure ve eşzamanlılıktan yararlanılır
    • Broadway kuyruklardan milyonlarca olayı işler
    • Membrane ses, video vb. için birleştirilebilir pipeline’lar sağlar
  • Erlang VM tabanlı olduğu için IoT ve dağıtık sistemlerde de kullanılır; ilgili Erlang projeleri arasında EMQX, RabbitMQ ve Riak bulunur
  • Hex’te binlerce topluluk paketi keşfedilebilir ve ekosistem büyümeye devam etmektedir
  • Dil geliştirmesine Elixir Team öncülük eder; Erlang Ecosystem Foundation ise Elixir’i ve daha geniş Erlang topluluğunu destekler
  • Açık kaynak geliştiricileri istihdam eden veya sponsor olan Elixir Open Source Stewards içinde şu şirketler yer alır
    • Software Mansion: 2016’dan beri Membrane, Popcorn, LiveDebugger, Legion gibi tam yığın araçları geliştiriyor
    • Dashbit: Elixir, Livebook, Broadway, Plug vb. araçları geliştiriyor ve şirketlerin prodüksiyona geçişini ve ölçeklenmesini destekliyor
    • Jump: Expert LSP ve Quokka gibi projelere katkıda bulunuyor

1 yorum

 
GN⁺ 1 일 전
Hacker News yorumları
  • José Valim ve ekibi gerçekten olağanüstü bir Elixir dili ve ekosistemi yarattı; özellikle de son 1 yılda 1.20 sürümü için istikrarlı biçimde emek verdikleri için teşekkürler

    • Bir Erlang hayranından, Elixir’nin Erlang’ı gerçekten anlamayan kişilerin BEAM’i Ruby tarzına çevirdiği iğrenç bir türev olduğu, ama tam da bu sayede yaygınlaştığı yorumunu duymuştum; bu konuda ne düşünüldüğünü merak ediyorum
  • Elixir harika, ama eşzamanlılığın ötesinde ham çalışma performansını artırmak için BEAM’in kendisine daha fazla fon ve geliştirme çabası ayrılmasını isterdim
    Son 10 küsur yılda performans iyileştirmeleri fiilen tek bir kişiye bağlıymış gibi görünüyor

    • Son 5-6 yılda birkaç kişi JIT derleyicisi geliştirdi ve WhatsApp ekibi de ciddi katkı sağladı
      Erlang/OTP ekibi JIT ile mümkün olan tüm performansı çıkardıktan sonra muhtemelen modüller arası optimizasyona geçecek; bunun için çalışma zamanının bazı temel unsurlarını yeniden tasarlamak gerekecek ama birçok yeni olasılık açılacaktır
    • Bayt kodu yorumlayıcısında gerçek kullanım senaryolarındaki matematik işlemi performansını artırmak oldukça zor
  • Bu yıl Elixir öğrenmeye başladım; dilin ve BEAM’in sunduğu özelliklerin karşısında şaşırdım ve yeterince değer verilmeyen ekosisteme tamamen hayran kaldım
    Yeni site de çok iyi görünüyor

    • Dinlemeyi sevdiğim geliştirici Joe Armstrong, Elixir’yi genel olarak olumlu değerlendiren bir yazı yazmıştı; Erlang’ı yaratmamış olsaydı muhtemelen Elixir geliştiricisi olurdu
      https://joearms.github.io/published/2013-05-31-a-week-with-e...
      Harika bir insan olan Joe Armstrong huzur içinde yatsın
    • Erlang onlarca yıldır milyarlarca dolar piyasa değerine sahip telekom şirketlerini ayakta tuttu; Elixir bunu öğrenmeyi kolaylaştırdı ve büyük ölçekli ortamlardaki geçici küme kurulumlarının önemli bir kısmının yerini aldı
      Tek bir kod tabanıyla birçok platforma hızla dağıtım yapılabiliyor ve Phoenix Channels da ekonomik
      https://quasar.dev/introduction-to-quasar/
  • Forum arayüzünün de yenilenmesini umuyorum ve Elixir’nin büyümeye devam etmesini isterim
    Sadece harika bir dil değil, yapay zeka ile kodlama için de çok uygun

    • Tencent’in karşılaştırmasında Elixir genel sıralamada 1. olmuştu; bunu tablo 4’te görebilirsiniz, ama çalışma 1 yıldan daha eski
      https://arxiv.org/pdf/2508.09101
  • Günümüz ölçülerine göre büyük bir monitör kullanmıyor olmama rağmen sitenin ekranının yarısı boş alan gibi duruyor, bu biraz hayal kırıklığı yaratıyor
    Eski sitenin nasıl göründüğünü hatırlamıyorum, o yüzden gerçekten değişip değişmediğini bilmiyorum

  • Elixir çalışma zamanı BEAM, ajanlar ve çok ajanlı sistem orkestrasyonu için çok uygun; bununla ilgili bir derlemeyi burada paylaştım
    https://josefrichter.design/blog/crowd

  • Elixir/Erlang’ın temel kullanım alanlarından biri dağıtık küme yetenekleri gibi görünüyor; gerçek kullanım örneklerini merak ediyorum
    İşte Elixir’yi çok kullandım ama onu geleneksel bir Kubernetes ortamında bağımsız Phoenix uygulamalarını yatay ölçekleyen “daha iyi bir Rails” gibi kullanıp asıl amacını kaçırmışım gibi geliyor

    • Eskiden WhatsApp’ta çalışırken Erlang’ın dağıtık özelliklerini yoğun biçimde kullandım; ayrıldıktan sonra küme boyutunun çok daha büyüdüğünü biliyorum
      Çok kullanışlı, ama düğümler arasında güvenlik sınırı yok ve ağ kararsızsa baş belası olabiliyor
      Bir sohbet uygulamasında önce varlık veritabanı servisine mesaj gönderip karşı tarafın çevrimiçi olup olmadığını kontrol ediyor, bir süreç kimliği dönerse aynı makinede ya da başka bir makinede olmasına bakmadan aynı API ile o sürece mesaj gönderiyorsunuz
      Süreçler, iş parçacıkları ve görevler arasında rastgele mesaj iletimini bu kadar doğal biçimde tüm sisteme yayan ortamlar nadirdir; süreç kimliği yoksa mesajı çevrimdışı veritabanına gönderebilirsiniz
    • Kubernetes üzerinde Horde.DynamicSupervisor kullanarak biraz dağıtık Elixir denedim; swarm ve DynamicSupervisor gibi başka seçenekler de var
      Bu soyutlamaların BEAM dışı yaklaşımlara göre ne gibi avantajlar sağladığına dair net bir analiz olsa iyi olurdu
      https://www.youtube.com/watch?v=nZmDEUeHeVI
    • Yakın zamanda Elixir ile bir Kubernetes kontrol düzlemi yaparken dağıtık özellikleri kullanacağım anı sürekli bekledim, ama Go ile yazılmış bir DaemonSet’i kontrol ederken buna pek ihtiyaç olmadı
      Yine de yapı bağımsız uygulamalardan daha sıkı bağlı ve Firecracker üzerinde Lambda veya Fly.io tarzı işleri orkestre etmeye benziyor
      https://jomcgi.dev/ember
    • Elixir/Erlang, deterministik çalışan ve sağlam, üst düzey komuta-kontrol bileşenleri gerektiren yarı gömülü ortamlar için çok uygun
      Uzun zaman önce bu cihaza Erlang uygulamıştım; eğlenceliydi ve dahil olan herkes için ilginç problemler vardı
      https://www.icare-world.com/us/product/icare-eidon/
  • Elixir çok zarif bir dil, bu yüzden yakında onu kullanmak için bir neden bulmak istiyorum

    • Joe Armstrong’un Erlang programlama kitabını okurken fonksiyonel programlamaya ve soyutlamalara bakışım değişti; bu da beni daha iyi bir Ruby geliştiricisi yaptı
      Ruby büyük miktarda WebSocket mesajını işleyemediğinde ilk kez Elixir’yi seçtim; yüksek eşzamanlılık ortamlarında özellikle çok iyiydi ve Phoenix LiveView’u da seviyorum, birkaç yan projeyi onunla yürütüyorum
    • Çok ajanlı kişisel bir asistan geliştirmek keyifliydi; hâlâ geliştirme aşamasında ve bir garanti yok, ama gerçekten kullandığım motoru yayımladım
      https://github.com/ityonemo/ce_ce
    • Hızlı çalışması gerekmeyen bir programınız varsa, bu Elixir kullanmak için bir sebep olabilir
    • Genel olarak Elixir’nin Erlang’ı geliştirdiğine katılırım, ama uzun süre Ruby kullanmış biri olarak beklediğim kadar zarif gelmiyor
      defmodule Xyz do gibi basit sözdizimi bile kulağa biraz tuhaf geliyor