7 puan yazan GN⁺ 2026-01-29 | 4 yorum | WhatsApp'ta paylaş
  • HTML ve CSS render edebilen bir tarayıcı, yalnızca 3 gün içinde bir insan ve bir LLM ajanı tarafından Rust ile doğrudan geliştirildi
  • Proje yaklaşık 20.150 satır kodla tamamlandı; kaydırma, geri gitme, headless modu gibi temel özellikleri içeriyor
  • Harici Rust kütüphaneleri olmadan Windows, macOS ve Linux'ta çalışacak şekilde tasarlandı
  • Geliştirme süreci Codex ajanıyla iş birliği içinde yürütüldü; insan koordinasyon ve doğrulamayı üstlenirken ajan kod yazımını gerçekleştirdi
  • Sonuç olarak 'bir insan + bir ajan' kombinasyonunun çok sayıda ajandan daha verimli olduğunu gösteren bir örnek oldu

Projeye genel bakış

  • Amaç, HTML ve CSS render edebilen temel bir tarayıcıyı tamamen sıfırdan oluşturmak
    • JavaScript desteklenmiyor
    • Geliştirici buna “eğlencesine” başladı ve LLM ajanı (Codex) ile iş birliği içinde ilerledi
  • 3 gün içinde tamamlama, harici Rust bağımlılığı yasağı, 3 büyük işletim sistemi desteği gibi kısıtlar belirlendi
  • Tarayıcı kendi render motoruna sahip ve ekran görüntüsü alma, bağlantı tıklama ve regresyon testi özelliklerini içeriyor

1. Gün – İlk uygulama

  • “Hello World” render etmekle başlanıp iç içe etiket işleme ve ekran görüntüsü alma özelliği eklendi
  • HTML/CSS spesifikasyonu tanımlandı ve E2E testleri için görüntü karşılaştırma özelliği devreye alındı
  • Sadece bir gün içinde X11 ve cURL kullanarak web sitelerini alıp render eden bir seviyeye ulaşıldı
    • Kod tabanı yaklaşık 7.500 satıra çıktı, tüm dosyalar 1.000 satırın altında tutuldu

2. Gün – Özellik genişletme

  • Testler sırasında pencerenin açılması sorununu çözmek için --headless modu eklendi
  • Pencere yeniden boyutlandırma, uyumluluk, performans ve yazı tipi render etme iyileştirildi
  • İş akışı, web sitesi ekran görüntülerini paylaşmak ve Codex'in bunları yeniden üretmesini sağlamak üzerine kuruldu
    • Kodun büyük bölümünü ajan yazdı, insan ise inceleme ve onay görevini üstlendi

3.~4. Gün – Tamamlama ve çapraz platform desteği

  • Kaydırma, hata ayıklama günlükleri, geri düğmesi gibi tarayıcı için temel özellikler eklendi
  • macOS ve Windows desteği geliştirildi ve testlerden geçti
  • CI entegrasyonu ve sürüm yapısı tamamlandı, toplam geliştirme süresi yaklaşık 72 saat oldu

Sonuçlar ve kod istatistikleri

  • Nihai kod tabanı yaklaşık 20.150 satırdan ve 72 dosyadan oluşuyor
  • Başlıca dosyalar arasında layout, style, platform, browser modülleri yer alıyor
  • Cargo.lock boş, yani harici Rust paketi olmadan tamamen bağımsız çalıştırılabiliyor
  • GitHub üzerinden CI ile derlenmiş ikili dosyalar ve kaynak kod doğrudan indirilebiliyor

Başlıca dersler

  • Bir insan + bir ajan kombinasyonu, binlerce ajan kullanmaktan daha verimli
  • Tek bir ajan, uzun süre boyunca tek bir kod tabanıyla çalışarak gerçek ilerleme sağlayabiliyor
  • Her insanın kendi ajanına sahip olduğu bir yapıyla ölçeklenme potansiyeli var
  • Yavaşlamak, ironik biçimde daha hızlı ve daha iyi sonuçlar doğurabiliyor
  • Ajanı yöneten insanın rolü, sistem tasarımından daha önemli olabilir
  • Sonuç olarak, “Birden fazla ajanı devreye sokmak geliştirmeyi hızlandırır mı?” sorusuna karşılık
    tek bir insan-ajans iş birliğinin daha gerçekçi ve daha verimli olabileceğini gösteren bir örnek

4 yorum

 
pkj3186 2026-01-29

Ben pek bilmiyorum da, Hacker News yorumlarında geçen simon의 블로그 nasıl bir blog da sürekli anılıyor acaba...?

 
laeyoung 2026-01-29

Simon Willison'ın yazdığı blog gönderisinin Hacker News'te sık anılmasının nedeni muhtemelen şunlar:

  1. Yapay zeka ile ilgili yazıları hem iyi hem de hızlı şekilde çokça yazmasının bir nedeni vardır. Yapay zeka performans testi yapılırken sıkça kullanılan "bisiklete binen pelikan" çizimi de galiba önce bu adamdan çıkmıştı (https://simonwillison.net/search/?q=pelican)
  2. Django'yu yapan kişi olduğu için bilinirliği de var.
 
qyurila 2026-01-29

2025'te Hacker News'te en popüler olan bloglar arasında 1. sıradaki blog bu. İtibarı bir yana, yayımlanan yazı sayısı da oldukça fazla olduğu için, sıradan bir Hacker News kullanıcısının en sık ziyaret ettiği bloglardan biri olarak doğal biçimde bir ölçüt kabul edildiğini düşünüyorum.

 
GN⁺ 2026-01-29
Hacker News görüşleri
  • Bence bu, Cursor’un FastRender’ından çok daha iyi bir kod üretimli tarayıcı demosu
    Yaklaşık 20 bin satır Rust ile çok daha küçük; görüntü ve metin render etmede yalnızca sistem kütüphanelerini kullanıyor ve kodu da okunması kolay
    Örneğin flexbox uygulama koduna bakınca net şekilde görülüyor
    Blogumu render eden bir ekran görüntüsü da paylaştım; CSS gradient’leri ve SVG ikonları iyi işliyor ama PNG’de başarısız oluyor
    HTML+CSS render eden bir tarayıcının paralel ajan gösterimi için mükemmel bir görev olduğunu düşünmüştüm, ama tek bir kodlama ajanıyla bile bunun mümkün olması şaşırtıcı

    • Mühendislik açısından bakınca bunun Cursor’un tarayıcısından çok daha olgun bir tasarım olduğunu düşünüyorum
      Önemli olan sadece çok fazla token harcamak değil, ajanları etkili biçimde nasıl kullanacağını bilmek
      Ben de birkaç gün sonra terk ettiğim birçok proje ürettim. Ajanlar geri bildirim olmadan sadece söyleneni yaptığı için, yanlış yöne gittiklerinde aslında daha derin bir çukur kazıyorlar
    • İnsan ile ajanın işbirliğinin belirleyici farkı yarattığını düşünüyorum
      Claude alakasız bir yöne gitse bile, doğru ajan yapısı varsa yeniden toparlanabiliyor
      Şu anda değerlendirici, araştırmacı ve uygulayıcı ajanları ayırdığım bir deney yürütüyorum
      Puan bazlı olarak testleri genişletiyor veya başarısızlık nedenlerini araştırmalarını sağlıyor, iyileşme yoksa commit’i atıyorum
      Böyle bir yapı kod kalitesini yönetmek açısından çok daha avantajlı
      Kodun ucuz ve atılabilir olduğu bir çağda, iş akışının kendisinin değişmesi gerekiyor
    • embedding-shapes’in bunu doğrudan kendi eliyle ortaya çıkarması etkileyici
      1 kişi + 1 ajanın, 5 milyon dolar ve 1,6 milyon LOC’lik bir tarayıcıyı yendiği bir “David vs Goliath” hikayesi gibi hissettiriyor
      Yapay zeka hâlâ bir kara kutu; herkes deney yaparak yönünü bulmaya çalışıyor
      2026’nın üzerinden daha bir ay geçti ama bundan sonra ne tür deneyler çıkacağını görmek heyecan verici
      Simon düzenli olarak HN’in 2026 tahmin başlığını gözden geçirse eğlenceli olabilir
  • 3 günlük bir sınır koyup, Rust üçüncü taraf crate’leri olmadan yalnızca işletim sisteminin varsayılan kütüphanelerini kullanarak X11/Windows/macOS desteği sağlama kuralı koydu
    Yaklaşık 20 bin LOC ile tamamladı; bunun 14 bin satırı motor, 6 bin satırı ise platform destek kodu
    Kaynak kodu ve ikilileri paylaştı

    • 20 yıl önce KHTML/konqueror’a katkı verdiğimde, temel render’ı bile hayata geçirmek aylar sürüyordu
      Şimdi ise makine tarafından okunabilir test suite’leri sayesinde çok daha verimli
      Eskiden IE’nin davranışı fiili standart gibiydi; şimdi Google, Apple ve diğerleri standardizasyona katkı veriyor, bu yüzden durum çok daha iyi
    • Hangi modeli kullandığını ve token maliyetinin ne kadar olduğunu merak ediyorum
    • Kısıtlar harika
  • İşlevsellikten bağımsız olarak, böyle bir kod tabanının güvenlik denetimi nasıl olurdu merak ediyorum
    Rust yardımcı olur ama sadece dilin sağladığı garantilerin yeterli olup olmadığından emin değilim

    • Güvenlik hiç düşünülmemiş. Sandbox olmadan rastgele web siteleri açmak tehlikeli
      Rust yalnızca temel bellek hatalarını engeller; yerel dosyalara erişim gibi şeyleri engellemez
      JS motoru olmadığı için veri sızdırmak zor, ama denetlense ciddi açıklar çıkması muhtemel görünüyor
  • Topluluk browserBench’i bekliyordu; sonunda başlamasına sevindim
    Tarayıcılar en karmaşık yazılımlardan biri, bu yüzden böyle bir girişim sınır değerlendirmesi için bir referans noktası olacak

  • 20 bin satırla bir tarayıcı yapmak pek aklıma yatmıyor
    Sadece zlib bile 12 bin satır; bir şey eksik gibi geliyor
    Acaba sadece işletim sisteminin render çağrılarını mı kullanıyor?

    • Linux’ta X11, glib, grafik formatları, kriptografi vb. için 78 dinamik kütüphane bağlıyor
    • Rust bağımlılığı yok; işletim sisteminin varsayılan framework’lerini kullanıyor
      Hangi kütüphanelerin kullanıldığı README’de belirtilmiş
  • Ben çalıştırınca render oldukça dağınık göründü
    Link renkleri ve alt çizgiler tutarlı değil, Windows’ta geri düğmesi de çalışmıyor
    Yine de HN ana sayfasını ve Simon’un blogunu oldukça iyi render ediyor

    • Bu tarayıcı bağımsız bir ürün olmaktan çok, Cursor’un scaling-agents yazısına verilmiş bir yanıt projesi
      Amaç, daha az LOC ile benzer işlevselliği hayata geçirmekti
      Varsayılan stylesheet olmadığı için link renkleri tutarlı değil
      Windows 11’de geri düğmesi çalışıyor. Eğer Windows 10 kullanıyorsanız sebep bu olabilir
  • Simon’un blogunu render etmek, AI tarayıcılarının temsilî hedefi haline gelecek gibi görünüyor
    Ama şimdilik gerçek bir tarayıcıdan çok bir renderer seviyesinde
    Servo gibi projelerde yapay zekanın API implementasyonu tarafını tamamlaması daha etkileyici olurdu

    • Katılıyorum. Buna tarayıcı demek zor; temel HTML’yi bile düzgün render edemiyor ve sık sık çöküyor
      Yine de Cursor’un denemesinden daha iyi ve en azından “derleniyor” olması asgari bir ilerleme
  • Bunu tek başına yapsaydı ne kadar sürerdi merak ediyorum
    Ajanın katkısını anlayabilmek için, o rehbere giren uzmanlığın derinliğini bilmek isterdim

    • Tek başıma muhtemelen imkânsız olurdu
      Rust biliyorum ama X11, macOS ya da Windows API’lerini bilmiyordum; o yüzden başlamam bile zor olurdu
      Yine de test, altyapı ve tasarım konusunda çok deneyimim var, bu da ajanla işbirliği yapmamda yardımcı oldu
    • sloccount aracıyla hesaplayınca
      bu projenin 2000 ölçütlerine göre 4,58 insan-yılı, 610 bin dolar,
      2025 ölçütlerine göre ise 5,6 yıl, 1,38 milyon dolar büyüklüğünde olduğu tahmin ediliyor
  • Bu yazıyı ilginç kılan şey, ortaya çıkan üründen çok yapım süreci ve kısıtlar üzerine odaklanması
    Çoğu yazı sonuç ürününe veya yazara odaklanırken, bu yazı süreç odaklı bir içgörü sunuyor

    • Ben de Cursor’la ilgili yazı yazmış biri olarak, onların “başarı” tanımını giderek daha az anlayabiliyordum
      Bu yüzden gerçekten zor kısmın ne olduğunu ve sürecin hangi noktasında yanlış yapıldığını araştırmanın daha anlamlı olduğunu hissettim
  • Etkileyici bir çalışma
    Erişilebilirliği (Accessibility) Rust bağımlılığı olmadan nasıl uygulayabileceklerini merak ediyorum
    Windows/macOS tarafında UI Automation ve NSAccessibility ile mümkün, ama X11’de

    1. D-Bus üzerinden AT-SPI’yi baştan uygulamak ya da
    2. mevcut bir D-Bus C kütüphanesi kullanmak ya da
    3. GTK veya Qt kullanmak gibi yollar var