3 puan yazan GN⁺ 2025-05-27 | 2 yorum | WhatsApp'ta paylaş
  • Hacker News, daha önce Arc adlı bir Lisp türevi dil ile uygulanmıştı; ancak son birkaç ay içinde SBCL (Steel Bank Common Lisp) üzerine taşındı
  • Bu geçişin temel amacı performansı artırmak ve çok çekirdek desteği olanağını güvence altına almaktı
  • Arc-to-JS dönüştürücüsü Lilt ve Arc-to-Common Lisp dönüştürücüsü Clarc'ın geliştirilmesi sayesinde yapı daha sistematik hale geldi
  • Clarc'ın kaynak kodunu yayımlamak nispeten kolay olsa da, HN'nin tüm kod tabanını güvenlik nedenleriyle yayımlamak zor
  • Yeni mimari sayesinde HN sorunsuz biçimde geçiş yaptı ve kullanıcı deneyimi iyileşti

Genel bakış

  • Hacker News, başlangıçta Paul Graham tarafından geliştirilen Arc adlı Lisp türevi bir dille geliştirildi
  • Arc, Racket üzerinde uygulanmıştı; ancak son birkaç ay içinde SBCL (Steel Bank Common Lisp) üzerine taşındı
  • Bunun nedeni performansı artırmaktı

Performans ve işlev değişiklikleri

  • Sayfa bölmenin ortadan kalkması gibi, gerçek kullanım açısından performans iyileştirmeleri doğrulandı
  • Geçmişte uzun yorum dizilerinde sayfalama gerekirdi; şimdi ise hepsi tek seferde yükleniyor
  • Bu değişiklikler Clarc'ın devreye girmesiyle mümkün oldu
  • Clarc, HN'nin çok çekirdekli ortamlarda sorunsuz çalışmasını sağlıyor
  • Clarc'ın geliştirilmesi birkaç yıldır sürüyordu ve artık tamamlanma aşamasına oldukça yaklaştı

Uygulama yöntemi ve yapı

  • Arc'ı JS'ye dönüştüren Lilt ve Arc'ı Common Lisp'e dönüştüren Clarc bulunuyor
  • Mevcut Arc uygulamasının alt yapısı yeniden tasarlanarak Arc birkaç katmana ayrıldı
    • arc0, sistem diliyle (Racket, JS, CL) yazılıyor
    • arc1 arc0'ın üzerinde, arc2 ise arc1'in üzerinde yazılıyor
    • Tüm işlevler üst katmanda (arc2) uygulanırken, alt katmanlar en aza indiriliyor
  • Bu yapı sayesinde Arc'ı farklı çalışma zamanlarında yeniden uygulamak daha kolay hale geliyor

Kaynak kodunu yayımlamayla ilgili meseleler

  • Clarc'ı (Arc'ın Common Lisp uygulaması) açık kaynak olarak yayımlamak görece kolay
    • Mevcut Arc sürümlerini Clarc'a taşımak yeterli olabilir
    • İlk dönem HN örnek uygulaması zaten dahil, bu yüzden HN'ye ya da YC'ye özel bir bölüm yok
  • Ancak HN'nin tüm kod tabanı, kötüye kullanımı önlemeye yönelik çeşitli güvenlik mekanizmaları içeriyor
    • Kod açıklandığında bu kısımların etkisiz hale gelme riski var
    • Güvenlikle ilgili bölümleri ayırmak büyük bir yük oluşturuyor

2 yorum

 
ilotoki0804 2025-05-30

GeekNews’in hangi teknolojiyle çalıştığını merak ediyorum lol

 
GN⁺ 2025-05-27
Hacker News görüşü
  • Hacker News'un, "Worse is better" felsefesinin sosyal mühendisliğe uygulanmış kusursuz bir örneği olduğu düşüncesi; 90'ların sonundaki Slashdot çok daha çeşitli özelliklere ve zenginliğe sahipti, ancak HN'in başarı nedeninin aşırı derecede odaklanmış yapısı ve güçlü moderasyon sistemi olduğu değerlendirmesi

    • Sonunda bir Lisp sisteminin "Worse is better"ın bayraktarı haline gelmesi üzerine şakacı bir hayranlık
    • Platformu mümkün olduğunca en az teknoloji üzerinde işletip insan müdahalesine dayanan HN yönetiminin ironisine dikkat çekilmesi; "çok teknoloji herkes için faydalı değildir" düşüncesinin sezgisel olarak kavrandığı yorumu
    • HN'in az özelliğe sahip olduğu ama gerçekten daha fazla özelliğe ihtiyacımız olup olmadığının sorgulanması; az özellik sayesinde daha minimalist olduğuna dair olumlu değerlendirme ve "less is more" sözünü hatırlatması
    • HN'in kâr etmek zorunda olmamasının büyük avantaj sağladığı düşüncesi
    • Mükemmelliğin yeni bir şey eklendiğinde değil, çıkaracak bir şey kalmadığında elde edildiğine dair Antoine de Saint-Exupéry alıntısının anılması
  • Hacker News'un tamamen Common Lisp ile yeniden yazılmadığı, bunun yerine Arc Runtime'ın Common Lisp içinde yeniden uygulandığı bilgisi

    • Tam da bunun Lisp'in en iyi yaptığı şeylerden biri olduğuna dair hayranlık
  • Arc'ın Racket üzerinde uygulandığı ve başlangıçta MzScheme'den (önce PLT Scheme'in çekirdeği, daha sonra adı Racket olarak değişti) çıktığı, ardından kogir adlı bir geliştiricinin katkısıyla Racket'a taşındığına dair arka plan bilgisi paylaşımı

    • MzScheme'in PLT Scheme'in (bugünkü Racket) çekirdek, yani GUI dışı kısmı olduğu; pg'nin eski mailing list yazışmalarına bakılırsa Arc geliştirmeye önce Scheme48 üzerinde başlayıp sonra PLT'ye geçtiğinin hep merak edildiğine dair yorum
    • Tüm Lisp uygulamalarını bir tur dönüyor olup olmadığımızın sorgulanması ve bunun "Theseus'un gemisinin tuhaf bir versiyonu" olduğuna dair neşeli benzetme
    • MzScheme, PLT Scheme ve Racket'ın fiilen aynı şey olup olmadığı sorusu
  • Dang'in kod tabanına da katkı sunduğunun duyulduğu ve bunun dışında da HN için uzun yıllardır emek veren kişiler olması gerektiği düşüncesi; HN topluluğunun kendisi için en uzun ömürlü ve en keyifli internet topluluğu olarak kaldığı deneyimi; sıradan bir katılımcı olarak bile Dang'e bir şekilde yardımcı olmak ya da ona en azından bir kahve ısmarlamak istemesi

    • Unutulmaması gereken nokta olarak, Hacker News'un (önceden Startup News) fiilen Y Combinator gibi dünyanın en başarılı yatırım şirketlerinden birinin pazarlama departmanı işlevi gördüğü ve HN'in kurucusu ile asıl yazarı Paul Graham'ın bugün en azından bir milyarder olduğu; buna rağmen HN'in kendi mali bağımsızlığını sürdürmeye çalıştığı ve bağış da aldığı
  • Clarc'ın çok daha hızlı olduğu ve çok çekirdek desteğinin iyi olduğuna dair açıklamayı görüp, HN'in daha önce tamamen tek çekirdek üzerinde çalıştığını öğrenince şaşkınlık duyulması

    • Modern CPU'ların zaten çok hızlı olduğu, 4chan'in de 10 yıllık 10 bin satırlık PHP spaghetti code ve tek sunucuyla 4 milyon kullanıcıyı kaldırdığı hikâyesi; asgari düzeyde kod kalitesi, profiling ve optimization varsa CPU çekirdeklerinin çok küçük bir kısmıyla bile muazzam trafik işlenebileceği, darboğazın çoğu zaman disk ve ağ I/O'su olduğu gerçeği; HN'in yalnızca metin sunduğu için bunun görece daha kolay olduğu açıklaması
    • Bir geliştirici modern yazılımın ne kadar şişkin ve yavaş olduğunu her fark ettiğinde bir meleğin kanat kazandığına dair esprili yorum
    • HN'in gerçekten tek bir process, tek bir core ve tek bir server üzerinde çalıştığı gerçeğine duyulan şok; ilgili HN tartışması bağlantısı eklenmiş
    • Modern CPU'lar doğru kullanıldığında performansın gerçekten çok iyi olduğu ve scale-out'a gitmeden önce bile büyük miktarda iş yükünü kaldırabildiğine dair pratik tavsiye
    • Çeşitli geçmiş tartışma bağlantıları bağlantı1, bağlantı2, bağlantı3, bağlantı4 paylaşılmış
  • Açık kaynak Arc koduyla yapılmış bir web sitesini işleten biri olarak Clarc'ı kullanmayı çok istemesi

    • O sitenin hangisi olduğu sorusu
  • sbcl'nin (Steel Bank Common Lisp) gerçekten production-grade olduğuna dair hayranlık; Racket tarafının Arc'ın gerçek dünyada kullanılmasını hesaba katmadığı için bug düzeltmelerini yapmamış olabileceği tahmini; Racket'ın production'da kullanıldığı başka projeleri duymadığı yorumu; Armed Bear'a duyulan sevgiyle birlikte (güçlü JVM kütüphane ekosistemi) Armed Bear Common Lisp bağlantısının paylaşılması

    • Racket topluluğunun her zaman çok nazik olduğu ve istenen her bug'ı iyi şekilde düzelttiklerine dair deneyim paylaşımı
  • "HN runs on top of SBCL since a few months" cümlesindeki dilsel tuhaflığa dikkat çekilmesi; doğru İngilizcenin "HN has been running on top of SBCL for a few months now." olacağı önerisi

    • "since" ifadesinin bir zaman noktasıyla kullanılması gerektiği, oysa "a few months"un bir süreyi anlattığı için kulağa tuhaf geldiği açıklaması; "since a few months ago" ya da "as of a few months ago" gibi ifadelerin daha doğal olduğu, ayrıca ilk paragrafta zaman kiplerinin de karıştığı için bunun daha çok göze battığı analizi
  • Paul Graham ya da Robert Morris'in hâlâ geliştirmeye katılıp katılmadığının merak edilmesi; makalenin tamamına bakıldığı halde buna dair bir ifade görülmediği ve CL'nin (Common Lisp) Arc'a ne kattığını inceleme isteği; arclanguage.org bağlantısı paylaşılmış

    • İki geliştiricinin de projeden uzun zaman önce ayrıldığı yanıtı
  • Common Lisp'in Racket'tan çok daha pratik olduğu ve SBCL'nin adeta sihir gibi hissettirdiğine dair olumlu değerlendirme