2 puan yazan GN⁺ 2024-02-19 | 1 yorum | WhatsApp'ta paylaş
  • Atom'ın ortak kurucularından Nathan, Max ve Antonio ile yapılan bir konuşmada teknik seçimlerin nedenleri, Rust'un önemi ve teknoloji yığınına sahip olma niyeti gibi konulara dair sorular vardı.
  • Bu ekip bu soruları bir kez daha yanıtlayarak bir saatlik bir söyleşinin düzenlenmiş halini paylaştı.

Atom’dan Zed’e: 10 Yıllık Yolculuk

  • Üç kurucu yaklaşık 10 yıldır birlikte çalışmış ve Atom'u geliştirdikten sonra Zed'i oluşturmaya karar vermiş.
  • Zed'in vizyonu, Atom'un ilk vizyonunu daha gelişmiş ve somutlaştırılmış bir biçimde taşıyor; teknik seçimlerin bu vizyonla güçlü bir bağlantısı var.
  • Rust, GPU hızlandırması ve CRDT'lerin seçimi, Zed'in hedeflerine ulaşması için kritik.

Teknik Seçim ve Vizyon

  • Zed'in vizyonu, hafif olmasına rağmen ihtiyaç anında IDE özelliklerini sunabilen bir metin düzenleyici geliştirmek.
  • Atom geliştirirken teknik sınırlamalar ve geliştirici ekibinin o dönemdeki teknik olgunluğunun kısıtlı olması nedeniyle bu vizyon tam olarak gerçekleştirilemedi.
  • Rust'un ortaya çıkışıyla bu sınırlamaları aşmak mümkün hale geldi.

Atom'un Sınırları ve Yeniden Başlangıç

  • Atom'un geliştirilmesi sırasında JavaScript'in sınırlılıkları ve web teknolojilerinin kısıtları nedeniyle performans sorunları oluştu.
  • 2017'de mevcut platformun sınırlarını hissederek, Zed'i sıfırdan yeniden başlatma kararı aldılar.
  • Performansı artırmak için Rust ve GPU hızlandırmasını hedeflediler.

Rust'un Etkisi

  • Rust, yüksek seviyede soyutlama sunarken güçlü bir performans sağlar.
  • Rust'ın "sıfır maliyetli soyutlama" özelliği, metin düzenleyici geliştirmede önemli bir rol oynar.
  • Benzer performans C++ veya C ile de elde edilebilir, ancak Rust geliştiriciye daha kolay ve güvenli bir geliştirme deneyimi sunar.

Tüm Yığını Sahiplenmenin Önemi

  • Zed ekibi tree-sitter'dan GPU hızlandırmalı UI framework'ü GPUI'ye kadar tüm teknoloji yığınını sahipleniyor.
  • Tüm yığını sahiplenmek, performans ve özellikler üzerinde tam kontrol sağladığı için bilinçli bir tercihtir.

Mükemmel Soyutlama ve Aciliyet Arasında Denge

  • Sadece gereklisi ve gerekli ölçüde olan şeyleri inşa etmek, öğrendiğiniz şeylere dayanarak gerektiğinde yeniden gözden geçirmek önemlidir.
  • En kritik kısımlara yüksek kalite ve performans için yeterli zaman ayrılır.

Geliştirici Araçları ve Teknolojinin İlişkisi

  • Geliştirici araçları kullanıcıları, teknolojiye daha fazla ilgi gösterebilir ve teknoloji, kullanıcılara sundukları performans ve özellikleri etkiler.
  • Rust ile yazılan Zed, geliştiricilerin katkıda bulunmasını kolaylaştırarak topluluk katılımını artırıyor.

GN⁺'in Görüşü

  1. Zed'in geliştirme süreci, teknik seçimlerin ürün vizyonu ve performansı üzerindeki kritik önemini gösteriyor. Rust gibi modern bir programlama dilinin seçimi, hem geliştirici üretkenliğini hem de ürün performansını aynı anda yükseltebileceğini kanıtlıyor.
  2. Tüm teknoloji yığınını sahiplenmek, Zed ekibinin performans optimizasyonu ve özellik geliştirme konusunda esnekliğe sahip olmasını sağlar; bu da yüksek performanslı bir metin düzenleyici geliştirmede belirleyici bir rol oynar.
  3. Geliştirici araçlarında seçilen teknoloji, nihai kullanıcı deneyimine daha güçlü biçimde etki edebilir ve bu da Zed'in geliştirici topluluğu tarafından benimsenmesini etkileyebilir. Rust'un kullanımı geliştiriciler için Zed'e katkı sunmayı daha cazip hale getiriyor ve bu da ürünün büyümesine ve gelişmesine olumlu etki yapıyor.

1 yorum

 
GN⁺ 2024-02-19
Hacker News yorumları
  • Özel bir UI çerçevesi şu an eğlenceli olabilir, ancak erişilebilirlik uygulaması gerektiğinde sorunlara yol açabilir. Performans kaybı olmadan özelleştirilmiş bir çerçevede erişilebilirlik sağlamanın kolay olmaması ve platform bazlı karmaşık işlerin yapılması gerekeceği düşünülebilir. Zed yalnızca basit bir editör değil, bir işbirliği aracı olduğundan, tüm geliştirici ekiplerinin onu kullanabilmesi önemli.

    AccessKit adındaki bir araç işi biraz kolaylaştırabilir, ancak büyük bir editör için uygun olup olmadığı kesin değil.

  • Zed metin editörünü kullanmadan önce kullanıcıların kabul etmesi gereken bir lisans konusunda dikkat edilmesi gereken bir nokta var. Kullanıcı içeriği 'User Content' olarak sınıflandırılmış ve yalnızca Zed kullanıcılarıyla işbirliği içinde bir projeyi paylaştığınızda ortam üzerinden iletilir. Zed, kullanıcı içeriğine erişimi yalnızca hata ayıklama ve çözüm geliştirmeyi amaçlamak için sınırlar.

    Kullanıcılar bu bilgiye dayanarak kendi çıkarımlarını yapabilir.

  • Zed editörü umut verici görünüyor, ancak uzaktan ana bilgisayar/geliştirme konteyneri desteği olmadığından kullanılamıyor. VS Code’ın bu özelliği benim iş akışım için kritik önemde ve Mac’i bir VM ve konteyner aracılığıyla kod yazma portalı olarak kullanmayı tercih ediyorum. Bu da proje ayrıştırmayı ve güvenlik duruşunu geliştirmek açısından avantaj sağlıyor.

  • Geliştiricilerin geliştirme yaklaşımına dair içgörü veren harika bir röportajdı. Geliştirmeye farklı açılardan bakma konusunda çok düşündürüyor.

    Geliştiriciler, 'Zed' adının zaten Zig için mükemmel bir metin editörü ismi olduğunu düşünüyor, ama aslında 'Zag'ın daha uygun olduğunu savunanlar da var.

  • Zed’i kullanmıyor olmama rağmen, José Valim’in kodlama oturumlarını canlı yayınlarken onu kullandığını gördüm. VS Code’u genelde kullanıyorum ama Zed’in 'Find All' özelliği etkileyici. VS Code’daki gibi bir sonuç paneli açarak eşleşen tüm dosyalardan snippet’leri gösteriyor ama Zed’de doğrudan o yerde snippet’i düzenleyebiliyorsunuz. Bu, VS Code’da arama sonuçlarına tıklayıp dosyayı açıp düzenlemek zorunda kalmanızdan farklı.

  • Zed, Windows veya Linux’ta çalışmıyor. Çalıştığı platformlara eklenirse bize haber vermelerini istiyorum.

  • Röportaj çok iyiydi ve 'gold-plating' konusunda ne kadar çok düşünüldüğünü gördüm. En iyi işler çoğunlukla ikinci veya sonraki denemede ortaya çıkar. Zed’in konfigürasyonunu script ile yazabilme planı olup olmadığını merak ediyorum. Zed’i çok fazla kullanmış değilim ama Neon gibi bir araç, VS Code ve Atom kullanıcılarına yardımcı olabilir.

  • Zed’i denedim ve VS Code’a oldukça benzediğini hissettim. Çok oyunculu (multiplayer) özelliği Live Share’den daha iyi ama geçişi kabul ettirmek için daha fazlası gerekiyor. Zed Xcode yerine geçebilirse onu kullanma yönünde daha istekli olurum. XCode kullanımındaki rahatsızlığım nedeniyle, Android Studio benzeri bir iOS geliştirme deneyimi arzuluyorum.

  • Yerel uygulamaları tercih ediyorum ama şu an VS Code kullanmak zorundayım. VS Code’da imleç yanıp sönmesinin fazla enerji tüketimine yol açmasından hayal kırıklığına uğradım. Zed hızlı ve hafif, ancak Jupyter Notebook desteği ve Mac üzerinde Ubuntu box ile uzaktan geliştirme alışkanlığım nedeniyle VS Code gayet iyi çalışıyor. Zed iş akışımı desteklediği sürece üzerinde iyi çalışılmasını dilerim.

  • Zed’in About sayfasını inceledim ve canlı kodlama özelliği yararlı görünüyor. Geliştiriciler için eğlenceli bir proje olacak ve algoritma yazımı, performans optimizasyonu, GPU programlama vb. mümkün. Fakat, Vim ve terminal multiplexer ile fonksiyonel olarak eşdeğer olmayacak bir diğer metin editörüne gerçekten ihtiyaç var mı, onu sorguluyorum.