1 puan yazan GN⁺ 1 일 전 | 1 yorum | WhatsApp'ta paylaş
  • Tür güvenli ve ölçeklenebilir sistemleri hedefleyen Gleam deposu artık Tangled üzerinden de kullanılabiliyor
  • Varsayılan dal yalnızca main; yaklaşık 11.000 commit, 254 yıldız ve 2 fork bulunuyor
  • Depo kodunun büyük bölümü %92,9 Rust; ardından %3,6 JavaScript, %1,8 Gleam geliyor
  • Derleyici ve dil sunucusundan WASM derleyicisine, Erlang kod üretecine, biçimlendiriciye ve test projelerine kadar her şey tek bir depoda yönetiliyor
  • Gleam, bir şirkete ait olmayan, sponsor destekli bir proje; hem proje hem de çekirdek ekip üyeleri desteklenebiliyor

Depo yapısı

  • gleam.run/gleam, Gleam dilinin Tangled deposudur
  • Başlıca bileşenler şunlardır
    • compiler-cli, compiler-core, compiler-wasm
    • language-server, erlang-generation, erlang-term-format
    • format, hexpm, gleam-bin
    • Benchmark'lar, dokümantasyon, topluluk paketleri ve derleyiciyle ilgili test projeleri
  • main, tek dal ve varsayılan daldır; yayımlanmış etiket yoktur

Dil oranları ve klonlama yöntemi

  • Dillere göre oranlar %92,9 Rust, %3,6 JavaScript, %1,8 Gleam şeklindedir
  • HTML ve CSS ayrı ayrı %0,4; Erlang ve Shell ayrı ayrı %0,3 oranındadır; TypeScript, Makefile, Dockerfile, Elixir ve PowerShell de dahildir
  • HTTPS ve SSH ile klonlanabilir; tar.gz ve .zip formatlarında indirme de desteklenir
  • Kendi barındırdığı Tangled knot üzerinde, ayarlara bağlı olarak klonlama URL'si değişebilir

Son geliştirme çalışmaları

  • Son commit'lerde biçimlendirici ve JavaScript kod üretimi için performans iyileştirmeleri ile kullanımdan kaldırılmış argümanlara sahip external için Erlang üretim kodu düzeltmesi yer alıyor
  • Dil sunucusunda, variant oluşturma kod eylemi başlığına tip adını ekleyen ve sayıların taban dönüşümü için kod eylemi ekleyen değişiklikler yansıtıldı
  • Farklı tabanlardaki negatif sayılara izin verildi; derleyici öneri metni ve todo uyarı metni de iyileştirildi
  • HEXPM_READ_API_KEY ayarlandığında Hex bağımlılık arama ve indirme istekleri kimlik doğrulamalı yapılır
    • Katı IP bazlı sınır yerine daha yüksek kullanıcı bazlı istek limiti uygulanabilir

Proje yönetimi

  • Gleam, tip güvenliği temelinde ölçeklenebilir sistemler kurmayı hedefler
  • Bir şirkete ait değildir ve sponsorların desteğiyle yürütülür
  • Gleam sponsorluk sayfası üzerinden projeyi veya çekirdek ekip üyelerini destekleyebilirsiniz

1 yorum

 
GN⁺ 1 일 전
Hacker News yorumları
  • Bu yazının çok daha fazla bağlam açıklamasına ihtiyacı var. Şu haliyle yalnızca zaten duyuruya ihtiyaç duymayan kişiler hemen anlayabilir.
    https://knowyourmeme.com/memes/curtains-for-zoosha

    • Gleam, Erlang veya Elixir sevenler arasında popüler bir dil; hepsi BEAM sanal makinesi üzerine kurulu.
      Tangled ise Bluesky gibi ATProto üzerine inşa edilmiş merkeziyetsiz bir GitHub alternatifi.
    • Bağlantı verilen sayfanın, yeniden paylaşılmış sıradan bir tweet’i birkaç ekran kaydırmalık “içeriğe” dönüştürmesi; asıl metnin de bir magazin haberi gibi okunması ironik.
    • O halde belki bu sitenin, yani HN’nin (Hacker News) ne olduğunu açıklamakla başlamak gerekir.
  • Tangled ile ilk kez karşılaşıp kaydoldum ama yeni kullanıcı deneyiminin elden geçirilmesi gerekiyor. E-posta girip doğrulamadan geçerek bir kullanıcı adı oluşturdum; ancak o adla doğrudan giriş yapamadım ve alışılmadık bir sosyal URL protokolünü de öğrenmem gerekti.
    Doğrulama sırasında projeye ait gibi görünen ama markalama ve renkleri tamamen farklı bir ekrana ve URL’ye yönlendirildim; parola yöneticim de bunları ilişkilendiremedi. Kayıt sürtünmesine özellikle hassas biriyim ama projenin kendisi ilginç, umarım bu geri bildirim işe yarar.

    • Benim kayıt/giriş sürecim yalnızca “girişe tıkla → mevcut Bluesky handle’ını gir → bsky alan adındaki giriş ekranında parolayı gir → onaya tıkla” adımlarından ibaretti. Şu aşamada bu yol daha optimize edilmiş görünüyor.
      Uygulama ile kimlik sıkı biçimde birleşik olmadığı için ayrı bir altyapı kurmuşlar; ancak ekranların son hâline henüz çok zaman harcanmamış gibi. Kendi hesabımı oluşturmadım; kullanıcı adıyla giriş yapılamıyorsa ne kullanılması gerektiğini merak ediyorum.
    • Bende bundan da kötüydü; yalnızca Failed to complete sign up. Try again later. hatası gösterildi.
  • Gleam, küçük ve incelikli tasarımı hedefleyen ilginç bir dil. Yakın zamanda Ubuntu Summit’te Gleam ekibiyle tanıştım; küçük kalıp dikkatle inşa etme tasarım felsefelerini sunumda çok iyi aktardılar.
    Giacomo tüm ekran geçişlerini bizzat animasyonlaştırdığını söyledi; sunumun kendisi de küçük ve özenle hazırlanmıştı, bu da ana mesajı daha da güçlendirdi diye hissettim.
    https://youtu.be/E6_JqYMeNqs
    https://discourse.ubuntu.com/t/gleam-and-the-value-of-small/...
    https://en.wikipedia.org/wiki/Gleam_(programming_language)

  • Tangled üzerinde kendi Knot sunucumu çalıştırmayı denedim; depolar Knot’ta sorunsuz oluşturulsa da sonraki değişiklikler Tangled’da görünmedi.
    Knot’un IPv6 bağlantısı vardı ama kararlı çalışması için birkaç IPv4 NAT’ı etkinleştirip sahte bir A kaydı bile oluşturmam gerekti; bu zaten bilinen bir sorun: https://tangled.org/tangled.org/core/issues/494

  • Codeberg yerine neden girişim sermayesi destekli bir Forge seçtiklerini merak ediyorum. “Dost canlısı dil” iddiasıyla da pek örtüşmüyor gibi.

    • “Tangled’da olmak” aslında sh.tangled.* ATProto kayıtları yayımlamak anlamına geliyor. tangled.org web uygulamasının arkasındaki girişim sermayeli şirkete bağımlı bir yapı değil; uygulama yalnızca protokol üzerinden yayımlanmış Git depolarını okuyup daha hoş bir arayüzle gösteriyor.
      Aynı kayıtları okuyan başka ATProto uygulamaları da aynı bilgilere erişebilir. Deponun kendisinin de Tangled’da bulunması gerekmez; Git, SSH, HTTP ve WebSocket destekleyen bir sunucuda doğrudan barındırılabilir.
    • Tangled’ın finansman modelini tercih etmiyorum, ancak ATProto’nun interneti iyileştirme potansiyelinin büyük olduğunu düşünüyorum. Gleam topluluğunda da bu protokole ilgi yüksek; bu yüzden Gleam deposunun bir aynasını barındırmak için uygun olduğuna karar verdim.
    • Gleam hâlâ GitHub’da da duruyor. Bu resmî bir taşınma değil; yalnızca ATProto tabanlı bir Forge’a da eklenmiş oldu.
    • Bunun büyük olasılıkla finansal desteğin koşulu olduğunu düşünüyorum; sonuçta temel değerin topluluktan çok para olduğu yönünde buruk bir izlenim bırakıyor. Ben projede Elixir kullanmaya odaklanmayı tercih ederim.
  • Tangled’ı ilk kez kullandım ama gerçek kullanımını zorlaştıracak kadar hatalı görünüyor. Bir depo oluşturdum ama 404 verdiği için görüntüleyemedim; aynı ATProto handle’ını her seferinde kopyalayıp girmeme rağmen girişte birkaç kez başarısız oldum.
    Yine de daha fazla ekibin Git hosting alternatifleri geliştirmesi sevindirici.

    • İlk dönem GitHub’da da depolar asenkron oluşturulurken kullanıcı hemen yönlendirildiği için aynı şey yaşanıyordu. Birkaç saniye sonra yenileyince görünüyordu; sonrasında bekleyip otomatik yönlendiren bir ara ekran eklendiğini hatırlıyorum.
  • Bir süredir merkeziyetsiz Git servisi arıyordum ve kendi hosting’imi de başlattım; ancak sosyal özellikler eksikti. Tangled hakkında daha fazla bilgi merak ediyorum.

    • Radicle hedefe biraz daha yakın; self-hosting ve federasyon mümkün. Yine de GitHub benzeri sosyal çekime sahip bir alternatif bulmak zor; bu unsurun Forge’dan ayrılıp ayrılamayacağı mı yoksa birlikte mi sunulması gerektiği hâlâ belirsiz.
    • Şu anda arayüzün ve API’nin kendisi self-host edilemiyor gibi. Git sunucusu olan Knot ve CI çalıştırıcısı Spindle işletilebiliyor; ancak tüm servis hâlâ bir ölçüde merkezi ve bunu değiştirmeye yönelik çalışmalar sürüyor.
    • Şirketin Finlandiya’da kayıtlı olduğu bilgisi dışında kimlerin işlettiğini ve nasıl finanse edildiğini bulmak zordu.
  • Bir projeyi Tangled’a koymaya niyetliyim ama mevcut servislerle aradaki farkı kapatacak özellik seti için daha gidilecek yol var. Özellikle depolara yalnızca bakarken bile yaşanan GitHub kesintileri çok büyük engel oluyor.

    • Sırf ATProto havası var diye Tangled’ı seçmek yerine, neden daha olgun Codeberg ya da özgür ve açık kaynaklı Forgejo veya Gitea kullanılmadığını merak ediyorum.
    • GitHub kesintilerinden duyduğum rahatsızlık yüzünden kesinlikle başka servis aramaya başladım.
  • Tangled’ın Codeberg’den nasıl farklı olduğunu ve geçiş sürecinin nasıl olduğunu merak ediyorum.

    • İkisini de kullanıyorum; Tangled’da özel depolar ve korumalı branch’ler gibi önemli özellikler henüz yok. Buna karşılık arayüz Tangled’da daha rahat hissettiriyor, Codeberg ise benim ortamımda epey yavaş.
      CI/CD kullanmadığım için karmaşık geçiş sürecini bilmiyorum; ama hosted Knot’a depo push etmek çok basit. Kendi Knot’unu işletmek de zor değil; kodu gönderdiğim sunuculardan en az birine doğrudan sahip olma fikri hoşuma gidiyor.
    • Tangled’ın Forgejo veya Codeberg’den temel farkı, ATProto federasyon protokolü etrafında inşa edilmiş olması.
  • Tangled’ın ne olduğunu ve hangi Gleam’den bahsedildiğini anlamak zor.

    • Sanki yalnızca bilenlere yönelik bir yazı gibi görünüyor. Bağlantıyı açınca Tangled ile ilgili görünen neredeyse hiçbir şey yoktu; hedef kitlesi sınırlı HN yazıları arasında bile özellikle kötü bir örnek.
      URL’deki Tangled ipucu, ancak üçüncü kez açtıktan sonra fark edilecek kadar belirsizdi; açılış sayfasında da Tangled’ı açıklayan neredeyse hiçbir şey yoktu.