3 poin oleh GN⁺ 2025-05-27 | 2 komentar | Bagikan ke WhatsApp
  • 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

 
ilotoki0804 2025-05-30

Jadi penasaran GeekNews berjalan dengan teknologi apa ya wkwk

 
GN⁺ 2025-05-27
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

    • Ada juga celetukan kagum bahwa akhirnya sistem Lisp menjadi pembawa panji utama "Worse is better"
    • Disorot ironi bahwa platform ini dijalankan di atas teknologi seminimal mungkin, sementara operasional HN mengandalkan campur tangan manusia, seolah ada pengakuan naluriah bahwa 'lebih banyak teknologi tidak selalu membantu semua orang'
    • HN memang punya sedikit fitur, tetapi ini memunculkan pertanyaan apakah kita benar-benar membutuhkan lebih banyak fitur; justru karena fiturnya sedikit, ada penilaian positif bahwa ia terasa minimalis, mengingatkan pada ungkapan 'less is more'
    • Ada pandangan bahwa HN sangat terbantu karena tidak perlu menghasilkan keuntungan
    • Disebut kutipan terkenal Antoine de Saint-Exupéry bahwa kesempurnaan dicapai bukan saat tidak ada lagi yang bisa ditambahkan, melainkan saat tidak ada lagi yang bisa dihapus
  • Hacker News ternyata tidak ditulis ulang sepenuhnya ke Common Lisp; yang sebenarnya dilakukan adalah mengimplementasikan ulang Arc Runtime di Common Lisp

    • Ada kekaguman bahwa justru hal seperti inilah yang paling dikuasai 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 komentar bahwa MzScheme adalah bagian inti (non-GUI) dari PLT Scheme (sekarang Racket), dan berdasarkan arsip mailing list lama pg tampaknya memulai pengembangan Arc di atas Scheme48 sebelum pindah ke PLT, sesuatu yang selalu membuat penasaran
    • Muncul pertanyaan bercanda apakah kita sedang berputar mengelilingi semua implementasi Lisp, dianalogikan sebagai versi 'kapal Theseus yang aneh'
    • Ada juga yang bertanya apakah MzScheme, PLT Scheme, dan Racket pada dasarnya bukan hal yang sama
  • 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

    • Namun ada pengingat bahwa Hacker News (dulu Startup News) pada dasarnya berfungsi sebagai departemen pemasaran Y Combinator, salah satu firma investasi paling sukses di dunia, dan bahwa pendiri HN sekaligus penulis aslinya Paul Graham kini setidaknya seorang miliarder; meski begitu, HN tetap berupaya mandiri secara finansial dan juga menerima donasi
  • 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

    • Dijelaskan bahwa CPU modern sangat cepat; bahkan 4chan pernah melayani 4 juta pengguna dengan 10 ribu baris kode PHP spaghetti berusia 10 tahun dan hanya 1 server. Dengan kualitas kode minimum yang layak, profiling, dan optimisasi, lalu lintas yang sangat besar pun bisa ditangani hanya dengan sebagian kecil inti CPU; bottleneck utamanya biasanya justru disk dan network I/O. Karena HN hanya menyajikan teks, tugasnya relatif lebih mudah
    • Ada komentar jenaka bahwa setiap kali seorang developer menyadari betapa bengkak dan lambatnya software modern, seekor malaikat mendapatkan sayapnya
    • Ada keterkejutan bahwa HN benar-benar berjalan pada satu proses, satu core, dan satu server, disertai tautan ke diskusi HN terkait
    • Ada saran praktis bahwa jika CPU modern dimanfaatkan dengan benar, performanya bisa luar biasa baik sehingga mampu menangani banyak throughput bahkan sebelum perlu scale-out
    • Dibagikan juga berbagai tautan diskusi lama: tautan1, tautan2, tautan3, tautan4
  • Sebagai operator situs web yang dibuat dengan kode Arc open source, ada harapan besar agar bisa memakai Clarc

    • Lalu ada yang bertanya situs apa itu
  • 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 membagikan pengalaman bahwa komunitas Racket selalu sangat ramah dan memperbaiki setiap bug yang diminta
  • 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."

    • Dijelaskan bahwa "since" semestinya dipakai bersama titik waktu (at a point in time), sedangkan "a few months" adalah durasi (length of time), sehingga terasa janggal; "since a few months ago" atau "as of a few months ago" terdengar lebih alami. Selain itu, paragraf pertama juga mencampur tenses sehingga kejanggalannya makin menonjol
  • 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

    • Dijawab bahwa kedua pengembang itu sudah lama meninggalkan proyek tersebut
  • Ada penilaian positif bahwa Common Lisp jauh lebih praktis daripada Racket, dan SBCL terasa nyaris seperti sihir