[Fikir] Modernlik için Go Tarzı Tasarım Kararları (Basitlik, Hızlı Geri-Bildirim, Tek Binary) #110
Labels
No Label
cli-ux
faz-plani
felsefe-gozden-gecir
ffi-builtin
fikir
gelecek-vizyon
ir-vm
kalite-mimari
moduller-import
test-senaryosu
tip-sistemi
tooling-lsp
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: saqut/saqut-compiler#110
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Giriş (Nedir, Neden Önemli?)
Go'nun başarısının çoğu dil özelliklerinden değil, geliştirici deneyiminden geliyor: çok hızlı derleme, yerleşik formatter (
gofmt), tek-binary dağıtım, anlaşılır hata mesajları, "az ama öz" bir standart kütüphane. saQut zaten küçük/basit bir dil — bu issue, Go'nun araç zinciri (toolchain) felsefesini saQut'a nasıl taşıyabileceğimizi listeler.Gelişme (Tavsiyeler)
saqutCLI'sı tüm komutları (tokens,ast,symbols, ileriderun,fmt,lsp) tek bir çalıştırılabilir dosyada barındırır — kullanıcı hiçbir ek paket/runtime kurmaz. Header-only C++ (ADR-003) bu hedefe zaten doğal olarak uygun; bu issue sadece bunu bir hedef olarak yazıya dökmek.saqut run(IR+VM) ile birleşince "saQut programını derleyip çalıştırmak, C++ programını derlemekten çok daha hızlı olmalı" gibi somut bir hedef olabilir — VM yorumlayıcı olduğu için bu zaten doğal bir avantaj.gofmtzaten bir issue olarak var (#93,saqut fmt) — Go'nun "tartışmasız tek doğru format" felsefesi: format ayarlanabilir olmamalı (yapılandırma dosyası yok), bu da formatter'ın tasarımını basitleştirir.undefined: x). saQut'un hata kataloğu (E001 vb.) zaten bu yönde — bu issue, mesaj dilinin (Türkçe/İngilizce) ve tonunun (kısa cümle + örnek) standartlaştırılmasını önerir.go testvego mod'u, dilin "etrafına" değil içine gömülü araçlar. saQut'un CLI'sı da bu felsefeyle büyümeli: her yeni özellik (test, format, modül) ayrı bir 3. parti araç değil,saqutalt-komutu olmalı.Açık Sorular
explain(#issue) mi? Bu, uluslararası kullanıcı kitlesi hedefleniyorsa önemli bir erken karar.İmza/Yorum: saQut'un "alet çantası" kimliği ile Go'nun "az şey, ama hepsi birlikte ve iyi çalışıyor" felsefesi doğal bir eşleşme — bu issue, var olan diğer issue'ları (#91-98) tek bir "araç zinciri vizyonu" şemsiyesi altında toplama denemesidir.