8 puan yazan GN⁺ 2025-11-02 | 2 yorum | WhatsApp'ta paylaş
  • Hiç uygulama mantığı olmayan bir web sunucusu kurularak, tüm isteklerin LLM tarafından işlendiği bir deney yapıldı
    • Sunucu yalnızca HTTP isteklerini alıp LLM'e “ne yapılmalı?” diye soruyor, geri kalan her şeyi LLM yapıyor
  • Sunucu, CRUD işlevlerini yerine getirmek için yalnızca database, webResponse ve updateMemory adlı üç aracı kullanıyor
  • LLM, SQL şema tasarımı, HTML·JSON üretimi ve geri bildirimlerin uygulanması dahil her şeyi kendi başına yaparak temel bir kişi yönetimi uygulaması kuruyor
  • Yanıt süresi 30~60 saniye, maliyet ise geleneksel web uygulamalarına kıyasla 100~1000 kat daha yüksek; ayrıca UI tutarlılığı ve hafıza sorunları var
  • Buna rağmen, kod olmadan çalışan eksiksiz bir CRUD uygulamasının gerçekleştirilebileceğini göstererek, kodun kendisinin geçiş dönemi bir kavram olabileceğine işaret ediyor

Arka plan

  • Her şey, "bir gün kod yazmamıza gerek kalmayacak" şeklindeki spekülatif bir fikrin (Shower Thought) çıkış noktası olmasıyla başladı
    • Gelecekte LLM'ler gerçek zamanlı girdileri işleyip 120fps video üretebilir ve uygulamaların da kodun da olmadığı, tamamen niyet temelli bir bilişim mümkün olabilir
  • Bugün için bu hâlâ bilim kurgu alanına girse de, hafta sonu boyunca bir deney olarak "mevcut teknolojiyle ne kadar ileri gidilebileceğini" doğrudan test etmeye karar verildi
  • Deneyin hipotezi, başarısızlık beklentisiyle yola çıktı
    • AI dünyasının büyük kısmı kod üretme yönüne odaklanmışken (ör. Claude Code, Cursor, Copilot vb.),
      "kod üretimini tamamen atlarsak ne olur?" sorusunu farklı bir bakış açısından sınamak için bu proje yapıldı
  • Sonuçta route, controller ve business logic içermeyen bir HTTP sunucusu oluşturuldu; her istek için LLM'e “ne yapılmalı?” diye soran bir yapı kuruldu
  • Deneyin amacı, "o geleceğin aslında ne kadar uzakta olduğunu" kanıtlamaktı

Projeye genel bakış

  • nokode, “uygulama mantığı olmayan bir web sunucusu” kurup tüm istekleri LLM'in işlemesine bırakan yapıyı test eden deneysel bir proje
    • Sunucu yalnızca HTTP isteklerini alıp LLM'e “ne yapılmalı?” diye soruyor, geri kalan her şeyi LLM yapıyor
  • Amaç, kod üretimi olmadan LLM'in uygulama mantığını doğrudan yerine getirip getiremeyeceğini doğrulamak
  • Deney için seçilen uygulama, temel CRUD işlevleri (ekleme, görüntüleme, düzenleme, silme) içeren bir kişi yönetimi uygulaması (contact manager)

Sistem yapısı

  • Backend yalnızca 3 araçtan oluşuyor
    • database: SQLite üzerinde SQL çalıştırır; şemayı LLM doğrudan tasarlar
    • webResponse: HTML, JavaScript, JSON gibi uygun biçimde yanıt üretir
    • updateMemory: kullanıcı geri bildirimlerini Markdown olarak kaydeder ve sonraki isteklerde başvurur
  • Örneğin /contacts isteğinde HTML sayfası, /api/contacts isteğinde JSON yanıtı üretiliyor
  • Her sayfada bir geri bildirim widget'ı bulunuyor; “butonu büyüt”, “koyu temaya geçir” gibi istekler anında uygulanıyor

Deney sonuçları

  • İşlevsel olarak başarılı şekilde çalıştı
    • Form gönderimi, veri kaydı, UI gösterimi ve API yanıtı sorunsuz çalıştı
    • LLM, örnek verilmeden bile uygun veritabanı şeması, güvenli SQL, REST tarzı API, duyarlı yerleşim, form doğrulama ve hata işleme üretti
  • Performans sorunları var
    • İstek başına 30~60 saniye sürüyor; bu da geleneksel web uygulamalarına (10~100ms) kıyasla 300~6000 kat daha yavaş
    • İstek başına $0.01~0.05 maliyet oluşuyor; yani 100~1000 kat daha pahalı
    • UI renkleri ve yerleşiminde tutarsızlık, önceki durumu hatırlayamama ve hatalı SQL üretildiğinde anında hata oluşması gibi sorunlar var
    • “⚡ THINK QUICKLY” gibi prompt optimizasyon denemeleri ise tam tersine hızı düşürdü

Sonuç ve çıkarımlar

  • LLM'lerin uygulama mantığını doğrudan yerine getirebilme yeteneği gerçekten var
  • Asıl sorun, hız, maliyet, tutarlılık ve güvenilirlik gibi performans sınırlamaları
  • Ancak bu sınırlamalar, niteliksel bir engelden çok niceliksel iyileştirme alanı olarak görülüyor
    • Akıl yürütme hızı her yıl yaklaşık 10 kat artıyor
    • Maliyetler düşme eğiliminde
    • Daha uzun context pencereleriyle hafızanın gelişme ihtimali var
    • Hata oranı da azalma eğiliminde
  • Sonuç olarak, "AI'ın kod yazdığı dönemden" çok "AI'ın doğrudan çalıştırdığı döneme" daha yakın olabiliriz
  • Şu anda geriye yalnızca HTTP yapılandırması, araç tanımı, DB bağlantısı gibi altyapı düzeyindeki kodlar kalıyor;
    uzun vadede ise "yalnızca niyet ve icranın var olduğu bir bilişim" modeline geçiş ihtimali ortaya çıkıyor

Çalıştırma yöntemi

  • npm install sonrasında .env dosyasında LLM sağlayıcısını ve API anahtarını ayarlayın
  • npm start çalıştırdıktan sonra http://localhost:3001 adresine gidin (ilk istek 30~60 saniye sürer)
  • prompt.md dosyasını düzenleyerek uygulama türünü veya işlevleri değiştirebilirsiniz
    • /game, /dashboard, /api/stats gibi farklı yollar denenebilir
    • “make this purple”, “add a search box” gibi geri bildirimler girilince anında uygulanır
  • İstek başına maliyet, modele göre $0.001~0.05 düzeyinde
  • MIT lisansı ile yayımlanıyor

2 yorum

 
aer0700 2025-11-05

Sorun, bilişimin ne kadar hızlanıp ne kadar ucuzlayacağı gibi görünüyor.
Ortalama bir sunucunun bugüne göre 100 bin kat daha hızlı olduğu, ama işletme maliyeti ya da kurulum maliyetinin yine de aynı kaldığı bir gelecekte, bunun da doğru bir yöntem olması muhtemel.
Bilişim ucuzladıkça makine dili yerine C'ye, C yerine de Node.js ya da Python'a geçildiği gibi, ileride LLM'e de geçilebilir.
Pek çok şey değişecek ve bence oldukça ilginç olacak. Çeşitli fırsatlar da ortaya çıkacaktır.

 
GN⁺ 2025-11-02
Hacker News görüşleri
  • Ben de benzer şeyler düşünüyordum

    1. Eğer kod üretimi tamamen otomatikleşir ve her Google araması gerçek zamanlı olarak özelleştirilmiş bir sayfa üretirse, insanların artık web sitesi yapmasına gerek kalmaz mı? O noktada “web geliştirme”, kod yazmaktan çok niyet şekillendirmeye (intent-shaping) benzeyecek gibi görünüyor
    2. Ayrıca sohbetin kullanıcı arayüzünün ideal biçimi olduğu iddiasına katılmıyorum. Doğal dil esnek ama yavaş, belirsiz ve bilişsel yükü yüksek. Muhtemelen LLM tabanlı sistemlerin sohbet ile yapılandırılmış etkileşimi birleştiren yeni bir UI modeline ihtiyacı olacak
  • Bunu ilk kez ChatGPT 3.5 çıktığında düşünmüştüm
    Bir gün AI programların yerini tamamen alabilir belki, ama asıl mesele doğru soyutlamayı (abstraction) bulmak
    Örneğin CVS’ten Git’e geçişin mikroservis çağının önünü açması gibi, iyi bir soyutlama problemin doğasını kökten değiştirebilir
    LLM’in böyle soyutlamaları kendi başına keşfetmesi için gerçek dünyayla uzun süre etkileşime girerek öğrenmesi gerekir

  • LLM’in doğrudan kod dosyalarını düzenleyebildiği araçlar eklenirse, yanıt hızı ve tutarlılık büyük ölçüde artar gibi geliyor
    Kod bir tür bellek deposu (memory) işlevi görmüş olur
    LLM’e doğrudan HTTP isteği göndermek bir cache miss’e benziyor; ayrıca kod güncellemelerini tetikleyen bir geri bildirim mekanizması da korunabilir

    • Bu sadece basit bir deneydi ve hâlâ çok sayıda darboğaz olduğunu göstermek amaçlanmıştı
      Optimizasyon için çok alan var ama gerçekçi olarak bakınca geleneksel kodlama yaklaşımı hâlâ daha verimli gibi duruyor
    • Bu tür bir mimari, adeta bir tohum (seed) ekmek gibi; büyümenin yönünü ve sınırlarını tanımlıyorsunuz
    • Bunu kendin yapman güzel olurdu
  • Bu bana “deterministik olmayan (non-deterministic) davranış mümkünse neden ille de deterministik olsun?” sorusu gibi geliyor
    Ama çoğu insanın her seferinde farklı çalışan bir web uygulaması isteyeceğini sanmıyorum

    • Aslında insanların istediği şey “web uygulaması”nın kendisi değil, bir çözüm (solution)
      Deterministik kod karmaşık problemleri ele almakta sınırlı kalabilir ve insan benzeri esnek bir yaklaşım daha uygun olabilir
    • Bugünkü LLM’ler çoğunlukla metin çıktısı ile sınırlı ve neredeyse hiç uzun süreli belleğe sahip değil
      Ama gelecekte LLM’ler daha zengin çıktı ve depolama yetenekleri kazanacak
      Örneğin LLM doğrudan bağlantılar üretip tıklandığında içeride yeniden sorgu çalıştırabilir ya da geçici bir veritabanını yönetebilir
    • Niyetim deterministik olmayan davranışın iyi olduğunu söylemek değil; bugün ile post-code çağ arasındaki boşluğu göstermek
    • Aslında günümüz yazılımları da tamamen deterministik değil
      Otomatik güncellemeler, A/B testleri, UX değişiklikleri gibi nedenlerle kullanıcı deneyimi sürekli değişiyor
    • Temperature 0’a ayarlanır ve LLM ayarları yerel dosyalara kaydederse, deterministik uygulamalar da yapılabilir
  • İlginç olan şu ki bu yaklaşım, ayrı bir araç olmadan yalnızca context window ile de çalışıyor
    2025 Temmuz’unda bir PoC hazırlamıştım

  • Bu deney, “boilerplate kod” kavramının nasıl değişebileceğini iyi gösteriyor
    Birden fazla instance’ı aynı anda sandbox içinde çalıştırıp, iç değerlendirmede en iyi performans gösteren sonucu sunarsanız bir tür meta reinforcement learning elde ediyorsunuz
    Ancak kullanıcının niyetini deterministik çıktıya çevirmek zor; tersine geleneksel uygulamalar da esneklikten yoksun
    Sonuçta kilit nokta, niyet değerlendirmesini (intent evaluation) nasıl güvenilir biçimde uygulayacağınız

    • Ama modelin iç değerlendirme yöntemine aşırı uyum sağlama riski var
      İyi bir değerlendirme yöntemi yapmak, AI modeli yapmak kadar karmaşık olabilir
  • İstekleri geleneksel yöntemlerle işlemek, LLM’i doğrudan kullanmaktan maliyet açısından çok daha verimli
    Kabaca 7 milyar parametreli bir modelin 10 token üretmesi için 100 GFLOPs’tan fazlası gerekiyor
    Enerji israfı büyük

    • Ama insan emeğinin enerji maliyetini de hesaba katmak gerekmez mi diye düşünüyorum
      Kurumsal BT’de çalışınca insan kaynaklı verimsizliğin de azımsanmayacak düzeyde olduğunu görüyorsunuz
    • Sektörün yönü her zaman optimizasyonla örtüşmüyor
      Verimsizlik bile trend hâline gelebiliyor
    • Yine de LLM ile hızlıca bir prototip (V1) üretip ürün-pazar uyumunu doğruladıktan sonra geleneksel kodla optimize etmek mantıklı bir yaklaşım
  • Belki de LLM’i doğrudan 443 numaralı porta koyup “sen hem HTTPS sunucususun hem de uygulama sunucususun” demek yeterlidir ;)

  • Web uygulamasına gerçekten gerek var mı? Bilgisayarla doğrudan sesle konuşsak olmaz mı?
    “Geçen yıl tatilde çektiğim fotoğrafları göster, bulutları sil, arkadaşıma gönder.”
    “Egzersiz zamanlayıcısı ayarla, jumping jack’leri çıkar.”
    “Detroit tarzı techno beat oluştur.”
    “Bu gece için bana bir randevu bul, siyah saç tercih ediyorum.”
    Her şeyin sözle halledildiği bir dünya hayal ediyorum

    • Ama böyle bir otomasyon, insanın özneleşme gücünü / eyleyiciliğini (agency) zayıflatabilir
      Sonunda insanlık bunu benimseyenlerle reddedenler diye ayrılacak gibi geliyor
      Bunun işaretlerini plakların yeniden popülerleşmesi gibi örneklerde şimdiden görüyoruz
    • Ses arayüzü her iletişim biçiminin çözümü değil
      İnsanlar birbirleriyle iletişimde bile sık sık metni tercih ediyor
    • Ben de bu hafta WebSpeech ile ses girdisi alan, org-mode ve logseq dosyalarını okuyup düzenleyen kişisel bir bilgi yönetimi uygulaması yaptım
      Yapılacaklar, alışveriş, takvim yönetimi her şeyi yapıyor ve tamamen kendi ihtiyaçlarıma göre özelleştirildi
    • Bu gelecek, bilimkurguda sıkça işlendi
      Karmaşık işler sesle yeterince ifade edilebilir ama basit ve tekrarlı görevlerde UI daha verimli
      Örneğin “bana pantolon al” dediğinizde 30 sonuç arasından birini seçmek için sonunda yine görsel bir arayüz gerekir
  • Ben de benzer bir PoC’yi GitHub’a koydum
    Başlangıçta yavaş bir “tasarım modeli” ile uygulama temasını ve DB şemasını oluşturuyor, sonra hızlı bir modelle yanıtları işliyor
    PostREST kullanarak mantığı veritabanına koymayı denedim ama şema oluşturma başarısızlıkları ve hatalı sorgu üretimi sık yaşandı
    CSS kütüphanesiyle UI tutarlılığı korundu ve önceki sayfaların hatırlanması sağlandı
    Bu yaklaşım, LLM’in tek seferde eksiksiz bir uygulama oluşturup oluşturamadığını değerlendiren bir App Bench olarak kullanılabilir gibi görünüyor