Launch HN: Haystack (YC S24) – Teknologi untuk memvisualisasikan dan mengedit kode di kanvas tanpa batas
(github.com/haystackeditor)- Haystack Editor adalah produk yang menggabungkan kesederhanaan editor kode dengan UI kanvas agar kode lebih mudah dipahami dalam sekali lihat, dan dikembangkan bersama komunitas di repositori ini
- Repositori ini membuka tidak hanya kode dan issue, tetapi juga roadmap, dan source code disediakan di bawah PolyForm Strict License 1.0.0
- Distribusi produk merupakan bentuk berbasis repositori dengan kustomisasi tertentu yang ditambahkan, dan disediakan di bawah terms of service terpisah
- Contoh fitur mencakup Canvas Workspaces, Explorer View, Keyboard Navigation, dan Generate Function, serta mencakup dukungan menyeluruh untuk pengeditan, penelusuran, dan pemahaman kode, debugging ringan, model ekstensi, dan integrasi ringan dengan alat yang sudah ada
- Haystack diperbarui setiap minggu dengan fitur baru dan perbaikan bug, serta tersedia untuk diunduh di Windows, macOS, dan Linux
Peran repositori Haystack Editor
- Repositori ini adalah ruang tempat Haystack Software mengembangkan produk Haystack Editor bersama komunitas
- Selain pengerjaan kode dan issue, roadmap juga dibuka untuk publik
- Source code disediakan di bawah PolyForm Strict License 1.0.0
Produk Haystack Editor
- Haystack Editor adalah distribusi dari repositori
Haystack Editor, dengan kustomisasi tertentu yang disertakan - Distribusi tersebut dirilis di bawah terms of service yang terpisah
- Produk ini menggabungkan kesederhanaan editor kode dengan UI kanvas agar kode lebih mudah dipahami dalam sekali lihat
- Cakupan dukungan meliputi hal-hal berikut
- Pengeditan kode yang menyeluruh
- Penelusuran kode
- Dukungan pemahaman kode
- Debugging ringan
- Model ekstensi yang kaya
- Integrasi ringan dengan alat yang sudah ada
- Haystack diperbarui setiap minggu dengan fitur baru dan perbaikan bug
- Unduhan untuk Windows, macOS, dan Linux tersedia di situs web Haystack
Pratinjau fitur
- Menyediakan fitur Canvas Workspaces
- Menyediakan fitur Explorer View
- Menyediakan fitur Keyboard Navigation
- Menyediakan fitur Generate Function
Jalur kontribusi dan umpan balik
- Ada beberapa cara untuk berpartisipasi dalam proyek
- Mengirim bug dan permintaan fitur
- Membantu memverifikasi perubahan yang sudah di-check-in
- Mereview perubahan source code
- Mereview dokumentasi serta memperbaiki typo atau menambahkan PR berisi konten baru
- Untuk berkontribusi langsung pada codebase, lihat dokumen How to Contribute
- Cara build dan menjalankan dari source
- Workflow pengembangan termasuk debugging dan menjalankan pengujian
- Mengirim PR
- Mencari issue untuk dikerjakan
- Kanal umpan balik adalah sebagai berikut
- Bertanya di Discord
- Mendaftarkan issue
- Mengikuti @AkshaySubr42403 dan menyampaikan pendapat
Proyek terkait dan ekstensi bundel
- Berbagai komponen inti dan ekstensi Haystack berada di repositori terpisah di GitHub
- Sebagai contoh, node debug adapter dan mono debug adapter masing-masing berada di repositori terpisah
- Contoh lain adalah repositori Pixi
- Haystack menyertakan beberapa ekstensi bawaan di folder
extensions- Termasuk tata bahasa dan snippet untuk berbagai bahasa
- Ekstensi yang menyediakan dukungan bahasa yang kaya seperti code completion atau Go to Definition menggunakan sufiks
language-features - Misalnya, ekstensi
jsonmenyediakan pewarnaanJSON, dan ekstensijson-language-featuresmenyediakan dukungan bahasa yang kaya untukJSON
1 komentar
Komentar Hacker News
Ide ini sudah bagus sejak puluhan tahun lalu. Saya berharap Haystack berhasil seperti banyak upaya sebelumnya, dan eksekusi awalnya terlihat menjanjikan.
Namun sepertinya akan ada banyak rintangan, seperti sulitnya memahami caller/callee atau preferensi UX yang berbeda-beda antar-developer. Saya selalu berpikir ini bisa menjadi lebih kuat di ruang yang jauh lebih luas daripada layar 2D, misalnya lingkungan seperti headset VR.
Sangat keren. Saya membayangkan seluruh codebase organisasi dipetakan seperti ini, terlihat melintasi berbagai framework dan bahasa.
Entah saya melewatkannya di video atau memang belum mungkin, tetapi menghubungkan node secara manual akan terlalu banyak pekerjaan. Akan bagus jika ada bot sederhana yang dijalankan dari folder repositori untuk mengotomatiskan visualisasinya. Saya menambahkannya ke daftar pantauan.
Kalau saya, saya akan menargetkan organisasi perusahaan besar atau grup TI pemerintah daerah yang sedang atau berencana melakukan transformasi digital. Mereka perlu menemukan arah dan memahami makna di antara pekerjaan legacy dan pekerjaan baru.
Jika berjalan baik, Salesforce bisa datang mengetuk dalam setahun. Ini juga tampak cukup cocok dengan visi dan rangkaian produk mereka.
Saya tidak tahu apakah itu benar-benar bisa dipakai dalam kondisi seperti itu, tetapi sepertinya menarik untuk dicoba. Rasanya seperti diagram UML untuk seluruh codebase, dengan ribuan panah.
Dengan begitu, kita bisa memberi tahu rekan bahwa file yang perlu diubah ada di suatu tempat di kanan atas, dan diff Git juga terlihat secara visual, sehingga kita bisa memperbesar bagian-bagian yang berubah di sana-sini.
Misalnya menangani pertanyaan seperti “apa yang terjadi sejak tombol berlangganan diklik dengan mouse sampai ke backend”.
Saya penasaran apakah proyek ini terinspirasi oleh Light Table.
Sebagai permintaan fitur, saya berharap visualisasinya diperluas melampaui 2D. Sistem yang benar-benar kompleks biasanya berupa graf yang rumit—atau kalau mau dibilang bagus, seperti gulungan benang—jadi pengalaman saya, visualisasi bidang 2D saja tidak cukup.
Akan bagus jika ada semacam visualisasi bola konsentris, dengan layanan batas di lapisan luar dan layanan inti/domain di lapisan dalam.
Menarik bahwa Anda menyebut tampilan yang lebih mendekati 3D. Kami pernah memikirkan ide ini, tetapi membuatnya dengan benar dalam cara yang dapat dipahami pengguna benar-benar sulit. Meski begitu, ini jelas termasuk dalam visi masa depan.
Sunting: dugaan tentang Light Table ternyata tidak benar, jadi saya hapus.
Pertanyaan sampingan besar, tetapi apakah ada infinite canvas open-source yang layak dijadikan pilihan utama? Saya sedang membuat permainan kartu dan membutuhkan infinite canvas multiplayer. Akan senang jika bisa mendapat rekomendasi.
Kalau ini berupa ekstensi VSCode, mungkin saya akan mencobanya. Saya ingin menggunakannya, tetapi belakangan ini saya hidup di dalam Cursor.
Saya penasaran mengapa ini tidak bisa dibuat sebagai ekstensi. Idenya benar-benar bagus, dan saya bisa membayangkan dengan sempurna tampilannya berada di dalam tab area editor.
Dengan begitu, kita juga bisa punya beberapa tab Haystack, sehingga context switching menjadi jauh lebih mudah. Meskipun berbasis VSCode, agak disayangkan harus memasang IDE lain. Tetap saja, semoga terus sukses.
Ini mengingatkan saya pada lingkungan Kansas dari bahasa pemrograman Self. Ada video yang dibuat Sun pada 1995.
https://www.youtube.com/watch?v=Ox5P7QyL774
Setelah video ini, fitur pencarian yang lebih menarik ditambahkan.
Benar-benar bagus. Ini hampir sama dengan proses yang saya lakukan saat melihat codebase besar, tetapi jauh lebih rapi dan terorganisir.
Biasanya saya membuka lima atau enam terminal yang menunjuk ke berbagai file sumber dan mencoba membuat peta di kepala. Pada akhirnya saya memang mendapatkan gambaran, tetapi prosesnya berat. Alat seperti ini sepertinya akan sangat membantu. Yang tersisa sekarang hanyalah menggabungkannya dengan monitor ultrawide.
Sepertinya ini akan membantu karena mengurangi hal yang harus disimpan di kepala, tetapi UI saat ini terlalu bergantung pada mouse. Akan bagus jika ada shortcut, dan jendela bisa “ditile” seperti window manager dwm sehingga tidak perlu mengatur ukuran jendela secara manual.
Terkait pengaturan ukuran manual, kami sedang mencoba tiling di dalam viewport. Kalau Anda memberi tahu apa yang membuat Anda perlu mengubah ukuran, mungkin kami bisa memperbaikinya.
Ini tampak seperti pendekatan praktis bagi developer untuk membentangkan dan memetakan kode secara luas di ruang dua dimensi. Ini mirip dengan method of loci[1], yaitu cara developer mengodekan potongan kode dan koneksi secara spasial dengan cermat untuk memperkuat memori dan meningkatkan pemahaman.
Karena itu, saya berani menyarankan penambahan opsi pola latar belakang yang tidak mengganggu tetapi memberi sedikit informasi. Saya tidak punya pola spesifik, tetapi jika latarnya berupa peta dunia, pengguna mungkin bisa lebih cepat mengingat lokasi yang ingin dicari dan lebih cepat memahami posisi mereka sendiri.
Sebagai kelanjutan ide yang sama, layak dipertimbangkan juga agar pengguna bisa menentukan warna batas tab atau menambahkan noise yang berbeda untuk tiap tab. Noise bisa memudar sesuai tingkat zoom dan jarak dari pusat viewport.
https://en.wikipedia.org/wiki/Method_of_loci
Ide menggunakan perbedaan warna yang halus atau suara juga menarik. Akan kami pikirkan.