Rust, Python, TypeScript: Yeni Programlama Üçlüsü (Trifecta)
(smallcultfollowing.com)- Rust, Python, TypeScript'in gelecekte yazılım geliştirmenin merkez dilleri olarak öne çıkması bekleniyor
- Yapay zeka kodlama araçlarının yaygınlaşması ile geliştiricilerin dillere bağlılığı zayıflıyor; pratik ve ekosistemi güçlü diller tercih ediliyor
- Fikir odaklı programlama (idea-oriented programming) paradigması ortaya çıkıyor; geliştiriciler tasarım ve incelemeye odaklanırken uygulama işi yapay zekaya bırakılıyor
- Bu üç dilin tümü gelişmiş tip sistemi ve güçlü paket yöneticisi ekosistemine sahip olduğu için yapay zeka kullanımı, iş birliği ve hata önleme açısından avantaj sağlıyor
- Hata mesajı kalitesi, ekosistem, platform entegrasyonu gibi unsurlar da giderek daha önemli ölçütler haline geliyor
Rust, Python, TypeScript neden yükseliyor
- Rust, sistem yazılımı, yüksek performans gerektiren alanlar, tip güvenliği ve bellek verimliliği açısından öne çıkıyor
- Python, deney, prototipleme ve matematik/bilim kütüphanelerinden yararlanmak için ideal; fikirleri hızlıca doğrulamayı mümkün kılıyor
- TypeScript, web, tarayıcı ve çeşitli platformlara doğrudan uygulanabiliyor; güçlü tip sistemi ve npm ekosistemiyle ölçeklenebilirlik sunuyor
Yapay zekanın değiştirdiği geliştirme paradigması: fikir odaklı programlama
- Yapay zeka kodlama araçlarının (Large Language Model) yaygınlaşması ile programlama, 'fikir oluşturma → yapay zekanın uygulaması → insanın tasarım/incelemesi' akışına dönüşüyor
- Vibe coding daha çok doğaçlama ve belirsiz komutlara yakınken, Idea-oriented programming tasarım, yapı ve sürdürülebilir ilkelere odaklanıyor
- Geliştirici ana tasarımı/yönü belirliyor, yapay zeka ise tekrar eden/uygulamaya dönük işleri üstleniyor; bu ilişki mimar ile çırak ilişkisine benzetiliyor
Dil seçimi ölçütlerinin değişimi
- Eskiden kişi iyi bildiği dille (ör. Rust) hızlıca çalışırken, yapay zekayla birlikte çalışıldığında gereken kütüphaneler, performans, platform entegrasyonu daha önemli hale geliyor
- Projeye göre Python (makine öğrenimi), TypeScript (web·VSCode Extension), Rust (varsayılan tercih) gibi duruma en uygun dil seçiliyor
Tip sisteminin önemi
- Yapay zeka destekli kodlama ortamlarında gelişmiş tip sistemi daha da önemli hale geliyor
- Rust ve TypeScript, durum ve veri geçerliliğini, hata yapmayı önlemeyi kod seviyesinde zorunlu kılıyor; böylece yapay zekanın hata yapma olasılığı da azalıyor
- Python da mypy, pydantic gibi araçlarla yapılan ayarlar sayesinde tip güvenliği sağlayabiliyor
Ekosistem ve paket yöneticisinin değer kazanması
- Yapay zekayla birlikte geliştirirken büyük kütüphanelerden yararlanmak kolaylaştığı için ekosistemin büyüklüğü ve paket yöneticisinin kalitesi daha da önemli hale geliyor
- Rust (
cargo), TypeScript (npm), Python (uvvb.) modern paket yöneticilerine sahip
Küçük sözdizimi farkları ve workaround'lar daha az önemli hale gelirken, hata mesajları ve rehber kalitesi hâlâ önemli
- LLM (yapay zeka), tekrar eden sözdizimi hatalarını hızla düzeltebiliyor; ancak hata mesajları/rehber açık olmalı ki etkili biçimde düzeltme yapılabilsin
- Rust topluluğunun dil ergonomisi yönündeki çabalarında olduğu gibi, yapay zeka da iyi hata mesajlarından yararlanarak daha iyi kod üretebiliyor
Sonuç: LLM, güçlü geliştirme araçlarını herkesin erişimine açıyor
- Fikir odaklı programlama çağında junior geliştiriciler bile Principal Engineer düzeyinde tasarım/yönlendirme deneyimi yaşayabilir
- Kodlamanın kendi içindeki 'flow'un azalacağı yönünde kaygılar olsa da, tasarım ve fikir odaklı geliştirme deneyiminin daha değerli hale gelmesi bekleniyor
► Yapay zekayla birlikte çalışılan çağda, Rust, Python, TypeScript; güçlü tip sistemi, ekosistem ve platform desteği sayesinde geliştirme dünyasının standardı haline geliyor
14 yorum
Üçü içinde aşina olduğum TS, yapabildiğim Python, çok iyi bilmesem de yapmak istediğim ise Rust...
Her ne olursa olsun, o üçlünün içinde Java’nın yer almamış olması başlı başına sevindirici
Kodlayıcı => özellik geliştirme mimarisini kuran geliştirici => daha büyük mimari (sistem, ağ, güvenlik) => planlama
şeklinde deneyimin geliştiği akışta, kodlayıcının sahada öğrenebileceği fırsatlar daha da azalacak gibi görünüyor.
Fikir odaklı programlama ana akım hâline gelirse,
en azından tek başına yapay zeka tabanlı full-stack'i kullanabilen bir kodlayıcının temel standart olacağı hissi var gibi.
Hâlâ yüksek performanslı kodda C'den Rust'a geçmek için yeterli bir neden bulamıyorum. Sözdizimi Zig gibi nispeten daha sade olan tarafta e2e geliştirme için daha iyi gibi görünüyor; diğerlerinde ise zaten profil çıkardıktan sonra yüksek seviyeli dilden çağrılan kısımları uygulayan bir yapı oluyor (Python kullanıcısı olarak), Rust kullanınca GIL kontrolü gibi diğer dillerle etkileşim kurarken geliştirme maliyeti beklenmedik şekilde epey artıyor. C ise zaten en baştan diğer dillerin beklentilerine uyuyor.
Zig kullanacaksam C kullanırım zaten haha...
zig'i destekliyorum :)
C'den Rust'a geçiş nedeninin aslında verimlilik olduğunu söylemek isterim. Bellek güvenliği desteği de iyi, ama sadece
cargoyu düşünsek bile geçmek için yeterli bir neden olduğunu düşünüyorum.Python genişletme modülü yaparken, dilden bağımsız olarak GIL işlemleri her zaman zorludur. Bu kısım C/C++ için de aynıdır; tabii genişletme modülü yazımına yardımcı olan kütüphane ve araçlar kullandığınız durumlar istisna, ama RUST tarafında da PyO3 adlı harika bir crate var.
Ayrıca bir C geliştiricisinin bakış açısından Zig'in kullanımı doğal olarak rahattır. Temelde Zig'in kendisi aynı zamanda bir C derleyicisi olduğu için, header dosyalarını doğrudan içe aktararak kullanabilecek kadar esnektir.
Böyle de düşünülebilir. Benim deneyimimde PyO3'e kıyasla
python.h'a inip çıkmak (zig'in iyi bir alternatif olmasının nedenlerinden biri de bu) OS veya vektörizasyon seviyesinde çok daha kolaydı; ancak bellek yönetimi konusunda endişe olmaması açısından belli bir ölçeğin üstünde Rust tarafı uzun vadeli üretkenlikte daha yüksek olabilir.C'nin kolay olmasının nedeni, modern majör dillerin — Python/TS/Go/PHP/Java'nın hepsinin temeli olması ya da benzer bir sözdizimine sahip olmasıdır; yani mesele yalnızca sözdiziminin kolay olması değil, bir gün karşılaşacağınız ya da bir zamanlar karşılaştığınız bir dil olmasıdır. Buna karşılık Rust tam ters konumdadır; bu yüzden yüksek değerine rağmen onu bir ekibe benimsetmek için ciddi çaba gerekir. Bunun, evrimsel bir dilden ziyade devrimsel bir dil olmasından kaynaklandığını düşünüyorum.
Bu, sanırım Rust’un
rayoncrate’ini yapan kişinin yazdığı bir yazı.Python ve TypeScript şu anda da merkez diller gibi görünüyor ama...
Rust ise henüz o kadar merkezi bir konumda değil. Bunun sebebi zor olduğuna dair algı olabilir diye düşünüyorum.
LLM’ler giriş bariyerini düşürüp Rust’un da merkez dillerden biri olarak yükselmesini umuyorum.
Niko Matsakis, rayon'un ötesinde, Rust'ın babasına en yakın konumdaki isimdir. Elbette kurucusu Graydon Hoare'dur, ancak dilin en önemli bölümlerine en çok katkı yapan kişinin Niko olduğu söylenebilir.
Rust geliştiricisiyseniz, ister istemez ona daha çok sevgi besleyeceğiniz için biraz taraflı bilgi olabilir sanırım!
Bilgiyi paylaştığınız için teşekkürler.
PHP harika.
Ama ülke içinde asıl olan Java, değil mi?
Görünüşe göre Go, GC yüzünden listeden düşmüş.
Üç büyük ha, vay be.