Launch HN: Haystack (YC S24) – Sonsuz tuval üzerinde kodu görselleştirme ve düzenleme teknolojisi
(github.com/haystackeditor)- 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 Editordeposunun 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
- Hata ve özellik isteği gönderme
- Check-in yapılmış değişikliklerin doğrulanmasına yardımcı olma
- Kaynak kod değişikliklerini inceleme
- Dokümantasyonu gözden geçirme, yazım hatalarını düzeltme veya yeni içerik ekleyen PR'ler gönderme
- 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
- Discord üzerinden soru sorma
- Issue açma
- @AkshaySubr42403 hesabını takip edip görüş iletme
İ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,
extensionsklasö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-featuresson ekini kullanır - Örneğin
jsongenişletmesiJSONrenklendirmesi sağlar,json-language-featuresgenişletmesi iseJSONiçin zengin dil desteği sağlar
1 yorum
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.
Ç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.
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.
Örneğin “abone ol düğmesine fareyle bastığım andan backend’e kadar neler oluyor” gibi soruları işlemek gibi.
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.
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.
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.
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.
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.
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
Hafif renk farkları veya ses kullanma fikri de ilginç. Bunu düşüneceğiz.