2 puan yazan GN⁺ 2024-05-27 | 1 yorum | WhatsApp'ta paylaş

Hurl, istisnai bir dil

Genel bakış

  • Hurl, istisna işlemeyi tek kontrol akışı olarak kullanan bir dili keşfetmek için oluşturulmuş bir dildir.
  • Bu dil, Nicole Tietz-Sokolskaya ile Recurse Center arkadaşları arasındaki bir sohbetten doğmuştur.
  • Bu site, Hurl kullanımına ilişkin dokümantasyon, örnekler, hata ayıklama kılavuzu ve SSS sunar.

Kurulum ve kullanım

  • Hurl'ün kaynak kodu Hurl deposunda sunulmaktadır.
  • Bir bug veya hata bulursanız e-posta ile gönderilen patch'ler memnuniyetle karşılanır, ancak patch üzerindeki tüm hakları devretmeniz gerekir.
  • Bunun amacı yeniden lisanslama ve ticari lisanslamayı sürdürebilmektir.

Hurl'ün söz dizimi ve felsefesi

  • Hurl, istisna işleme etrafında şekillenmiş bir dildir.
  • Kontrol akışını yalnızca istisna işleme ile uygular.

Yaygın kalıplar

  • Kontrol akışı istisna işleme üzerinden yönetilir.
  • Geleneksel kontrol yapıları (if, for gibi) kullanılmaz.

Standart kütüphane

  • Hurl bir standart kütüphane sunar.
  • İstisna işleme temelli çeşitli işlevler içerir.

Örnekler

  • Çeşitli örnek kodlar sunulmaktadır.
  • Örnek kodlar sayesinde Hurl'ün nasıl kullanılacağı kolayca anlaşılabilir.

Hata ayıklama ve hatalar

  • Bir hata ayıklama kılavuzu sunulmaktadır.
  • Hataların etkili şekilde nasıl ele alınacağını açıklar.

SSS

  • Sık sorulan sorulara yanıtlar sunar.
  • Hurl kullanırken ortaya çıkabilecek yaygın sorunları ele alır.

Hurl için övgüler

  • Erika Rowland: "Bu canavar güzel, ama ona asla dokunmak istemiyorum. Adımın bununla ilişkilendirilmesini istemiyorum."
  • Nicole Tietz-Sokolskaya: "Bu dili gerçeğe dönüştürmeye karar verdim. Üzgünüm."
  • Mary McGrath: "🤮" (Kullanılabilir bir alıntı mı?)
  • nate (@nmoo@mas.to): "Sertifikalı anormallik™!"

Kaynak kodu

  • Hurl'ün ve bu sitenin kaynak kodu Hurl deposunda sunulmaktadır.
  • E-posta ile gönderilen patch'ler memnuniyetle karşılanır, ancak tüm hakların devredilmesi gerekir.

Lisans

  • Bu proje şu üç lisanstan biriyle kullanılabilir:
    • AGPL-3.0
    • GAL-1.0 (Gay Agenda License)
    • Ticari lisans
  • Kullanım için bu üç lisanstan biri seçilebilir.

GN⁺ görüşü

  • İstisna işleme merkezli bir dil: Hurl, istisna işlemeyi kontrol akışının merkezine koyarak geleneksel kontrol yapılarını değiştiren benzersiz bir yaklaşım benimsiyor. Bu, geliştiricilerden yeni bir düşünme biçimi talep ediyor.
  • Eğitsel değer: Hurl, istisna işlemenin önemini ve nasıl kullanıldığını derinlemesine anlamaya yardımcı olabilir. Özellikle istisna işlemenin yanlış kullanımında ortaya çıkan sorunları açıkça gösterir.
  • Pratiklik sorunu: Hurl'ü gerçek iş ortamında kullanmak zorlayıcı olabilir. Geleneksel kontrol yapılarına alışkın geliştiriciler için büyük bir engel olabilir.
  • Toplulukla iş birliği: Hurl'ün kaynak kodu açık kaynak olarak sunulmakta ve topluluk katılımı teşvik edilmektedir. Bu, projenin gelişimine ve bug düzeltmelerine olumlu katkı sağlayabilir.
  • Lisans seçimi: Çeşitli lisanslar sunarak kullanıcılara daha geniş bir seçim alanı sağlar. Bu da projenin esnekliğini artırmaya katkıda bulunur.

1 yorum

 
GN⁺ 2024-05-27
Hacker News görüşü

Hacker News yorum derlemesi özeti

  • Programlama dili tasarımında namespace ve import kullanımını zorunlu kılmak önemli

    • Namespace ve import kullanımını zorunlu kılmak, kodun anlaşılmasını kolaylaştırır.
    • En üst düzeyde yan etkilere izin vermemek iyi olur.
  • İstisna işleme hakkındaki görüşler

    • İstisna işleme, çağıran ile çağrılan arasındaki sözleşmeyi zorlaştırır.
    • Go veya Rust'ta olduğu gibi istisnaları dönüş değerleri üzerinden ele almak daha iyidir.
    • IDE'nin işlenmemiş tüm istisnaları dinamik olarak algılayıp, istisnanın oluştuğu yeri kolayca bulmayı sağlaması iyi olurdu.
  • toss kullanım örneği

    • toss, çoğunlukla bir fonksiyondan birden fazla değer döndürürken kullanılır.
    • Anında devam edilmeyen durumlar dışında pek faydalı değildir.
  • Hurl dili ve condition system

    • Hurl, Smalltalk/CL'nin condition system'ine benzer.
    • Condition system, birden fazla restart seçeneği sunar.
  • .wtf alan adı uzantısının kullanımı

    • Daha fazla şey .wtf alan adı uzantısını kullansa dünya daha iyi bir yer olurdu.
  • Cebirsel efektlere benzer bir dil

    • Zayıf bir cebirsel efekt biçimine benziyor ama yine de ilginç.
  • Hurl dili hakkında karışık duygular

    • Hurl dilinden hoşlanmıyorum ama biraz zarif yanları da var.
    • Devam ettirilebilir istisnalar ile devam ettirilemeyen istisnaları ayıran bir sözdizimi olsaydı iyi olurdu.
    • Standart kütüphane, normal değer döndüren fonksiyonlarla değiştirilmemeliydi.
  • toss ve hurl arasındaki fark

    • hurl yakalanabilir ama toss yakalanamaz.
    • Hurl'ü çok kullanırsam insanların bana "tosser" demesinden endişe ediyorum.
  • toss dil yapısı

    • toss, bir istisna işleyicisi bulmak için stack'i tarar ve sanki hiçbir şey olmamış gibi yürütmeye devam eder.
    • Çalışma zamanında ek davranış enjekte edebilir.
    • Nesne yönelimli kodda bağımlılık enjeksiyonu service constructor üzerinden yapılır, ama toss bir toss handler kullanır.