- 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
GeekNews’in hangi teknolojiyle çalıştığını merak ediyorum lol
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
Hacker News'un tamamen Common Lisp ile yeniden yazılmadığı, bunun yerine Arc Runtime'ın Common Lisp içinde yeniden uygulandığı bilgisi
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ı
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
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ı
Açık kaynak Arc koduyla yapılmış bir web sitesini işleten biri olarak Clarc'ı kullanmayı çok istemesi
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ı
"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
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ış
Common Lisp'in Racket'tan çok daha pratik olduğu ve SBCL'nin adeta sihir gibi hissettirdiğine dair olumlu değerlendirme