- HTML5 ayrıştırıcısı JustHTML’in Python’dan JavaScript’e tamamen taşındığı bir örnek; Codex CLI ve GPT-5.2 kullanılarak yaklaşık 4,5 saatte hayata geçirildi
- Yeni kütüphane JustJSHTML, bağımlılığı olmayan bir HTML5 ayrıştırıcısı olarak html5lib-tests’teki 9.200 testi geçti ve özgün API tasarımını birebir yeniden üretti
- Tüm süreç 8 istem ve birkaç ek komutla ilerledi; GPT-5.2 9.000 satır kod ve 43 commit’i otomatik oluşturdu
- Proje, otomatik commit, test, dokümantasyon ve playground sayfası üretimi dâhil olmak üzere eksiksiz bir açık kaynak biçiminde tamamlandı
- Bu deney, LLM tabanlı kodlama ajanlarının gerçek üretkenliğini gösterirken aynı zamanda telif, etik ve güvenilirlik sorunlarını yeniden gündeme getirdi
Projeye genel bakış
- JustHTML, Emil Stenström tarafından geliştirilen, standartlara uygun bir HTML5 ayrıştırıcısı olup Python ile yazılmış ve html5lib-tests’in tamamını geçen bir uygulama
- html5lib-tests, HTML5 ayrıştırıcıları arasındaki birlikte çalışabilirlik testlerinin standardı olarak Servo’nun html5ever’ı dâhil çeşitli projelerde kullanılıyor
- Simon Willison, bu projeyi doğrudan JavaScript’e taşımaya karar verdi ve Codex CLI ile GPT-5.2’yi kullanarak bunu en az düzeyde elle müdahaleyle gerçekleştirdi
- Ortaya çıkan JustJSHTML, hem tarayıcıda hem de Node.js ortamında çalışıyor ve harici bağımlılık olmadan saf JavaScript ile yazılmış durumda
Geliştirme süreci
- Yerel ortamda justhtml ve html5lib-tests depoları klonlandı, ardından yeni bir justjshtml dizini oluşturuldu
- Codex CLI,
--yolo seçeneğiyle (onay ve sandbox atlama) çalıştırılarak GPT-5.2 modeli devreye alındı
- İlk istemde mevcut Python kodunun analiz edilip yeni JavaScript API spesifikasyonunun (
spec.md) yazılması istendi
- Başlangıç aşaması (Milestone 0.5) olarak basit bir HTML belge ayrıştırma testini geçen sürüm uygulandı
- Sonraki aşamalarda “Implement Milestone 0.5”, “** commit and push often**” gibi komutlarla otomatik geliştirme sürdürüldü
- GitHub Actions yapılandırılarak her commit’te testlerin çalıştırılması sağlandı
- Toplamda 43 commit, 9.000 satır kod ve 9.200 testin geçilmesi sonucu elde edildi
Sonuçlar ve çıktılar
- Codex CLI toplam 2.089.858 token kullandı ve ChatGPT Plus aylık aboneliği kapsamında ek ücret olmadan çalıştırıldı
- Tamamlanan kütüphane şu özellikleri içeriyor
- stream(), query()/matches(), toMarkdown() gibi API genişletmeleri
- bağımlılıksız birim test betiği ve CI entegrasyonu
<br> etiketi işleme hatası gibi ayrıntılı bug düzeltmeleri
- playground.html otomatik üretildi ve tarayıcıda doğrudan test edilebiliyor
- README.md içinde kullanım, derleme süreci, Node.js ve HTML ortamı örnekleri yer alıyor
LLM kullanımının işaret ettikleri
- GPT-5.2, yüzlerce araç çağrısını ve saatler süren kesintisiz çalışmayı asgari gözetimle tamamladı
- Test odaklı problem tanımı mümkün olduğunda, bir kodlama ajanı yüksek tamamlanmışlık düzeyine sahip kodu otonom biçimde üretebiliyor
- Diller arası taşıma gibi yapısal işler LLM’ler tarafından son derece verimli biçimde yapılabiliyor
- Kod üretim maliyeti fiilen “neredeyse ücretsiz” seviyesine düşerken, doğrulanmış kodu sürdürmenin maliyeti hâlâ varlığını koruyor
Ortaya çıkan etik ve hukuki sorular
- Rust ve Python özgün kodlarının telif ihlali oluşturup oluşturmadığı
- LLM tarafından üretilen kodun telif hakkının kime ait olduğu
- Bu geliştirme biçiminin açık kaynak ekosistemi üzerindeki etkisi
- Otomatik üretilen kodun güvenilirliği ve üretim ortamında kullanım sorumluluğu
- İnsan uzmanların aylar içinde geliştirdiği kodla kalite açısından karşılaştırılabilir olup olmadığı
Sonuç
- Bu örnek, programlama otomasyonunda yeni bir aşamayı gösteriyor ve yapay zeka kodlama ajanlarının pratik potansiyelini kanıtlıyor
- Aynı zamanda hukuki ve etik standartların belirlenmesi gereğini ve açık kaynak iş birliği biçimlerinin yeniden tanımlanması ihtiyacını da geride bırakıyor
1 yorum
Hacker News görüşleri
Bu örnekte en ilginç nokta, dilden bağımsız testlere dayanan bir kütüphane portlama projesinin artık çok daha gerçekçi biçimde mümkün hale gelmiş olması
Buradaki kilit unsur, 9.000’den fazla HTML5 ayrıştırıcı testinden oluşan html5lib-tests paketi. Servo’nun html5ever’ı (Rust), Emil’in JustHTML’i (Python) ve benim JavaScript sürümüm bu testleri kullanıyor
Kodlama ajanını kullanarak Python kodunu JavaScript’e portlayabildim ve tüm testleri geçene kadar otomatik olarak tekrar tekrar çalıştırabildim
Bu tür standartlaştırılmış test paketleri nadir bulunuyor ama oldukları yerde büyük bir potansiyel gösteriyor
Dün birkaç saat içinde OCaml ile tipleri açıkça belirtilmiş bir sürüm yaptım ve saf OCaml HTML5 validator’ını otomatik kurması için ajanı çalıştırdım
html5lib testleri ile validator testlerini birleştirerek bağımlılığı az olan bir OCaml HTML5 validator’ı yapıyorum
Bu, adeta tersine biçimsel doğrulama gibi hissettiriyor — dağınık olgulardan (testlerden) yapılandırılmış bir spesifikasyona yaklaşma süreci
Diller arası örüntü eşleştirme konusunda epey güçlü görünüyor. Gizil uzay (latent space) açısından bakınca mantıklı geliyor
AI4AI makalesinde olduğu gibi, AI’ın AI yaptığı çağ başlamış gibi hissettiriyor
Aslında Firefox’un HTML5 ayrıştırıcısı ilk başta Java ile yazılmıştı, daha sonra Gecko için yarı otomatik olarak C++’a dönüştürüldü
JustHTML’i portlamak başlı başına iyi bir deney ama bana göre Java kodunu TypeScript’e taşımak daha üretken olurdu
İlgili klasöre ve yakın tarihli commit’lere bakınca kasım ayında da güncelleme olduğu görülüyor
1.000’den fazla commit ile oluşturduğu bu kütüphaneyi bir akşam içinde Python’a portlamayı denemek ilginçti
MIT lisansında orijinal telif hakkı bildirimi ile lisans metnini aynen korumak gerekir
Yani orijinal telif satırının altına kendi telif bilgini eklemek doğru yaklaşımdır
TypeScript’in avantajı geliştirici deneyimini iyileştirmesi; ancak makine tarafından üretilmiş kodda buna duyulan ihtiyaç azalıyor
“Kod neredeyse bedava” söyleminde asıl maliyet, insanların kodu anlayıp değiştirebilmesine bağlı
LLM’in ürettiği kodda da karmaşık hatalar veya bağlam sorunları söz konusu olduğunda nihayetinde insan müdahalesi gerekiyor
Orijinal deponun test sonuçlarına bakınca html5lib-tests’in 9.000 testinin tamamını geçtiği görülüyor
Ancak tarayıcılar arasında işleme biçimi farklı. Örneğin selectolax, html5lib ölçütüne göre %68 iken Chrome ile karşılaştırıldığında %90’ın üzerinde eşleşiyor
<svg title>SVG’ye özgü bir etiket ve ayrıştırıcının bunu tanıması gerekiyorTestleri Chrome’da da çalıştırmak ilginç olabilir
Yakın zamanda HN’de paylaşılan "Yazılım maliyeti %90 düştü" yazısıyla da bağlam örtüşüyor
Çoğu projede bu koşullar bulunmadığından genellemek zor
Telif hakkı ve etik meselesi konusunda ben de bir MIT lisanslı projeyi Claude Code ile Rust/Python sürümlerine portluyorum
Açık kaynak ruhunun, mevcut kodu iyileştirerek ekosistemi geliştirmek olduğunu düşünüyorum
Ancak GPL projelerini asla portlamıyorum
“Böyle bir şeyi yaptıktan sonra hukuki ve etik sorunları sormak sorumsuzluk” eleştirisi de vardı
Şu anda önemli olan, bunun “yalnızca mümkün değil, aynı zamanda şaşırtıcı derecede kolay” olduğunu göstermek diye düşünüyorum
Oracle yaklaşımı kullanılırsa standart testler olmasa bile bu iş pratik kalabiliyor
Orijinal programın girdi/çıktıları yakalanıp test olarak kullanılabiliyor ve Hypothesis gibi araçlarla binlerce durum otomatik üretilebiliyor
Artık kod tabanının yerine test paketinin kendisinin temel varlık haline geldiği bir döneme giriyoruz
GPT-5.2’nin 9.000 satırlık eksiksiz JavaScript kodu üretmesi $28.31 tuttu
Bu verimle 5–10 yıl içinde junior ve mid-level geliştiricilerin rolü ciddi biçimde azalabilir gibi görünüyor
Ayrıntı için maliyet hesaplama bağlantısına bakılabilir
Yine de küçük ekosistemlere sahip diller için ciddi ekonomik değişimler yaratacaktır
Her AI portlama girişimi başarılı olmuyor. Başarısız örnekler de var → The port I couldn’t ship
Hangi projelerin kolay, hangi yaklaşımın daha hızlı olduğuna dair veri birikirse çok ilginç bir analiz çıkabilir
Simon böyle karşılaştırmalı deneyler yaparsa gerçekten çok ilginç olur