- Hacker News sebelumnya diimplementasikan dengan bahasa keluarga Lisp bernama Arc, tetapi dalam beberapa bulan terakhir telah beralih ke SBCL(Steel Bank Common Lisp)
- Tujuan utama peralihan ini adalah peningkatan performa dan membuka kemungkinan dukungan multicore
- Dengan dikembangkannya Lilt, konverter Arc-ke-JS, dan Clarc, konverter Arc-ke-Common Lisp, strukturnya menjadi lebih sistematis
- Membuka source code Clarc relatif mudah, tetapi seluruh codebase HN sulit dibuka karena alasan keamanan
- Dengan arsitektur baru ini, HN bertransisi dengan mulus sehingga pengalaman pengguna membaik
Gambaran umum
- Hacker News awalnya dikembangkan dengan Arc, bahasa keluarga Lisp yang dibuat oleh Paul Graham
- Arc diimplementasikan di atas Racket, tetapi dalam beberapa bulan terakhir telah dipindahkan ke SBCL(Steel Bank Common Lisp)
- Alasannya adalah untuk meningkatkan performa
Performa dan perubahan fitur
- Dari sudut pandang penggunaan nyata, peningkatan performa telah terlihat, termasuk hilangnya pagination halaman
- Dulu thread komentar yang panjang memerlukan paging, tetapi sekarang berubah menjadi dimuat sekaligus dalam satu kali pemuatan
- Perubahan ini dimungkinkan oleh adopsi Clarc
- Clarc memungkinkan HN berjalan lancar di lingkungan multicore
- Pengembangan Clarc telah berlangsung selama beberapa tahun dan kini mendekati tahap penyelesaian
Metode implementasi dan struktur
- Ada Lilt yang mengonversi Arc ke JS, dan Clarc yang mengonversi Arc ke Common Lisp
- Struktur bawah dari implementasi Arc yang ada didesain ulang sehingga Arc dikembangkan dalam beberapa lapisan
- arc0 ditulis dalam bahasa sistem (Racket, JS, CL)
- arc1 ditulis di atas arc0, dan arc2 ditulis di atas arc1
- Seluruh fitur diimplementasikan pada lapisan atas (arc2), sementara lapisan bawah diminimalkan
- Berkat struktur ini, menjadi lebih mudah untuk mengimplementasikan ulang Arc di berbagai runtime
Isu terkait pembukaan source code
- Open-source untuk Clarc (implementasi Common Lisp dari Arc) relatif mudah dilakukan
- Hal itu dimungkinkan dengan mem-porting rilis Arc yang ada ke Clarc
- Aplikasi sampel HN versi awal sudah disertakan, sehingga tidak ada bagian khusus HN atau YC
- Namun, seluruh codebase HN memiliki berbagai mekanisme keamanan yang tertanam untuk mencegah penyalahgunaan
- Jika kodenya dibuka, ada risiko bagian ini menjadi tidak efektif
- Memisahkan bagian yang terkait keamanan merupakan beban kerja yang besar
2 komentar
Jadi penasaran GeekNews berjalan dengan teknologi apa ya wkwk
Komentar Hacker News
Ada pendapat bahwa Hacker News adalah contoh sempurna dari filosofi "Worse is better" yang diterapkan pada rekayasa sosial; pada akhir 90-an Slashdot punya fitur yang jauh lebih beragam dan kaya, tetapi faktor keberhasilan HN dinilai berasal dari fokus yang sangat sempit dan sistem moderasi yang kuat
Hacker News ternyata tidak ditulis ulang sepenuhnya ke Common Lisp; yang sebenarnya dilakukan adalah mengimplementasikan ulang Arc Runtime di Common Lisp
Dibagikan latar belakang bahwa Arc diimplementasikan di atas Racket, awalnya dimulai dari MzScheme (mula-mula inti dari PLT Scheme, kemudian berganti nama menjadi Racket), lalu dipindahkan ke Racket berkat kontribusi seorang pengembang bernama kogir
Ada kesan bahwa Dang juga ikut berkontribusi pada codebase, dan mungkin ada orang lain yang telah lama mendedikasikan waktunya untuk HN; bagi seseorang, komunitas HN adalah komunitas internet yang paling lama bertahan dan paling menyenangkan dalam hidupnya, sampai-sampai meski hanya sebagai peserta biasa, ia ingin bisa membantu Dang atau setidaknya mentraktirnya kopi
Setelah membaca penjelasan bahwa Clarc jauh lebih cepat dan mendukung multicore dengan baik, ada yang kaget mengetahui bahwa sebelumnya HN berjalan sepenuhnya di single-core
Sebagai operator situs web yang dibuat dengan kode Arc open source, ada harapan besar agar bisa memakai Clarc
Ada kekaguman bahwa sbcl (Steel Bank Common Lisp) benar-benar siap dipakai di lingkungan produksi; muncul dugaan bahwa kubu Racket mungkin tidak memperbaiki bug karena tidak menganggap Arc akan dipakai secara nyata di produksi. Ada pula penilaian bahwa belum pernah terdengar proyek produksi lain yang memakai Racket, sambil menyampaikan ketertarikan pada Armed Bear karena ekosistem library JVM-nya yang kuat, serta membagikan tautan Armed Bear Common Lisp
Ada yang menyoroti kejanggalan bahasa pada kalimat "HN runs on top of SBCL since a few months", lalu mengusulkan bentuk bahasa Inggris yang benar: "HN has been running on top of SBCL for a few months now."
Ada rasa ingin tahu apakah Paul Graham atau Robert Morris masih ikut terlibat dalam pengembangan; seseorang sudah menelusuri seluruh artikel tetapi tidak menemukan penyebutannya, dan juga penasaran ingin melihat apa yang ditambahkan Arc di atas CL(Common Lisp), sambil membagikan tautan arclanguage.org
Ada penilaian positif bahwa Common Lisp jauh lebih praktis daripada Racket, dan SBCL terasa nyaris seperti sihir