← Radar

Konu: Kodlama4 dk okuma

Her yazılım açık kaynak mı oldu? Ajanlarla "temiz oda" kopyalar ve tersine mühendislik

Bu neden önemli?

Ajanlar kodu ucuzlattı. İzleyebildikleri ve test edebildikleri bir uygulamayı tarif edip yeniden yazabiliyorlar. Bu, kendi ihtiyacına göre yazılım yapmayı kolaylaştırıyor; ama "kopya" ile "bağımsız yeniden yazım" arasındaki çizgiyi, testlerin değerini ve kapalı kaynak yazılımın ne kadar kapalı olduğunu yeniden sorgulatıyor.

Adobe’nin olmayan Adobe uygulamaları

Ekim başında ArtCraft ekibi “Crafting Apps” adını verdiği yedi uygulamayı açık kaynak olarak yayınladı. Her biri bir Adobe ürününün karşılığı: PhotoCraft (Photoshop), VectorCraft (vektör çizim), FilmCraft (video kurgu), LightCraft (fotoğraf arşivi ve raw işleme), PdfCraft, EffectCraft (hareketli grafik) ve DesignCraft (sayfa tasarımı). Hepsi baştan Rust ile yazılmış. macOS, Windows, Linux ve tarayıcıda çalışıyor.

Videoya göre geliştiricinin motivasyonu tanıdık: Adobe aboneliğini iptal ederken ödenen cayma bedeli. Proje Hacker News’te hızla yayıldı. Ama videonun aktardığına göre, uygulamaları gerçekten deneyen tasarımcılardan biri basit projelerde yazı aracının ve kısayolların çalışmadığını yazdı.

“Temiz oda” ne demek?

PhotoCraft kendini Photoshop’un clean-room (temiz oda) yeniden yazımı olarak tanıtıyor. Klasik anlamda bu, orijinal programın koduna hiç bakmadan, sadece herkese açık belgelerden ve programın dışarıdan görünen davranışından yola çıkarak aynı işi yapan yeni bir program yazmak demek. Projenin açıklamasına göre Adobe’ye ait kod, shader ya da görsel kullanılmadı. PSD desteği de Adobe’nin yayınladığı dosya biçimi belgesinden yazıldı. Açık bir PSD test setindeki 309 dosyanın 307’si açılıp kaydedildikten sonra aynı görünüyor.

Ancak bu sözün ne kadar sıkı uygulandığını dışarıdan doğrulamak mümkün değil. Videodaki yorum, arayüzün Adobe ekran görüntülerinden fazlasıyla etkilendiği yönünde. Proje kendi karşılaştırma belgesinde, kurulu Photoshop’un dosyalarını (menüler, kısayol listeleri, programdaki metinler) çalıştırmadan incelediğini de yazıyor.

Proje kendi durumu hakkında dürüst. 10 Ekim tarihli değerlendirmeye göre Photoshop’taki özelliklerin yaklaşık %76’sı bir biçimde var, ama “profesyonel biri Photoshop’u bununla değiştirebilir mi?” sorusunun cevabı yaklaşık %45. Proje hâlâ alfa aşamasında. İlk sürümden bu yana 1.200’den fazla hata kaydı açılmış. Daha önceki %82’lik tahminin “fazla iyimser” olduğunu da kendileri yazıyor.

Uygulamaların asıl farkı ajanlara göre tasarlanması. PhotoCraft’ta her menü öğesi ve araç 500’den fazla komuttan oluşan tek bir kayıt defterinden çalışıyor. Aynı komutlara komut satırından ya da bir MCP sunucusu üzerinden de ulaşılabiliyor. Yani bir ajan, senin tıklayabildiğin her şeyi yapabiliyor.

REA: Ajana tersine mühendislik araçları

Aynı günlerde GitHub’ın trend listesinin başında REA (Reverse Engineer Anything) vardı. Kendisi tersine mühendislik yapmıyor. Kodlama ajanını bu işin yerleşik araçlarına bağlayan bir MCP sunucusu ve bir talimat seti (skill). Derlenmiş programlar için Hopper, Ghidra ya da IDA’yı kullanıyor. Electron ve JavaScript uygulamalarını, .NET programlarını, Android APK’larını ve web sitelerini de inceleyebiliyor. npx rea-agents setup komutu onu Claude Code, Codex, Cursor gibi ajanlara ekliyor. Analiz yerel makinede çalışıyor ve her sonuç, dayandığı kanıtla birlikte dönüyor.

Kullanım şekli şöyle: “Notlar uygulamasında arama nasıl çalışıyor? Kanıtını göster ve benim projeme benzerini yaz.” Projenin örneklerinden biri, 90’ların DX-Ball oyununda sesin sağ-sol dengesini hesaplayan küçük bir fonksiyonu C’ye geri çeviriyor. Yeniden yazılan kod, orijinal x86 koduyla 3.205 test durumunda aynı sonucu veriyor.

Videoyu hazırlayan kişi REA’yı kurmadan, sadece Opus 5.5 ile bir deneme yapmış: Windows’un eski Space Cadet Pinball oyununun .exe dosyasını Rust’a çevirtmek. Videoya göre ajan kendi araçlarını yazıp programı parçalara ayırmış, işi 15 alt ajana bölmüş ve yaklaşık iki buçuk saatte Mac’te çalışan 31 bin satırlık bir Rust sürümü çıkarmış.

Testler artık şartname

Bu hikâyelerin ortak noktası şu: Ajanlar, sonucu doğrulanabilen işte çok iyi. Elinde bir test paketi ya da “orijinal ne yapıyorsa aynısını yap” diye karşılaştırabileceği bir hedef varsa, testler geçene kadar çalışmaya devam ediyor. Cloudflare Şubat’ta bunu açıkça göstermişti: Bir mühendis bir yapay zekâ modeliyle Next.js’in API’sini bir haftada Vite üzerinde yeniden yazdı. Bu proje vinext adını aldı ve token maliyeti yaklaşık 1.100 dolar tuttu. Ajanı raylarda tutmak yazısında anlattığımız fikir burada da geçerli: Ajanın işini ölçen şey senin testlerin.

Bunun bir yan etkisi var. Kapsamlı bir test paketi artık bir projeyi kopyalamak için hazır bir tarif gibi. Videoya göre bazı açık kaynak projeler testlerini gizlemeyi konuşuyor.

Hukuki taraf ülkeye ve lisansa göre değişiyor. Çoğu ticari yazılımın lisans sözleşmesi tersine mühendisliği yasaklıyor. AB’de ise yazılımların korunmasına dair yönerge, başka programlarla birlikte çalışabilirlik için sınırlı bir istisna tanıyor. “Ajan yaptı” demek bu kuralları değiştirmiyor. Kendi kullanımın için küçük bir araç yazmakla bir ürünü kopyalayıp dağıtmak aynı şey değil.

vinext’in Next.js’in kendi testleriyle nasıl yapıldığını vinext yazımızda anlattık.

Düşün

  • Kullandığın bir uygulamadaki tek bir özelliği kendi projene almak istesen, onu tarif etmek mi daha zor olurdu, yeniden yazmak mı?
  • Senin projenin test paketi, başkasının projeni sıfırdan yeniden yazması için yeterli bir tarif mi?

Videoyu izle

Tıklayınca video YouTube'dan yüklenir; o ana kadar bu sayfa YouTube'a hiçbir istek göndermez.
Kaynaklar (10, İngilizce)

Kendi cümlelerimizle yazılmış bir özettir, çeviri değildir. Tüm kaynaklar yukarıda.