Merhaba, ben 8 yıllık bir frontend geliştiricisiyim.
Yapay zekanın yardımıyla bir DSL derleyicisi tasarlayıp arXiv'e kadar bir makale yükleme deneyimimi yazıya döktüm.
- Birden fazla SaaS geliştirirken hissettiğim, "her domainde aynı yapının tekrarlandığı" sezgisinden yola çıktım
- Yapay zekayı bir kodlama yardımcısı olarak değil, her alanın uzmanlarının düşünme biçimini ödünç alma aracı olarak kullandım
- Başarısızlığın maliyeti yapısal olarak azalınca, mimariyi dört kez baştan kurmama rağmen projeyi ileri taşıyabildim
- Aynı anda, yapay zekanın dolduramayacağı kalan %20'nin — "şu anda yanlış şeyi soruyorsun" sezgisinin — önemini de hissettim
Bu, yapay zeka kullanımının olanaklarını ve sınırlarını aynı anda hissettiğim samimi bir deneyim anlatısı.
11 yorum
Biçimsel dilin ne olduğunu bilmiyorum ama
statevecomputeddeğişken,actionise fonksiyon gibi görünüyor; peki aralarındaki fark nedir? Yazıyı okuyunca bir durum diyagramı çizilmiş gibi geliyor ama bir yandan da alanın tekrarlandığı anlatılıyor; bununla ne ilgisi var, pek anlayamıyorum. Yazıda geçen kelimeler bilmediğim kelimeler değil ama yine de pek okunmuyor.Örneğin bir üyelik kayıt formu yaptığımızı düşünelim.
Kayıt formunda ad, cinsiyet, yaş ve askerlik terhis durumu olmak üzere 4 bilgiyi aldığımızı varsayalım.
"Cinsiyet erkekse select box gösterilir ve askerlik terhis durumu sorulur"
şeklinde bir koşul daha çıktığını varsayalım.
Ve bir gönder butonu varsa, buna genelde üyelik kaydına ilişkin domain model diyebiliriz.
Bu durumda ad, cinsiyet, yaş ve askerlik terhis durumu bu 4 bilgi domain'e ait state olur;
askerlik terhis durumunu soran select box'ın visibility'si ise cinsiyetten türeyen bir computed olur.
Üyelik kaydı butonu da action'ın eşlendiği kısım olur.
Sanırım yazı anlatımım çok iyi olmadığı için metni akıcı şekilde yazamamışım.
Ama kavramın kendisinin, yukarıda anlattığıma benzer olduğunu düşünebilirsiniz.
Tam olarak anladığımı söyleyemem ama kabaca nasıl bir his verdiğini anlıyorum gibi.
Teşekkürler.
Keyifle okudum. Blogda yazdıklarınızı da okudum. Ne kadar uygun bir benzetme olur bilmiyorum ama, dillerin ilk eğitiminde neden
Hello World!olduğunu ve geçmişte web geliştirmeyi öğrenirken forum ya da e-ticaret sitesi yaparak ilerleme sürecinin de sonuçta sizin söylediklerinizle aynı çizgide olduğunu düşünüyorum. Eskiden şöyle düşünürdüm: Bir forumla e-ticaret sitesi yapabilecek düzeyde teknik varsa, web'in büyük kısmı uygulanabilir. Ve nihayetinde programlama denen şeyin özü de aslında yalnızca Input ve Output'tan ibaret.Benzetme yerinde görünüyor. Benim projem de fiilen yalnızca iki şeyden oluşuyor: insanın intent’i ve Snapshot.
Sonuçta, insanın niyetini (ör. klavye girişi, fare tıklaması) nasıl hesaplayıp ona nasıl bir anlam kazandıracağımızın, projemin ilerlemesi gereken yön olduğunu düşünüyordum.
Özetle, state diagram çizen bir mini language yapılmış diyebilir miyiz?
Hayır, size gösterdiğim
state diagram, Manifesto içindeki durum geçişlerini görselleştirmenin yöntemlerinden yalnızca biriydi.Deterministik bir durum makinesini framework olarak geliştirdik.
Manifesto Core içindeki hesaplamalar, aynı durum ve komut için her zaman yalnızca aynı sonucu üretecek şekilde tasarlandı.
Bir DSL oluşturduğunuzu anlıyorum ama deterministik durum makinesinin tam olarak neyi ifade ettiğini pek anlayamadım. Acaba deterministik olmayan durum makineleri de var mı diye düşündüm... Her hâlükârda keyifle okudum. Umarım bunu güzelce geliştirerek sürdürürsünüz.
Ah hocam, tespitiniz doğru. State machine’in kendisi gerçekten deterministiktir. Benim manifesto’da tanıttığım şey Turing-complete olmayan bir temele dayanıyor ve DSL’in içinde döngü bulunmuyor. Bu sayede programı çalıştırmadan önce programın nasıl işleyeceğini hesaplamak mümkün oluyor ve neden böyle bir sonuç çıktığını da açıklayabiliyoruz.
Tespitiniz için teşekkürler!
İlgiyle okudum. Katıldığım birçok nokta var. Hem heyecan verici hem de korkutucu.
İlgiyle okuduğunuz için teşekkür ederim.
Bundan sonra hızla değişen çağın akışı içinde nasıl yaşamamız gerektiği konusunda
bu aralar çok düşünüyoruz.