2 puan yazan GN⁺ 2023-11-11 | 1 yorum | WhatsApp'ta paylaş

Elixir'e Geçiş

  • Yeni iş yerinde ana backend dili olarak Elixir kullanılıyor.
  • Elixir veya Erlang deneyimi yoktu, ancak Ruby'ye benzer sözdizimi sayesinde kolayca öğrenildi.
  • Nesne yönelimli dillerdeki durum yönetimi sorunlarından kaçınıp, değişmezlik ve fonksiyonel programlamanın avantajlarından yararlanılıyor.

Elixir'in Avantajları

  • Değiştirilebilir duruma sahip kodun bakımı zordur.
  • Elixir, Ruby gibi DSL'leri destekler ancak çalışma zamanında kod üretmek yerine derleme zamanlı makrolar kullanır.
  • Test yazmadan bile makro kullanım hataları derleme zamanında fark edilebilir.

Sözdizimi ve İfadeler

  • Elixir'in pipeline sözdizimi beğeniliyor, ancak Clojure'un 'threading' operatörü tercih ediliyor.
  • 'with' ifadesi sayesinde karmaşık fonksiyonlar başarı yolu ve hata işleme bölümlerine ayrılabilir.

İstisna İşleme

  • Ruby'de istisnaları kontrol akışı için kullanmak yaygındır.
  • Elixir'de istisnalar yerine Result / Either monadı kullanılarak dönüş değeri olarak ok ve error kullanılır.

GN⁺ Görüşü

Bu yazıdaki en önemli nokta, Elixir dilinin sunduğu programlama keyfi ve bakım kolaylığıdır. Nesne yönelimli dillerdeki karmaşık durum yönetimi sorunlarını çözmesi ve değişmezlik ile fonksiyonel programlama sayesinde kodun kararlılığını ve okunabilirliğini artırması dikkat çekici. Özellikle derleme zamanında hataları tespit edebilen makro sistemi, geliştiricilere daha güvenli bir kod yazma ortamı sunuyor. Bu özellikler, başlangıç seviyesindeki yazılım mühendislerinin bile Elixir öğrenmeye ilgi duymasını sağlayabilir.

1 yorum

 
GN⁺ 2023-11-11
Hacker News görüşleri
  • Elixir diline olan ilgi son birkaç haftada YouTube videoları sayesinde arttı.

    • Erlang’ın fikirleri beğeniliyor, ancak onu fiilen kullanma deneyimi biraz tuhaf bulunuyor.
    • Dağıtık programlamanın geleceği olarak izole süreçler ve mesajlaşma (Actors) konusunda olumlu bir bakış var.
    • Pattern matching özelliği beğeniliyor, ancak Elixir’nin LiveView ve LiveBook gibi “sihirli” yönlerine şüpheyle yaklaşılıyor.
    • GenServers gibi Elixir’ye özgü terim ve kavramlara yabancılık hissediliyor.
    • Küçük bir topluluğun taşıdığı risklerin farkında olunmasına rağmen, topluluğun başarıları övülüyor.
    • Type system uygulamasına dair beklenti dile getiriliyor.
  • Elixir/Erlang’ın başlıca avantajlarından biri olarak arka plan işlerinin kolaylığı vurgulanıyor.

    • Önceki bir iş deneyimi üzerinden, Elixir’nin Task yapısıyla sunucu durmadan HTTP isteklerinin işlenebildiği fark edilmiş.
  • Sasa Juric’in "The Soul of Erlang and Elixir" konuşması üzerinden dilin gücü vurgulanıyor.

  • 1991’den beri Erlang kullanan bir deneyim paylaşılıyor.

    • Başka diller de kullanılmış olsa da en keyif veren dilin Erlang olduğu söyleniyor.
    • Emekliliğe kadar Erlang kullanmaya devam etme planı ifade ediliyor.
  • Elixir öğrenmenin ve kullanmanın keyif verdiği, BEAM/OTP’nin sadeliği ve işlevselliğinden memnuniyet duyulduğu belirtiliyor.

  • Elixir’nin avantajları arasında Ruby benzeri eğlenceli yapısı ile nesne yönelimli programlamanın dezavantajlarını ortadan kaldıran değişmezlik ve fonksiyonel özellikleri öne çıkarılıyor.

    • Type system eklenmesiyle büyük kod tabanlarını anlamanın kolaylaşacağı umuluyor.
  • Ruby’de exception’ların kontrol akışı için kullanıldığı yönündeki yanlış anlaşılmaya dikkat çekiliyor.

  • Bir F# kullanıcısı olarak Elixir’nin kafa karıştırıcı olduğu ifade ediliyor.

    • Fonksiyon imzalarının type bilgisi vermemesi nedeniyle büyük kütüphanelerde kullanımın zor olduğu belirtiliyor.
    • Elixir’nin asıl cazibe noktalarının ne olduğu soruluyor.
  • Elixir kullanma deneyiminde, öğrenmesinin kolay olduğu; pattern matching ve değişmez verinin avantajları vurgulanıyor.

    • CQRS sistemi kurarken çok başarılı olduğu deneyimlenmiş.
    • BEAM’in sağlamlığı ve GenServer’ın hata ele alma biçimi övülüyor.
  • Yeni teknolojilere yönelik erken aşama iyimserliğine karşı uyarıda bulunuluyor.

    • Bir şeyi gerçekten uzun süre kullandıktan sonraki deneyimlerin paylaşılması tavsiye ediliyor.