Fish Shell 3.7.0: İyileştirmeleri Getirirken C++'ta Kalmak
Fish Shell 3.7.0, geçmiş sayfasını, performansı ve betik yazımını geliştiriyor. Gelecekteki 4.x sürümleri, Fish'in dahili yapılarını Rust'a taşıyacak.
Linux ekosisteminde, kullanıcıların tercih edebileceği çok çeşitli kabuklar, çok yönlülüğü ve gücü ile öne çıkan bir özelliktir.
Klasik Bash ve Zsh ile Tcsh gibi diğerleriyle birlikte, Fish uzun süredir kullanıcı dostu yaklaşımı ve gelişmiş özellikleriyle birçok Linux kullanıcısı arasında tercih edilen bir seçenek olarak geniş çapta tanınmış ve benimsenmiştir.
Yakın zamanda duyurulan Fish 3.7.0 sürümü, 1289’dan fazla commit ile bu konumu güçlendiriyor ve iyileştirmeler ile düzeltmeler vaat ediyor. Haydi onlara bir göz atalım.
Fish Shell 3.7.0
Ana Başlıklar
Fish 3.7.0, komut satırı geçmişi yönetimini geliştiriyor. Artık kullanıcılar, alt dizin eşleşmeleriyle karmaşık komut satırlarını zahmetsizce bulabilir. Geçmiş gösterici ayrıca daha akıllı bir arama özelliği ve eşleşmeyen arama sorgularını daha sezgisel bir şekilde ele alma yöntemi sunuyor.
Performans açısından, komut tamamlama ve globbing özellikle NFS gibi daha yavaş dosya sistemlerinde önemli hız artışları gösteriyor; bu, yoğun komut satırı işleriyle uğraşan kullanıcılar için büyük bir kazanım.
Bu güncellemedeki bir diğer öne çıkan özellik, vi modundaki mod değiştirme gibi özelliklerin kullanılabilirliğini artıran çoklu tuş dizileri için zaman aşımı ayarlayabilme yeteneğidir. Aynı zamanda, LS_COLORS artık otomatik olarak ayarlanmayacak ve kullanıcıları daha kişiselleştirilmiş yapılandırmaları tercih etmeye teşvik edecektir.
Betik Yazımı ve Komut Satırı Geliştirmeleri
- Stabilite ve Esneklik: Fish 3.7.0, çeşitli hataları giderir ve betik yazma deneyimini geliştirir. Çökme senaryolarını düzeltmekten yerleşik 'jobs' komutunu iyileştirmeye kadar, bu güncelleme betik yazmayı daha güvenilir ve çok yönlü hale getirir.
- İnteraktif Deneyim: Güncelleme, vi modunda geliştirilmiş geçmiş araması, iTerm2'de daha iyi çalışma dizini raporlaması ve geliştirilmiş seçim renk yapılandırmaları gibi interaktif deneyimde kayda değer değişiklikler getiriyor.
- Komut Tamamlama ve İstem İyileştirmeleri: Fish 3.7.0 ayrıca geçmiş yönetimi için yeni bir bağlama (bind) fonksiyonu, geliştirilmiş hata mesajları ve harici komutlar için genişletilmiş destek sunuyor.
Estetik ve Kullanılabilirlik Düzenlemeleri
Varsayılan tema artık terminal paletleriyle uyumlu olarak isimlendirilmiş renkler kullanıyor ve Dracula teması üst akıştaki değişikliklerle senkronize oluyor. Ayrıca, istemler çalışma dizinlerini daha doğru bir şekilde gösteriyor.
Son olarak, Fish 3.7.0, kullanıcıların işini kolaylaştıran çeşitli komutlar için birçok tamamlamayı ekliyor. Bu sürüm ayrıca manuel sayfa tamamlama üreticilerinde iyileştirmeler içeriyor ve diğer tamamlama ayarlamaları da yapılmış.
Pas: Önümüzdeki Yol
Fish kabuğu öncelikle C++ ile yazılmıştır. Ancak, bu durum yakında değişecek.
Fish’in baş geliştiricilerinden biri olan David Adam, neredeyse tüm C++ kodunun başarıyla Rust’a geçirildiğini doğruladı. Bu geçiş, 76.776 satır C++ kodunun tamamını kaldırırken 87.029 satır Rust kodu ekledi ve son güncellemelerine göre %100 yeniden yazımı işaret ediyor.
Ancak, bu dönüm noktasının Fish kabuğunun yeni sürümünün son kullanıcılar için hazır olduğu anlamına gelmediğini açıklıyor. Projenin mevcut durumu bazı performans iyileştirmeleriyle umut verici, ancak belirli alanlarda da zorluklarla karşı karşıya.
Özellikle, yeniden yazım henüz teknik hedeflerine ulaşmış değil; özellikle Rust’a geçişin temel nedenlerinden biri olan iş parçacığı güvenliği konusunda.
Ayrıca, platform desteği hâlâ önemli bir engel olarak durmaktadır. Cygwin ve MSys2 gibi platformlar için kısa süreli destek olası görünmemektedir ve eski Linux dağıtımları için paketleme zorluklar teşkil etmektedir.
Bunu göz önünde bulundurarak, mevcut üçüncü Fish serisi kodlamasında C++ kullanmaya devam edecek. Ancak, dördüncü serisini piyasaya sürdüğünde, ana programlama dilini Rust’a kaydırarak önemli bir değişiklik yapması bekleniyor.

