7 puan yazan GN⁺ 2025-05-18 | 1 yorum | WhatsApp'ta paylaş
  • Meta’nın Pyrefly aracı, Rust ile geliştirilmiş açık kaynaklı bir Python tür denetleyicisi ve IDE eklentisidir
  • Son derece hızlı analiz performansı ve IDE entegrasyonu sunar; Pyre’ın sınırlarını aşmak için geliştirilmiştir
  • Otomatik tür çıkarımı, büyük kod tabanı desteği ve açık kaynak felsefesi temel ilkeleri arasındadır
  • Python topluluğuyla iş birliği ve katkılar yoluyla ekosistem genelindeki tür sistemini iyileştirmeyi hedefler
  • Şu anda alfa sürümü yayımlandı; topluluktan geri bildirim ve katkı aktif olarak isteniyor

Giriş

  • Pyrefly, Meta’nın Rust ile geliştirdiği, açık kaynaklı bir Python statik tür denetleyicisi ve IDE eklenti projesidir
  • Kodu çalıştırmadan önce tür tutarlılığını doğrulayarak hataları önceden tespit etmeyi destekler
  • Hem IDE entegrasyonu hem de CLI kullanımı mümkündür; böylece esnek bir iş akışı sunar
  • Açık kaynak topluluğuyla iş birliği yaparak Python tür sisteminin ve çeşitli kütüphanelerin gelişimine katkı sağlamayı amaçlar

Pyrefly’nin geliştirilme arka planı

  • 2017’de Meta, Instagram’ın büyük ölçekli Python kod tabanı için yeni bir tür denetleyicisi geliştirdi; bu araç daha sonra Pyre oldu
  • Pyre, Hack ve Flow gibi araçların sağlam tasarımından ilham aldı ve performans için OCaml ile geliştirildi
  • Zamanla tür sisteminin gelişmesi ve IDE entegrasyonu ihtiyacının artmasıyla bazı sınırlar ortaya çıktı
  • Pyright gibi topluluk araçları da kullanıldı, ancak büyük ölçekli kod gezintisi ve tür dışa aktarma gibi gereksinimleri karşılamada yetersiz kalınca Pyrefly geliştirilmeye başlandı

Pyrefly’nin temel ilkeleri

  • 1. Performans

    • Geliştiricilerin kodu yazdıktan hemen sonra, her tuş vuruşunda hızlı tür denetimi alması gerekir
    • Pyrefly, saniyede 1,8 milyon satırı denetleyebilen, çok büyük kod tabanlarını destekleyen yüksek performanslı bir Rust uygulaması yapısına sahiptir
  • 2. IDE merkezli tasarım

    • IDE ile CLI’ın aynı bakış açısını koruyabilmesi için soyutlama tasarımı en baştan buna göre yapıldı
    • Pyre’da bu sonradan eklenen bir iyileştirmeydi; Pyrefly’de ise tasarım aşamasından itibaren tutarlılık vurgulandı
  • 3. Inference (çıkarım)

    • Tür açıklaması olmayan Python kodunda bile otomatik tür çıkarımı sağlar
    • Dönüş değerleri ve yerel değişkenlerin türlerini IDE’de gösterir; ayrıca daha iyi kod yazımı için çift tıklamayla çıkarılan türü otomatik ekleme özelliği sunar
  • 4. Açık kaynak

    • Pyrefly, MIT lisansıyla GitHub’da açık olarak yayımlanmıştır; topluluk PR’ları ve hata bildirimleri memnuniyetle karşılanır
    • Python ekosistemi ve Meta’nın başlıca kütüphaneleriyle (PyTorch vb.) bağlantı kurar; Discord kanalı üzerinden aktif iletişimi teşvik eder

Pyrefly’nin geleceği

  • Toplulukla birlikte Python dili ve geliştirici deneyimini iyileştirme hedefiyle çalışıyor
  • Pyre’ın ilk geliştirme döneminden beri kodu açık kaynak yapma ve PEP katkıları sürdürülüyordu; Pyrefly ile de farklı geliştiriciler, kütüphaneler ve yeni başlayanlar için tür kullanımının faydalarını en üst düzeye çıkarmak planlanıyor
  • Meta, dinamik dillerde tür kullanımına dair deneyim ve kazanımlarını paylaşarak ekosistemde tür kalitesini artırmayı hedefliyor
  • Pyrefly şu anda alfa sürümünde olsa da bu yaz resmî lansman hedefiyle sürekli hata düzeltmeleri ve yeni özellikler üzerinde çalışılıyor
  • Topluluk geri bildirimi büyük önem taşıyor; Pyrefly kullandıktan sonra sorun bildirimi ve iyileştirme talepleri özellikle isteniyor

Pyrefly alfa sürümü kullanımı ve topluluk bilgileri

  • Pyrefly’nin geliştirme süreci ve teknik ayrıntıları Meta Tech Podcast ile PyCon US sunumlarında paylaşıldı
  • Meta Open Source ile ilgili siteler, YouTube, Facebook, Threads, X ve LinkedIn gibi çeşitli kanallar üzerinden ek bilgiler sunuluyor

1 yorum

 
GN⁺ 2025-05-18
Hacker News yorumları
  • Meta'nın "Python Language Tooling Team"i adına biraz endişe oluştuğunu söyleyen yorum; uv'nin popülaritesi çok yüksek olduğu için ty'nin bu alanda galip geleceğine dair bir his var, işler ters giderse Atom ya da Flow'da olduğu gibi iç ekibin dış açık kaynağa yenik düştüğü ve üst yönetimde "bu ekibe gerçekten ihtiyaç yok mu, açık kaynak olana geçelim" havasının oluşabileceği bir durum yaşanabilir, bunun yöneticinin (Aaron Pollack?) dikkat etmesi gereken bir konu olduğunu düşünüyor
    • Kevin, selam verip geçmişte Flow'da çalıştığını, şimdi ise Pyrefly ekibinde yer aldığını söylüyor; bu kez Flow'dan farklı bir yaklaşım benimsediklerini ve açık kaynak ile topluluk oluşturmayı net biçimde öncelik haline getirdiklerini açıklıyor, şirketlerin altyapı yatırımlarıyla ilgili son dönemde büyük dalgalanmalar olsa da şu anda doğru yolculuğun başlangıç noktasında olduklarına inandığını paylaşıyor ve destek için teşekkür ediyor
    • Meta'nın özellikle geliştirici araçlarına ait açık kaynak projeler üzerindeki kontrolü çok önemsediği görüşü; geçmişte git bakımcısının monorepo kullanımına dair bir noktayı işaret edip iyileştirmeyi upstream'e kabul ettirememesi üzerine Mercurial'a geçildiği, Mercurial tarafının ise katkıları memnuniyetle kabul ettiği anlatılıyor; iç araçlardaki değişim hızı çok yüksek olduğundan kendi projelerine sahip olmanın mantıklı olduğu açıklanıyor
    • Facebook'tan çıkan şeyler arasında en çok JSX'i sevdiğini söylüyor; muhtemelen iyi bulduğu tek şeyin o olduğu ima ediliyor
  • Meta'nın Pyrefly ekibinde çalıştığını söyleyen bir yorumcu, SSS'de pek çok sorunun yanıtlandığını belirterek ilgili bağlantıyı paylaşıyor; ek sorulara da cevap verebileceğini nazikçe ekliyor ve ilgi için teşekkür ediyor
  • Son zamanlarda Rust ile yazılmış Python tip denetleyicilerinin üç farklı yerde (Microsoft, Facebook, Astral) ortaya çıktığı, buna rağmen mevcut mypy'nin hâlâ varlığını sürdürdüğü gözlemi
    • Microsoft'un tip denetleyicisi Pyright'ın TypeScript tabanlı olduğu düzeltmesi yapılıyor; yine de kişisel deneyime göre mypy'den daha hızlı olduğu söyleniyor
    • Hepsinin statik tip denetleyicisi olup olmadığı soruluyor; çalışma zamanı için olanlardan bahsedilmediği belirtiliyor
  • Bunun resmî duyuru olduğu, ancak Pyrefly'nin birkaç hafta önce zaten konuşulmaya başlandığı bilgisi veriliyor; şu anda alfa aşamasında yayımlandığı, hata düzeltmeleri ve özellik geliştirmeye odaklanıldığı, yaz gelmeden alfa etiketini kaldırmanın hedeflendiği yönündeki resmî ekip açıklaması alıntılanıyor
  • Burada yazılan Rust kodunun anlaşılmasının çok kolay olduğu, ancak son dönemde Python araçlarının sürekli Rust ile yazılmasına dair bir kaygı bulunduğu ve bunun bir başka N dil sorunu yaratabileceği söyleniyor; Mojo'nun burada bir şeyler yapabilmesi umuluyor
    • Python ekosisteminde, Python'un kaldırabildiği alanlarda Python kullanmanın, yüksek performans gereken yerlerde ise Rust ya da C gibi dillere yönelmenin doğal akış olduğu açıklanıyor; sonuçta N=3 (Python, Rust, C), ancak C'nin uzun vadede uygulama programlamadan yavaş yavaş çıkması gerektiği umuluyor; bunun pratikte çok uzun süreceği, hatta Python'un kendisinin daha önce legacy hâline gelebileceği düşünülüyor
  • Vim/Neovim ile entegrasyon kullanımının anlatılmasından memnuniyet duyulduğu, ilgili bağlantının paylaşıldığı söyleniyor
  • Rust ile yazılmış olmasının neden büyük bir avantaj gibi sunulduğunun sorgulandığı yorum; çoğu insanın tip denetleyiciyi gömülü sistemlerde ya da görev açısından kritik servislerde çalıştırmadığı, bunun biraz da "Erlang ile yazıldı" denmesine benzediği söyleniyor; performansın kritik olmadığı kodların Python ile yazılmasının topluluğun daha fazla katılımına ve genişlemesine izin vereceği, buna rağmen neden Rust'a bu kadar takıntı olduğu soruluyor
    • Rust kullanma deneyimi paylaşan bir yorumcu, kullanıcı açısından hız ve güvenlik, geliştirici açısından ise katkı yapmanın kolaylığı gibi avantajlardan söz ediyor; Astral'ın cazibesinin de bu tür Rust tabanlı araçları Python dünyasına getirmesinde yattığını düşündüğünü söylüyor; Rust'ı Python kadar iyi bilmemesine rağmen Rust projelerine katkı vermenin daha kolay hissettirdiğini, genel amacın Rust kalitesindeki araçları Python'a kazandırmak olduğunu savunuyor
    • LSP (Language Server Protocol) kodunun performans açısından son derece önemli olduğu, çünkü IDE yanıt verebilirliğini doğrudan etkilediği belirtiliyor; Rust'ın hem CPU hem de bellek verimliliğinde çok güçlü olduğu, eğer bu araç OCaml, Reason ya da Haskell gibi dillerle yazılmış olsaydı hız ve verim açısından yeterli olabileceği ama katkı sunabilecek kişi havuzunun çok sınırlı kalacağı vurgulanıyor
    • "[araç açıklaması] rust" diye aratınca performanslı yazılım bulmanın kolay olmasından memnuniyet duyulduğu söyleniyor; kullandığı araçların yaklaşık %95'inin Rust ile yazıldığı ve çoğundan memnun kaldığı kişisel deneyimi paylaşılıyor
    • Rust'ın "gözle görülür biçimde hızlı" anlamına gelen bir kısaltma gibi kullanılabildiği söyleniyor; açık kaynak Rust kodunun hâlâ incelenebilir olduğu vurgulanıyor
    • Python ile yazılmış tip denetleyicilerinin performans açısından yetersiz kaldığı açıklanıyor; örneğin Python ile yazılmış Pylint gibi bir linter'ın kod satırı başına tek tek kontrol yapıp 30 saniyeden uzun sürebildiği, dolayısıyla bunun performansın önemli olduğu bir alan olduğu savunuluyor
  • Pyre'den Pyrefly'ye geçiş ve Rust ile baştan yazıma ilişkin merak dile getiriliyor; daha az bilinen bir dilden daha popüler Rust'a geçişin somut faydalarının ya da motivasyonunun ne olduğu soruluyor
    • Bu sorunun SSS'lerinde ele alındığı belirtiliyor; biraz daha deneyim biriktirdikten sonra bunu uzun bir blog yazısında da anlatmak istediklerini söylüyorlar ve ilgili bağlantıyı paylaşıyorlar
  • Bir yorumda bunun aynı anda fazla fazla şeyi çözmeye çalışan bir proje gibi hissettirdiği söyleniyor
  • VS Code'u görünce ilgisini kaybettiğini söyleyen bir görüş; insanların VS Code'u Python için neden uygun bir IDE saydığını anlayamadığını, ortada PyCharm gibi "gerçek" bir IDE varken VS Code kullanmak için bir sebep görmediğini belirtiyor
    • pyrefly'nin sadece VS Code'a bağlı olmadığı hatırlatılıyor; farklı insanların farklı tercihleri olduğu konusunda biraz daha anlayış isteniyor, pycharm'ın da mutlak olarak daha iyi olmadığı söyleniyor; yorum sahibi, vscode ile uzaktan geliştirmenin rahat olduğunu, ama internete çıkıp pycharm'ın kötü olduğunu yazmak istemediğini ekliyor