2 puan yazan GN⁺ 2024-09-27 | 1 yorum | WhatsApp'ta paylaş
  • Haystack Editor, kod editörünün sadeliğini tuval arayüzüyle birleştirerek kodu tek bakışta anlamayı kolaylaştıran bir ürün ve bu depoda toplulukla birlikte geliştiriliyor
  • Depoda yalnızca kod ve issue'lar değil, roadmap de açık olarak paylaşılıyor ve kaynak kod PolyForm Strict License 1.0.0 altında sunuluyor
  • Ürünün dağıtım sürümü, depo tabanına belirli özelleştirmeler eklenmiş bir biçim ve ayrı hizmet şartları altında sunuluyor
  • Özellik örnekleri arasında Canvas Workspaces, Explorer View, Keyboard Navigation ve Generate Function yer alıyor; ayrıca kapsamlı kod düzenleme·gezinti·anlama desteği, hafif debugging, genişletme modeli ve mevcut araçlarla hafif entegrasyon da bulunuyor
  • Haystack her hafta yeni özellikler ve hata düzeltmeleriyle güncelleniyor; Windows, macOS ve Linux için indirilebiliyor

Haystack Editor deposunun rolü

  • Bu depo, Haystack Software'in toplulukla birlikte Haystack Editor ürününü geliştirdiği alan
  • Kod ve issue çalışmalarının yanı sıra roadmap de açık olarak paylaşılıyor
  • Kaynak kod PolyForm Strict License 1.0.0 altında sunuluyor

Haystack Editor ürünü

  • Haystack Editor, Haystack Editor deposunun dağıtım sürümüdür ve belirli özelleştirmeler içerir
  • Dağıtım sürümü ayrı terms of service altında yayımlanır
  • Ürün, kod editörünün sadeliğini tuval arayüzü ile birleştirerek kodu tek bakışta anlamayı kolaylaştırır
  • Destek kapsamı şunları içerir
    • Kapsamlı kod düzenleme
    • Kod gezintisi
    • Kodu anlamaya yardımcı destek
    • Hafif debugging
    • Zengin bir genişletme modeli
    • Mevcut araçlarla hafif entegrasyon
  • Haystack her hafta yeni özellikler ve hata düzeltmeleriyle güncellenir
  • Windows, macOS ve Linux için indirmeler Haystack web sitesinden yapılabilir

Özellik önizlemesi

  • Canvas Workspaces özelliğini sunar
  • Explorer View özelliğini sunar
  • Keyboard Navigation özelliğini sunar
  • Generate Function özelliğini sunar

Katkı ve geri bildirim kanalları

  • Projeye katılmanın birkaç yolu vardır
  • Kod tabanına doğrudan katkı vermek için How to Contribute belgesine bakın
    • Kaynaktan build edip çalıştırma yöntemi
    • Debugging ve test çalıştırmayı içeren geliştirme iş akışı
    • PR gönderme
    • Üzerinde çalışılacak issue bulma
  • Geri bildirim kanalları şunlardır

İlgili projeler ve paketlenmiş genişletmeler

  • Haystack'in çeşitli çekirdek bileşenleri ve genişletmeleri GitHub'daki ayrı depolarda yer alır
  • Örneğin node debug adapter ve mono debug adapter birbirinden ayrı depolardır
  • Bir başka örnek olarak Pixi repository bulunur
  • Haystack, extensions klasöründe birden fazla yerleşik genişletme içerir
    • Birçok dil için sözdizimi ve snippet'ler içerir
    • Kod tamamlama veya Go to Definition gibi zengin dil desteği sağlayan genişletmeler language-features son ekini kullanır
    • Örneğin json genişletmesi JSON renklendirmesi sağlar, json-language-features genişletmesi ise JSON için zengin dil desteği sağlar

1 yorum

 
GN⁺ 2024-09-27
Hacker News yorumları
  • Bu fikir on yıllardır harika. Haystack’in de önceki pek çok deneme gibi başarılı olmasını umuyorum; ilk uygulama umut verici görünüyor.
    Yine de çağıran/çağrılan tarafları anlamanın zor olması veya geliştiriciden geliştiriciye UX tercihlerinin değişmesi gibi pek çok engel olacak gibi. 2D ekrandan çok daha geniş bir alanda, örneğin VR başlığı gibi ortamlarda bunun daha güçlü olabileceğini hep düşünmüşümdür.

    • Haystack VR dünyası fikri gerçekten hoşuma gidiyor. Biyolojik etkenler nedeniyle VR yazılımlarının istikrarsız bir durumda olması üzücü, ama bir gün bunun gelecek olacağına inanıyorum.
  • Çok havalı. Bir organizasyonun tüm kod tabanının bu şekilde haritalandığını ve birden fazla framework ve dil boyunca göründüğünü hayal ettim.
    Videoda kaçırdım mı yoksa henüz mümkün değil mi bilmiyorum, ama düğümleri elle bağlamak çok fazla manuel iş olduğundan, bir depo klasöründe çalışıp görselleştirmeyi otomatikleştiren basit bir bot olsa iyi olurdu. İzleme listeme ekledim.
    Ben olsam dijital dönüşüm yürüten ya da planlayan büyük kurumsal organizasyonları veya yerel yönetimlerin IT gruplarını hedeflerdim. Çünkü legacy işler ile yeni işler arasında yol bulmaları ve anlam çıkarmaları gerekiyor.
    İşler yolunda giderse Salesforce bir yıl içinde kapınızı çalabilir. Vizyonlarına ve ürün portföylerine de oldukça uyuyor gibi görünüyor.

    • Videoda gördüğüm konsepti beğendim. Ama daha büyük, daha çok pencereli ve hepsi birbirine bağlı bir halini görmek isterim.
      O durumda gerçekten kullanışlı olur mu bilmiyorum, ama denemesi eğlenceli olurdu. Tüm kod tabanını temsil eden, binlerce oklu bir UML diyagramı gibi.
      Böylece bir iş arkadaşınıza düzeltmesi gereken dosyanın sağ üstlerde bir yerde olduğunu söyleyebilirsiniz; Git farkları da görsel olarak göründüğü için farklı yerlerdeki değişikliklere yakınlaşıp bakabilirsiniz.
    • Bir dosya veya sembol boyunca gezindikçe bağlantılar otomatik olarak ekleniyor. Tam olarak bunu mu kastettiniz bilmiyorum, ama doğal dil sorgularına göre kullanıcıya bir “akış” sunmaya çalışıyoruz.
      Örneğin “abone ol düğmesine fareyle bastığım andan backend’e kadar neler oluyor” gibi soruları işlemek gibi.
    • Farklı servislere giden API çağrılarını da “bağlayabilirse” ilginç olur.
  • Bu projenin Light Table’dan ilham alıp almadığını merak ediyorum.
    Özellik isteği olarak görselleştirmenin 2D’nin ötesine genişlemesini isterdim. Gerçekten karmaşık sistemler genelde incelikli bir grafik, nazikçe söylersek bir yumak gibi yapıda oluyor; yalnızca 2D düzlem görselleştirmenin yetersiz kaldığını deneyimledim.
    Dış katmanlarda sınır servislerinin, iç katmanlarda çekirdek/domain servislerinin olduğu eşmerkezli küre görselleştirmesi gibi bir şey olsa iyi olurdu.

    • Pek çok kişi Light Table’dan bahsetti, ama onu ancak lansmandan sonra öğrendim.
      Daha 3D’ye yakın bir görünümden söz etmeniz ilginç. Bu fikri tasarlamayı düşündük, ama kullanıcıların anlayabileceği şekilde doğru yapmak gerçekten zor. Yine de gelecek vizyonumuzda kesinlikle var.
      Düzenleme: Light Table hakkındaki tahmin doğru olmadığı için sildim.
    • Yalnızca 2010’ların Light Table’ını değil, 1980’lerin sonundaki Oberon’u da bildiğinizi umarım. Oberon’da da kodu sınırsız bir tuval üzerine yerleştirme özelliği vardı.
  • Konudan biraz sapacak ama, öne çıkan kullanılabilir bir açık kaynak sonsuz tuval var mı? Bir kart oyunu yapıyorum ve çok oyunculu sonsuz tuvale ihtiyacım var. Öneri alabilirsem iyi olur.

  • VSCode eklentisi olsaydı muhtemelen denerdim. Kullanmak istiyorum ama şu sıralar Cursor’ın içinde yaşıyorum.

    • Giderek büyüyen bir sorun gibi görünüyor.
  • Neden eklenti olarak yapılamadığını merak ediyorum. Fikir gerçekten harika ve editör alanındaki bir sekmenin içinde nasıl görüneceğini çok net hayal edebiliyorum.
    Böylece birden fazla Haystack sekmesi de açılabilir, bağlam değiştirmek çok daha kolay olurdu. VSCode tabanlı olsa bile başka bir IDE kurmak zorunda olmak biraz üzücü. Yine de iyi iş çıkarmaya devam edin.

    • VS Code eklentileri oldukça sınırlı. Editör sekmesinin renderer’ını değiştirebilirsiniz, ama özel bir arayüz içindeki birden fazla öğenin tüm ortam ve eklenti ekosistemi içinde birinci sınıf editör sekmeleri gibi davranmasını sağlamak fiilen zor. Geride kalmadığı sürece fork makul bir tercih.
    • Bu hayal kırıklığını anlıyorum. Başka bir yorumda söylediğim gibi Haystack’i eklenti biçiminde yeterince iyi yapmak oldukça zor, ama sonunda o yolu da keşfetmeyi planlıyoruz.
    • Eklentilerde kısıtlar varsa, iyi bir geçici çözüm tuval görünümünü açıp kapatma özelliği olabilir. Tuval ile standart VSCode görünümü arasında gidip gelmek istersiniz; bu Haystack içinde mümkün olursa ikisini de kurmaya gerek kalmaz.
  • Self programlama dilinin Kansas ortamını hatırlattı. Sun’ın 1995’te yaptığı bir video var.
    https://www.youtube.com/watch?v=Ox5P7QyL774
    Bu videodan sonra daha ilginç arama özellikleri eklendi.

  • Gerçekten iyi. Büyük bir kod tabanına bakarken benim yaptığım sürece neredeyse aynı, ama çok daha temiz ve düzenli.
    Genelde çeşitli kaynak dosyalara bakan beş altı terminal açıp kafamda bir harita oluşturmaya çalışıyorum. Sonunda bir fikir oluşuyor ama zorlu bir süreç; böyle bir araç çok büyük yardım sağlayabilir. Geriye sadece bunu ultrawide monitörle birleştirmek kalıyor.

  • Kafada tutulması gereken şeyleri azalttığı için yardımcı olacak gibi, ama mevcut UI’da fare bağımlılığı çok yüksek. Kısayollar yapılsa ve pencere yöneticisi dwm gibi “tiling” çalışsa, böylece pencere boyutlarını elle ayarlamak gerekmese iyi olurdu.

    • Aslında tuvalde mümkün olduğunca klavyeyle gezinmeyi sağlamaya çalışıyoruz. Sağ alttaki “Keybindings and Help” düğmesinde tuş atamaları listesi var.
      Manuel boyutlandırmayla ilgili olarak viewport içinde tiling deniyoruz. Size hangi noktaların boyut ayarlatmaya ittiğini söylerseniz bunu düzeltebiliriz.
  • Geliştiricinin kodu iki boyutlu bir alana genişçe yayarak haritalaması için kullanışlı bir yaklaşım gibi görünüyor. Bu, loci yöntemine[1] benziyor; geliştiricinin kod parçalarını ve bağlantıları mekânsal olarak ayrıntılı biçimde kodlayarak hafızayı güçlendirmesi ve anlayışı artırması anlamına geliyor.
    Bu yüzden dikkat dağıtmayan ama az miktarda bilgi veren arka plan deseni seçenekleri eklemeyi cesurca önereceğim. Belirli bir desen yok aklımda, ama arka plan bir dünya haritası olsaydı kullanıcılar aradıkları konumu daha hızlı hatırlayabilir ve kendi konumlarını da daha hızlı kavrayabilirdi.
    Aynı düşüncenin devamı olarak, sekme kenarlığı rengini kullanıcının tanımlamasına veya her sekmeye farklı gürültü eklemeye izin vermek de düşünülebilir. Gürültü, yakınlaştırma düzeyine ve viewport merkezinden uzaklığa göre soluklaşabilir.
    https://en.wikipedia.org/wiki/Method_of_loci

    • Kullanıcıların yön bulmasına yardımcı olmak için mini harita eklemeyi planlıyoruz.
      Hafif renk farkları veya ses kullanma fikri de ilginç. Bunu düşüneceğiz.