2 puan yazan GN⁺ 2023-08-26 | 1 yorum | WhatsApp'ta paylaş
  • Yazar, bir yazılım mühendisinin 10 yıl boyunca kullandığı fonksiyonel programlama dili Haskell'den uzaklaşma yolculuğunu paylaşıyor.
  • Yazar, Haskell'in kodu sembolik ve cebirsel olarak anlamayı mümkün kılan yapısına ve sağlam tip sistemine ilgi duydu.
  • Haskell'in tip sistemi, aşırı kısıtlayıcı ya da gereksiz derecede gürültülü olmadan sıkı tip denetimine izin vererek kod yazmayı ve bakımını kolaylaştırır.
  • Yazar, Haskell'in tipleri kullanarak değişmezlikleri ifade etme becerisini çok değerli buldu; bu, derleyicinin mantığı ikinci kez kontrol etmesini sağlayarak kodun güvenliğini ve doğruluğunu artırır.
  • Buna rağmen yazar, üç ana nedenle Haskell'den uzaklaştı: üslupsal yenilik arzusu, hantal araçlar ve sürekli değişim.
  • Üslupsal yenilik, Haskell topluluğunun yeni soyutlamalar denemeye yatkın olmasını ifade eder; bu yenilikçi olsa da kod bakımını zorlaştırabilir.
  • Yazar, Haskell araçlarını "fena değil" diye nitelendirse de Rust'ın cargo'su kadar kullanımı kolay ve istikrarlı bir araç bulunmadığını belirtti.
  • Haskell'deki sürekli değişim, özellikle düzenli olarak gelen geriye dönük uyumluluğu bozan değişiklikler, dili kullanırken sürtünmeyi artırdı.
  • Yazar, Haskell'den uzaklaşmış olsa da onun güçlü yönlerini hâlâ kabul ediyor: kodu cebirsel olarak refactor edebilme yeteneği, tip sistemi ve bildirimsel kütüphane ekosistemi.
  • Sonuç olarak yazar, Haskell kullanıp kullanmamanın kişinin hedeflerine bağlı olduğunu söylüyor; daha iyi bir programcı olmak için Haskell öğrenmeyi öneriyor, ancak anlattığı zorluklar nedeniyle onu birincil dil olarak kullanırken dikkatli olunması gerektiğini vurguluyor.

1 yorum

 
GN⁺ 2023-08-26
Hacker News görüşleri
  • Haskell topluluğu, öğrenmeye verdiği güçlü önem ve merak ile bilgi paylaşımını teşvik eden bir ortam yaratmasıyla bilinir.
  • Ancak topluluk, fikirleri test ettikten sonra rafa kaldırmakta çoğu zaman zorlanır; bu da profesyonel Haskell kod tabanlarının dağınık hale gelmesine yol açar.
  • Haskell’in araç ekosistemi eleştirilse de, çoğu programlama dilinin daha da kötü araçlara sahip olduğunu savunanlar da vardır.
  • Haskell’in araç ekosisteminde Hoogle adlı benzersiz bir özellik bulunur ve bu, sağladığı fayda nedeniyle çok takdir edilir.
  • Haskell’in ve onun tek makul kamusal uygulaması olan GHC’nin gelişimi, sürekli değişim ve tutarsızlıklar nedeniyle eleştirilmektedir.
  • GHC ile standart kütüphane basein belirli sürümleri arasındaki bağ, yeni GHC sürümleri çıktığında bağımlılıklarda zorunlu değişikliklere yol açan bir sorun olarak görülür.
  • Yazarın Haskell’e olan ilgisini kaybetmesi üç ana nedene bağlanıyor: üslupsal yenilik arayışı, hantallaşmış araçlar ve sürekli değişim.
  • Haskell’in dokümantasyonu ve araçlarıyla çalışmak zordu; topluluğun Cabal’dan Stack’e ve ardından yeniden Cabal’a yönelmesi ise bir iyileşme işareti olarak görülüyor.
  • Diğer programlama dilleri, fonksiyonel programlamanın bazı unsurlarını bünyesine katarak bazı geliştiriciler için daha cazip hale geldi.
  • Bazı geliştiriciler, kod yazmanın daha basit olması nedeniyle Haskell’den F#’a geçti.
  • Haskell’in öğrenilmesi zor kabul edilir ve kütüphaneleri çoğu zaman eski ya da yarım kalmış durumdadır.
  • Haskell’in performansı eleştirilir; lazy evaluation bellek sorunlarına ve yavaş performansa neden olur.
  • Haskell geliştiricileri için, dilin niş yapısı nedeniyle iş olanaklarının sınırlı olduğu düşünülür.
  • Haskell’de debugging, dilin karmaşıklığı nedeniyle zorlayıcı olarak tanımlanır.
  • Scala, her iki tarafın da güçlü yönlerini sunduğu için Haskell’e iyi bir alternatif olarak görülür.
  • Bazıları, gündelik yazılım mühendisliği işlerinde gelişmiş dil özelliklerine gerçekten ihtiyaç olup olmadığını sorgular.
  • Haskell’in araştırma ve akademik arayışlara odaklanmasının, pratik programlama ihtiyaçlarıyla çatışabileceği düşünülür.
  • Yazı, Haskell’de deneysel özelliklerle kararlı özellikleri ayırmanın bir yoluna ihtiyaç olduğunu öne sürüyor.
  • Yazar, Haskell’de yeni gelişmiş tip özelliklerini kullanma baskısı hissetmediğini ve karmaşık tipleri ne kadar kullanmak gerektiğine dair bir sezgi geliştirmeyi öneriyor.