8 puan yazan GN⁺ 2025-06-19 | 1 yorum | WhatsApp'ta paylaş
  • Scrappy, uzman olmayan kişilerin de kolayca kendi küçük uygulamalarını oluşturmasına yardımcı olan bir ev yapımı yazılım üretim aracı
  • Büyük ticari uygulamaların veya kurumsal uygulamaların aksine, kişisel ve yaratıcı küçük ölçekli sorunları özgürce çözmeyi mümkün kılıyor
  • Tuval tabanlı bir arayüz, kolay kod düzenleme, gerçek zamanlı işbirliği ve paylaşım özellikleri sunarak programcı olmayanların da kullanabilmesini sağlıyor
  • Tüm uygulamalar (Scrapp) varsayılan olarak çok oyunculu bir ortamda çalışıyor ve hesap oluşturmadan anında kullanım ile işbirliği mümkün
  • Yapay zeka ile kod üretimi veya mevcut araçlardan farklı olarak Scrappy, kullanıcının doğrudan etkileşimini ve sahipliğini öne çıkarıyor

Giriş ve arka plan

  • Yazılımların çoğu ya kitle pazarına satılmak üzere ya da büyük ölçekli özel uygulamalar olarak geliştiriliyor
  • Ancak bireylerin gerçek ihtiyaçlarını karşılayan küçük ölçekli, kişiye özel uygulamalar çok nadir
  • Scrappy, herkesin arkadaşları ve ailesi için basit ve yaratıcı uygulamalar doğrudan yapabilmesine yardımcı olan bir araştırma prototipi
  • Scrappy’nin amacı, programlama uzmanlığı olmadan da daha fazla insanın yaratıcı ve kişiselleştirilmiş yazılımlar üretebildiği bir vizyonu somut biçimde ortaya koymak

Scrappy nedir

  • Scrappy ile yapılan uygulamalara Scrapp deniyor
  • Öne çıkan örnekler:
    • İlkokul öğrencileri için aritmetik alıştırma uygulaması: zorluk seviyesi ayarlanabiliyor
    • Yerel etkinlik katılımcı sayacı: birden fazla girişte katılımcı giriş çıkışını yönetiyor
    • Toplantı maliyetini hesaplayan saat: toplantı maliyetini gerçek zamanlı hesaplıyor
    • Haftalık ev işi yönetimi: üyelere göre programı esnek biçimde yönetebiliyor

Scrappy’de uygulama yapma deneyimi

  • Scrappy’de düğme, metin alanı gibi nesneler, Figma, Miro ve Google Slides’a benzer sonsuz bir tuval üzerine yerleştiriliyor
  • Inspector panelinde özellikler doğrudan düzenlenebiliyor; düğme gibi öğelere JavaScript kodu da bağlanabiliyor
  • Uygulama üretimi, sürükle-bırak, özellik düzenleme ve kod ekleme adımlarının kademeli olarak tekrarlanmasıyla tamamlanıyor

Başlıca özellikler:

  • Temel davranış kurma: alanlar ve düğmeler yerleştirilip anında işlev bağlanabiliyor
  • Tepkisel formüller: belirli koşullara tepki veren gerçek zamanlı özellik değişiklikleri kurulabiliyor
  • Çok oyunculu senkronizasyon: durum her zaman gerçek zamanlı olarak kaydediliyor ve senkronize ediliyor
  • Canlı düzenleme: çalışma ve düzenleme arasında ayrım olmadan her zaman gerçek zamanlı değişiklik yapılabiliyor
  • Seçmeli paylaşım: uygulamanın yalnızca belirli bölümleri ayrı olarak paylaşılıp bağlanabiliyor
  • Görsel veri işleme: veriler spreadsheet benzeri şekilde görülerek hata ayıklama ve düzenleme yapılabiliyor

Scrappy neden geliştirildi

  • Scrappy, kullanıcı odaklı programlama yaklaşımını hayata geçiren “small computing”, “casual programming”, “home-cooked software” gibi eğilimlerle ilişkili
  • Mevcut görsel programlama yaklaşımlarından (blok, düğüm-kablo tabanlı) farklı bir yol izleyerek sezgisel etkileşimi ve script yazımını birleştiriyor
  • HyperCard, Visual Basic, eşzamanlı çevrimiçi medya gibi örneklerden ilham alıyor; ayrıca üretkenlik odaklı kampüs araçları ile gerçek zamanlı işbirliği deneyimini (Google Docs, Figma vb.) önemli görüyor.
  • Scrappy, büyük ticari uygulamalardan ya da yapay zekanın otomatik üretim yaklaşımından farklı olarak, kullanıcının doğrudan kontrolünü esas alıyor ve kişiselleştirme, eğlence ve yaratıcılığı en üst düzeye çıkarıyor
  • Kodu doğrudan üretmeden de daha kolay ve insan dostu bir uygulama geliştirme deneyimi sunuyor.

Scrappy’nin hedef kullanıcıları

  • İş süreci optimize edenler: karmaşık iş akışlarını uzman yardımı almadan iyileştirmek isteyenler
  • Öğretmenler ve öğrenciler: ek teknik ayrıntılarla (komut satırı, ortam ayarları) uğraşmadan programlamanın özüne odaklanabiliyor
  • Hobi geliştiriciler: kitlesel uygulamaların karmaşıklığından uzaklaşıp hızlıca çeşitli projeleri denemek isteyenler
  • DIY meraklıları: evde ya da hobilerinde olduğu gibi kendi uygulamalarını bizzat yapmak isteyen kullanıcılar

Şu anda Scrappy ile tamamen acemi birinin uygulama yapması hâlâ zor (bir miktar JavaScript bilgisi gerekiyor), ancak paylaşım ve remix işlemleri programcı olmayanlar için de mümkün.

Scrappy’de hangi uygulamalar yapmak için uygun?

  • Arkadaşlar/tanıdıklarla paylaşım: Scrapp’lerin büyük kısmı, birden fazla kullanıcının gerçek zamanlı ortak çalışmasına uygun
  • Sürekli düzenleme ve geliştirme: uygulama çalışırken bile anında değişiklik yapılabiliyor; dağıtım/build süreci yok
  • Küçük ölçekli hesaplama veya işlem: karmaşık sistemlerden çok, paylaşılan belge + biraz hesaplama senaryolarında etkili
  • Kullanıcı sürtünmesini en aza indirme: hesap açma gibi gereksiz adımlar olmadan yalnızca bağlantıyla erişim ve kullanım mümkün
  • Güvenilir küçük kullanıcı grupları: yetki kontrolü veya görev kritik kullanım gerekiyorsa uygun değil

Uygulama fikri örnekleri: özelleştirilmiş flash kartlar, toplantı gündemi, çevrimiçi atölye yönetimi, aile panosu, seyahat planı vb.

Scrappy vs kitlesel uygulamalar

Uygun bir popüler uygulama bulunamadığında ya da mevcut olanlar yeterli gelmediğinde, Scrappy ile doğrudan üretip paylaşmak mümkün. Scrappy’nin avantajları:

  • Yalnızca gerekli işlevler: gereksiz unsurlar yok
  • Kişisel emek: bizzat yapılan uygulamalar daha fazla anlam ve bağlılık taşıyor
  • Eğlenceli şekilde düzenlenebilir: renkler ve yerleşim özgürce değiştirilebilir, mizah da eklenebilir
  • Kolay remix/paylaşım: diğer kullanıcılar kolayca düzenleyip yeniden kullanabiliyor
  • İşbirliği odaklı tasarım: birden fazla kullanıcı aynı anda kullanıp düzenleyebiliyor
  • Anında kullanım: hesap açmadan sadece bağlantıya tıklayarak hemen kullanılabiliyor
  • Veri sahipliği net: veriler yerelde saklanıyor ve tamamen kullanıcının kontrolünde

Scrappy vs yapay zeka tabanlı uygulama üretimi

Yapay zeka uygulamaları otomatik üretebilir; ancak Scrappy’nin avantajları anlaşılabilirlik, gerçek zamanlı işbirliği ve yaratıcı sahiplenme duygusunda yatıyor

  • Kolay anlaşılır yapı: karmaşık kod yerine görsel nesne tabanlı yapı
  • Gerçek zamanlı işbirliği desteği: birden fazla kullanıcı aynı anda işbirliği yapıp düzenleme gerçekleştirebiliyor
  • Daha fazla eğlence ve yaratıcılık: anlık geri bildirim ve aktif düzenleme keyfi sunuyor

Scrappy vs HyperCard ve sonraki araçlar

  • İnternet dostu paylaşım: Scrappy uygulamaları yalnızca bir bağlantıyla çevrimiçi paylaşılabiliyor
  • Gerçek zamanlı işbirliği ortamı: eşzamanlı düzenleme/çalıştırma desteği
  • Modern arayüz ve etkileşim: sonsuz tuval, çeşitli nesne desteği
  • JavaScript scripting: modern ve yaygın bir dille çalışma
  • Daha çeşitli etkileşimli nesneler: string, sayı, tarih, JSON vb. desteği
  • Tepkisel formüller ve durum bağlantısı: spreadsheet benzeri dinamik ilişkiler kurulabiliyor

Gelecek planları

  • Programcı olmayan kullanıcılar için giriş engelini düşürmek
    • kod tamamlama, daha kolay hata ayıklama, ilişki görselleştirme, daha anlaşılır hata mesajları, yapay zeka tabanlı asistan
    • daha kolay ve hızlı paylaşım, herkese açık galeri, daha güçlü mobil destek
  • İşlevleri güçlendirme ve genişletme
    • koleksiyon ve veri işleme yeteneklerini artırma, tekrarlayan nesne yönetimi, yeniden kullanılabilir bileşenler ekleme
    • Scrappy’nin genişletilebilirliği (yeni nesne desteği), kavramsal tutarlılığı iyileştirme vb.

1 yorum

 
GN⁺ 2025-06-19
Hacker News görüşleri
  • Bu projenin yönünü beğendiğimi, ancak barındırılan SaaS yaklaşımının benim istediğim şey olmadığını fark ettiğim bir deneyimi paylaşmak istiyorum. Küçük sayaçlar gibi bir günde yapılacak projelerde sorun değil, ama birkaç yıl kullanılacak küçük bir uygulamaysa bağımlılık sorun oluyor diye düşünüyorum. Öğrenme eğrisi ne kadar düşük olursa olsun sonuçta varlığını sürdürüyor; buna karşılık uzun süre kullanılabilecek erişilebilirlik, kolay bir dil ve doğrudan GUI ekleyebileceğim araçlar bana daha cazip geliyor. Bence kodun tamamen gizlenmesi gerekmiyor; insanların gerçekten yapabileceği yönde kolaylaştırılması gerekiyor. MySpace sayesinde ne kadar çok insanın CSS öğrendiğini düşününce bunu hissediyorum; başlangıçta kopyala-yapıştır olsa da sonunda insanlar onu kendilerine göre ayarlıyor. Ben kişisel olarak bugünlerde çoğunlukla HTML/CSS/JS kullanıyorum, gerçekten bir backend gerekirse de saf PHP kullanıyorum, hem de framework olmadan. Ama bu yaklaşımın tarayıcıya bağlı kalma dezavantajı var; yine de iş yerinde bu şekilde yapılmış küçük projelerimiz (AutoHotKey dahil) 10 yılı aşkın süredir neredeyse hiç bakım gerektirmeden iyi çalışıyor. Özellikle AutoHotKey script’lerine 8 yıl önce macOS’a geçince elimi çektim ama ekip arkadaşlarım hâlâ onları her gün defalarca kullanıyor. AutoHotKey bir gün çalışmayı bıraksaydı bile, zaten yazılmış kod kullanılmaya devam edebilirdi. Oysa SaaS tarzı çözümlerde, kurucunun ilgisi başka yere kayarsa her şeyi yeniden yapmak gerekebiliyor. Böyle “scrappy” çözümler arayan insanlar için esas mesele, bunu her seferinde yeniden yapmak istememeleri.

    • Böyle bir çözüm için TiddlyWiki tarzı bir yaklaşımın daha uygun olduğunu düşünüyorum. TiddlyWiki’de tüm web uygulaması tek bir HTML dosyasının içinde yer alıyor ve eskiden bir şeyi değiştirince doğrudan HTML dosyasının kendisine kaydederek kendi kendini çoğaltan bir yapı sunuyordu. Son dönemde backend’e kaydetme gibi başka yöntemler de destekleniyor. Kendi kendini kopyalayan HTML dosyası ve isteğe bağlı backend erişimiyle, küçük kişisel özelleştirilmiş projeler için çok daha güvenilir bir seçenek olabilir diye düşünüyorum. En azından güçlü dayanıklılığı önemli bir artı.
    • codeboot.org öneririm. Tamamen istemci tarafında çalışan bir Python IDE’si; single-stepping desteği, hiyerarşik olmayan sanal dosya sistemi, JS kodu için FFI gibi pek çok özelliği var (belgelere bakın). Uygulama paylaşmak da son derece kolay; oynat düğmesine sağ tıklayıp URL’yi kopyalamak yeterli. Veri temizleme gibi çeşitli sorunları bununla çözdüm ve bu şekilde yaptığım uygulamaları çoğu zaman doğrudan yer imlerine ekleyip kullanıyorum. Gerçekten çok iyi çalışıyor; merak ettiğiniz bir şey varsa AMA. Aktif olarak geliştiriliyor ve yolda harika yeni özellikler var.
    • SaaS kodunun tamamını açık kaynak yaparak uzun vadeli kullanılabilirliği güvenceye almanın da bir yolu olabileceğini düşünüyorum. Penpot bunu iyi uyguluyor. Çoğu kişi SaaS olarak kullanıyor ama self-host da edilebiliyor. Elbette dağıtım sertifikasyonu ya da uygulama imzalama gibi konular kaçınılmaz şekilde zor, ama belki Web3 tarzı yaklaşımlar da yardımcı olabilir. Ya da PICO-8 ve eski Flash’ta olduğu gibi runtime’ı açık edip “kartuşları” ya da uygulamaları dağıtmak da bir yöntem olabilir. SaaS dışında güvenilir bir dağıtım ağı kurmak oldukça karmaşık olsa da, bunun gerçek tarihsel örnekleri var; dolayısıyla denemeye değer diye düşünüyorum. Penpot / PICO-8
    • Scrappy’nin ortak geliştiricilerinden biri olarak, yazılımın uzun süre kullanılabilir olmasının önemine tamamen katılıyorum. Scrappy, local-first bir mimariyle tasarlandı; geleneksel bir backend’i yok, dolayısıyla buluta bağımlılığı yalnızca senkronizasyon sunucusundan ibaret. (HN’de bu tartışma büyüyünce aceleyle SSS’ye teknik ayrıntılar ekledim.) Bunun, teknik ve finansal açıdan SaaS low-code/no-code araçlarından ayrıştığı bir nokta olduğunu düşünüyorum. En başta tek sayfalık, kendi içinde her şeyi barındıran HTML dosyası olarak scrap kaydetme özelliğini denedik, ancak bu özellik şu anda görünür değil.
    • Ben de Cursor ve vibe coding yaklaşımıyla buna benzer şeyler yapıyorum ve gerçekten çok memnunum. Yakın zamanda evimin hava koridoru bilgisini SDR ile alıp buna havaalanı uçuş bilgilerini ekleyen, ardından bunu tren istasyonlarındaki flip board tarzında sihirli aynada gösteren bir uçak takipçisi yaptım. Frontend tarafında JS’yi neredeyse hiç bilmiyordum ama yaklaşık 10 saat kod yazarak oldukça iyi bir uygulama çıkardım. Eskiden olsa bu 2 aydan fazla sürer ve sonunda vazgeçerdim; vibe coding ile ise çok eğlenceli ve pozitif bir deneyimdi. Yaklaşık 1200 sLOC oldu; logging, performans ve kalite açısından da yarı profesyonel seviyede bir kod ortaya çıktığını düşünüyorum (hatta ortalama ticari koddansa daha iyi olduğunu düşünüyorum).
  • CardStock metinde anılmamış ama Scrappy ile hedef ve yaklaşım açısından benzer görünüyor. Scrappy’den farklı olarak CardStock açık kaynak ve yerelde de çalışıyor. CardStock / GitHub deposu. Decker da açık kaynak ve Scrappy yol haritasındaki birçok gereksinimi zaten hayata geçirmiş durumda (tablo verisi sorgu dili·grid widget’ı, parçaların “Contraption” olarak soyutlanması vb.). Decker bağlantısına bakın.

    • Uzun zamandır böyle bir araç arıyordum ve CardStock’un masaüstü uygulamasının olması benim için gerçekten çok önemli.
  • Yol haritasında mobilde oluşturulan uygulamaların iyi çalışmasını sağlamak var, ancak mobilde düzenleme yapmak kapsam dışında gibi görünüyor (“avuç içi büyüklüğündeki dokunmatik ekranlar Scrapps düzenlemek için rahatsız” deniyor). Ancak bugün birçok insan için mobil, kullandıkları tek bilgi işlem cihazı; hatta kod ya da roman bile mobilde yazan çok kişi var. Bu yüzden biraz rahatsız edici olsa bile mobil düzenleme arayüzü de düşünülürse, bu aracın etkisi çok daha büyük olur diye vurgulamak isterim.

  • Hayatımda yaptığım en iyi şeylerden biri, Apple Watch yürüyüş kayıtlarını tek bir büyük harita üzerinde gösteren basit bir uygulamayı bir hafta içinde yapıp AppStore’a koyarak tanıdıklarımla paylaşmaktı. Bir yıl sonra bile arkadaşlarım ya da uygulamayı tesadüfen bulan insanlar tüm şehri yürüyüp bana kanıt mesajları atıyor; bu da bana büyük bir tatmin veriyor. Geliri olmasa da gerçekten çok ödüllendirici bir deneyimdi. OP’nin dediği gibi, eğlencesine arkadaşların için basit uygulamalar yapmak en büyük mutluluk.

    • Uygulamanın linkini merak ettim.
    • Bunu yaparken kaç duvarı ve sayısız engeli aşmış olduğunu düşününce, pek çok insanın bunlardan birinde vazgeçmiş olacağını hayal ediyorum. Sonuçta kullanıcı hâlâ hiçbir şeyi kontrol edemiyor ve vendor lock-in devam ediyor. Eğer bir yapay zekaya doğrudan talimat verip bunu açık kaynak bir saate özgürce taşıtabilseydik ne güzel bir dünya olurdu diye düşündürüyor.
  • Son kullanıcı için spreadsheet kadar gerçekten işe yarar bir programlama ortamı görmedim.

    • Bunun uç noktalara götürülmüş bir örneği olarak pyspread öneririm.
    • Test, sürüm kontrolü ve kütüphane desteği olmadığı için benlik değil.
    • Sonuçta doğrudan kod yazmayı öğrenmek daha iyi. İnsanların neden böyle araçları öğrenmek isteyeceğini anlamıyorum. Geliştiriciysen zaten kendin yaparsın; LLM de kullanıyorsan aşırı basit şeyleri vibe coding ile kolayca çıkarırsın ve kaybedecek pek bir şeyin olmaz. Geliştirici olmayanların böyle araçları gerçekten ne kadar öğreneceğini de merak ediyorum (TAM’i merak ediyorum). Kim uğraşıp sürükle-bırakla uygulama yapacak, emin değilim.
  • vibe coding şu anda geliştiricilerin yerini almayacak olsa da, bu tür basit sistemler için en güçlü rakibi olacak. Bir LLM’ye basit bir uygulama (HTML + gömülü JS) yaptırdığınızda, biraz rötuşla sonuç hem çok tamamlanmış oluyor hem de görsel olarak daha iyi bile olabiliyor; örnek.

    • Ben de vibe coding ile bir yan proje yapıyorum. Her birkaç saatte bir, LLM’nin çözemediği bir probleme takılıyorum; bu yüzden kodlama deneyimi olmayan bir kullanıcının bunu hiç çözemeden geçebileceğini düşünüyorum. Muhtemelen kullanılan teknolojiye ve projenin kapsamına bağlıdır.
    • Hata bildirimi: 3 + 2 = 5.1 gibi bir şey girildiğinde bunu doğru cevap sayıyor.
    • vibe coding zaten bunun doğal amacı ve bunlar da doğal rakipleri.
    • Self-host edilebilen basit bir sistem stack’i merak ediyorum. Benim için Vue, kimlik doğrulama, multiplayer offline DB, statik hosting, dosya hosting ve kullanıcıların başkalarının verilerini görememesini sağlayacak filtre işlevi gerekiyor.
    • Soru işareti yerine boşluk ya da alt çizgi kullanmak isterdim.
  • Bu konuya programcı açısından yaklaşıyoruz ama asıl fırsatın topluluklarda olduğunu düşünüyorum. Örneğin aileye özel kişisel bir app store gibi bir yerden başlanabilir (Masterson tarzı). Güvenlik olmadan bile olabilir, çünkü herkes birbirini tanıyor; davet olmadan katkı da yapılamaz. Sadece bir fikir.

  • UI öğelerini boş bir sayfaya sürükleyip bırakıyorsunuz, grid snap sürekli UI öğelerinin boyutlarıyla uyuşmadığı için onunla boğuşuyorsunuz ve sonunda kod tamamlama, görsel programlama, API yardımı ya da yapay zeka desteği olmadan doğrudan ham JavaScript yazmanız gerekiyorsa, gerçekten varılacak son nokta bu mu diye düşündürüyor.

  • Ben de yeni başlayanlar için blok tabanlı değil, “script edilebilir bileşenler” yaklaşımına %100 katılıyorum. Şu an mobildeyim ama yakında masaüstünde denemeyi planlıyorum. Analizde kaçırılan nokta şu: insanlar “kolay paylaşım” ve “sıfır maliyet” istiyor. En küçük ortamda bile uygulamanın kendisini yapmak kolay, ama dağıtım (app store engeli) ve hosting sorun; bu yüzden aile ya da arkadaş çevresi için bile ayda 5 dolar ödemek insanlara zor geliyor. Aslında profesyonel geliştiriciler için de durum aynı.

    • Evde bir web sunucusu + dinamik DNS ile self-host yapabilirsin.
    • Fikri paylaşmak güzel ama ücretsiz hosting/dağıtım kötü niyetli kullanıcı istismarına açık.
  • “Bilgisayarlar insanlar için çalışmalı ve yemek yapmak ya da kelime işlem gibi herkesin yaptığı bir faaliyet olmalı” gibi bir yönelimden söz ederken bana fazla genel geldi. “Canlı güncellemeler dahil, her şey ücretsiz. LLM ...” gibi ifadelerde em dash (-) aşırı kullanıldığı için bunun yapay zeka üretimi bir metin olduğu izlenimine kapıldım. Ben kişisel olarak içeriğin AI tarafından yazıldığı hissedildiğinde ilgimi hızla kaybediyorum. Üreticinin suçu değil ama ben de bu tarz copy yazımına pek ilgi duymuyorum.

    • Bu tarz em dash kullanımı benim 10-15 yıldır gerçek hayatta kullandığım yazı tarzım. Ben de AI tarafından üretilen içerik tüketmeyi pek sevmiyorum; biri sadece prompt yazdıysa ben de gidip doğrudan LLM’ye sormayı tercih ederim.
    • Hyphen/en dash/em dash kullanımına teknik olarak bakarsanız, em dash’i ayırıcı olarak kullanmak gayet doğru. Bunun AI göstergesi sayılmasına katılmıyorum.
    • Scrappy’nin ortak geliştiricisi olarak konuşuyorum; ben uzun yıllardır Macintosh kullanıcısıyım, dolayısıyla hyphen, en dash ve em dash arasındaki farkı gayet iyi biliyorum :) AI’yı bazen yalnızca cilalama amacıyla kullandım, metin üretimi için asla değil. Yazıyı bizzat ben yazdım, bu yüzden ciddi bir emek vardı (gerçek işin çoğunu yine Pontus yaptı).
    • em dash yazmak için compose tuşundan sonra üç kez kısa çizgi giriyorsun. — Bu şekilde. Mac’te ise shift-option-hyphen.