4 คะแนน โดย GN⁺ 2024-09-18 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Void เคยเป็นฟอร์กของ VS Code ที่สร้างขึ้นเพื่อให้ใช้ AI agent กับ codebase, แสดงภาพการเปลี่ยนแปลงเป็น checkpoint และนำโมเดลหรือโฮสต์แบบโลคัลมาใช้ได้ แต่ปัจจุบันอยู่ในสถานะ deprecated และไม่รับการมีส่วนร่วมเพิ่มเติมแล้ว
  • โปรเจ็กต์ยังคงเป็นโอเพนซอร์สอยู่ และนักพัฒนาที่ต้องการฟอร์ก VS Code สามารถอ้างอิงลอจิกและโครงสร้างของ Void ได้
  • README ระบุว่าส่วนที่ควรใช้อ้างอิงได้แก่ การรวม React + Tailwind, GitHub Actions สำหรับการแพ็กเกจ·ลงนาม·อัปเดตอัตโนมัติ, โค้ด AI provider ที่พัฒนาขึ้นเอง, และโครงสร้างสำหรับรองรับ IPC และ CSP
  • Void ระบุว่าส่งข้อความไปยัง provider โดยตรงและไม่เก็บข้อมูล พร้อมรองรับไวยากรณ์การตอบกลับอย่าง autocomplete(FIM), แท็ก <thinking> และแท็ก tool
  • แทนที่จะพัฒนาเวอร์ชันใหม่ ตอนนี้โปรเจ็กต์สนับสนุนการฟอร์กและการนำกลับมาใช้ผ่านเอกสารอย่าง Void Forks, Releases รุ่นเก่า, Codebase Guide, HOW_TO_CONTRIBUTE และ void-builder

สถานะโปรเจ็กต์

  • Void อยู่ในสถานะ deprecated และไม่รับการมีส่วนร่วมเพิ่มเติมแล้ว
  • ทีมงานขอบคุณชุมชนสำหรับโค้ดและการสนับสนุนที่ผ่านมา และระบุว่า Void จะยังคงเป็น โอเพนซอร์ส ต่อไป
  • ระบุว่าโปรเจ็กต์ยังคงเป็นหนึ่งในแหล่งอ้างอิงที่ดีสำหรับผู้ที่ต้องการฟอร์ก VS Code

ดาวน์โหลดและเอกสารสำหรับการฟอร์ก

  • ดูรายการฟอร์ก Void ล่าสุดได้ที่ Void Forks
  • ดาวน์โหลดเวอร์ชันเก่าได้จาก Releases
  • นักพัฒนาที่ทำฟอร์กของ VS Code สามารถอ้างอิง Codebase Guide และ How to Contribute

ส่วนที่น่าอ้างอิงในการทำฟอร์ก VS Code

  • Void ทำการเมานต์ React + Tailwind
    • ซึ่งทำไม่ได้ใน VS Code ปกติ จึงมีการขยาย build pipeline เพื่อรองรับการคอมไพล์ React และการจัดการ Tailwind scope
    • การจัดการ Tailwind scope ใช้ scope
  • สามารถคัดลอก GitHub Actions ไปใช้เพื่อ แพ็กเกจ ลงนาม และอัปเดตอัตโนมัติ ให้ Void ได้
    • อธิบายว่า build pipeline ของ VS Code เป็นแบบปิด จึงโดยทั่วไปทำได้ยากมาก
  • โค้ด AI provider ถูกพัฒนาขึ้นเองตั้งแต่ต้น
    • รองรับ autocomplete(FIM) และการตอบกลับแบบกำหนดเอง
    • เปิดเผยไวยากรณ์สำหรับแท็ก <thinking>, แท็ก tool และอื่น ๆ ที่ใช้ร่วมกัน
    • สามารถใช้อ้างอิงสถาปัตยกรรมสำหรับการใช้ IPC และการรองรับ CSP ได้
  • การแก้ไขไฟล์ใช้บริการแบบกำหนดเอง
    • EditCodeService สามารถแสดง diff ได้แม้ในระดับโทเค็นขณะที่โค้ดกำลังสตรีม
    • VoidModelService แก้ไขไฟล์ในเบื้องหลังและซิงก์ไฟล์ของ OS กับ text buffer
  • ดูรายการรีโพซิทอรีทั้งหมดที่ประกอบเป็น Void ได้ที่ repos

คำอธิบายความสามารถของ Void

  • Void ช่วยให้สามารถใช้ AI agents กับ codebase ได้
  • สามารถบันทึกและแสดงภาพการเปลี่ยนแปลงเป็น checkpoint ได้
  • สามารถนำโมเดลหรือโฮสต์ใด ๆ มาใช้แบบโลคัลได้
  • ระบุว่าส่งข้อความไปยัง provider โดยตรงและไม่เก็บข้อมูลผู้ใช้
  • รีโพซิทอรีนี้มีซอร์สโค้ดทั้งหมดของแอป Void Desktop

ลิงก์อ้างอิงและการสนับสนุน

  • เว็บไซต์: Website
  • โรดแมป: Roadmap
  • แนวทางการมีส่วนร่วม: Contribute
  • Void เป็นฟอร์กของรีโพซิทอรี vscode
  • หากต้องการพัฒนา Void เวอร์ชันของตนเอง สามารถดู HOW_TO_CONTRIBUTE และ void-builder
  • ช่องทางสนับสนุนคือ Discord server และอีเมล hello@voideditor.com

1 ความคิดเห็น

 
GN⁺ 2024-09-18
ความคิดเห็นจาก Hacker News
  • เมื่อไม่นานมานี้ผมพยายาม รีแฟกเตอร์แอปโดยใช้ VSCode เหมือนเป็นแพลตฟอร์ม แล้วเจอปัญหาหนักจากการตัดสินใจออกแบบ UI บางอย่างที่ทั้งเลี่ยงก็ยากและดูแลต่อก็ยาก
    Marketplace ส่วนขยายแบบปิดของ MS ก็ไม่ได้ช่วยเป้าหมายโอเพนซอร์สเช่นกัน
    แต่จาก HN ผมได้รู้จัก Theia(https://theia-ide.org) และเพราะเป็นของมูลนิธิ มี Marketplace โอเพนซอร์ส และแก้ไขได้ทั้งหมด จึงดูเหมาะกับเป้าหมายโอเพนซอร์สมากกว่าเยอะ
    ในทางทฤษฎียังเข้ากันได้กับ VSCode extension API ด้วย จึงแนะนำให้ลองพิจารณา Theia สำหรับแอปนี้

    • อนึ่ง ส่วนขยายสามารถเผยแพร่บน OpenVSX ได้
      ช่วงนี้หลายโปรเจกต์เริ่มทำแบบนั้นกันแล้ว ถึงจะไม่ทั้งหมดแต่ก็มีค่อนข้างมาก
    • สงสัยว่า Theia เกี่ยวข้องกับ Eclipse ซึ่งเป็น Java IDE เดิมหรือไม่
      หรือการพูดถึง “eclipse” เป็นแค่ชื่อชนกันอย่างโชคร้ายเฉย ๆ ก็ไม่รู้
    • ถ้า Theia สร้างอยู่บน Monaco ก็สงสัยว่าจะทำแบบสลับในคลิกเดียวได้ไหม
      ในทางทฤษฎี Monaco editor เป็นส่วนหนึ่งของ repository ของ vscode และ “workbench” ที่เก็บการตั้งค่า/คอนฟิกอยู่ในชั้นที่อยู่เหนือขึ้นไป
  • อยากเห็นบทความที่อธิบายดี ๆ ว่าทำไมเครื่องมืออย่าง Cursor, Void ถึงตัดสินใจสร้าง editor ใหม่ แทนที่จะทำเป็นส่วนขยายของ editor เดิม (VSCode extension, JetBrains plugin)
    สงสัยว่าเป็นเพราะข้อจำกัดทางเทคนิคของ extension API หรือเพราะ ทำการตลาด editor ใหม่ได้ง่ายกว่าส่วนขยายของ editor
    สำหรับบุคคลหรือบริษัทเล็ก ๆ อาจนำมาใช้ได้ง่าย แต่สำหรับองค์กรใหญ่ที่ผสานรวมกับ IDE เดิมไว้หลายอย่างแล้ว การให้ย้ายไป IDE อีกตัวน่าจะเป็นข้อเรียกร้องที่ยาก

    • จากคำตอบของทีม Cursor ดูเหมือนว่า VSCode extension มีความสามารถในการควบคุม UI ของ editor จำกัดมาก
      ฟีเจอร์ Command-K และ Copilot++ ทำเป็น extension ไม่ได้ และฟีเจอร์อีกมากที่อยากทำในอนาคตก็เช่นกัน
      https://forum.cursor.com/t/why-not-a-plugin/2448/2
    • เป็นคำถามที่ดี
      ผมมองว่าส่วนขยายมักมีบั๊กเยอะ หรือผสานรวมให้เป็นธรรมชาติได้ยาก เช่น Copilot ทำให้ selection กระตุก ส่วน Codeium หรือส่วนขยายโอเพนซอร์สอื่น ๆ ก็มีข้อจำกัดคล้ายกัน
      หลายส่วนขยายใช้ dropdown แบบ quick pick สำหรับให้ผู้ใช้ป้อน prompt ซึ่งรู้สึกไม่เป็นธรรมชาติ
      ถ้าจะหลีกเลี่ยงปัญหาเหล่านี้ การ เป็นเจ้าของ IDE เอง แบบ Cursor จึงสำคัญ และผมคิดว่านี่คือเหตุผลที่ Cursor ได้รับความนิยม
      เรื่องที่การนำ IDE มาใช้ยากนั้นก็จริง ถ้าสร้างบนฐานที่ได้รับความนิยมอยู่แล้วก็เข้าถึงผู้ใช้กลุ่มเล็กได้ดีกว่า และในระยะยาวก็อยากโน้มน้าวบริษัทใหญ่ ๆ ด้วย privacy และการรวมศูนย์ฟีเจอร์ AI ที่ดี
    • Cody ทำตามแนวทางที่พูดไว้อย่างตรงตัวคือทำเป็น ส่วนขยาย และแข่งขันกับ Cursor ได้
      ยังไม่เจอเหตุผลว่าทำไมต้องใช้ Cursor ทั้งที่ต้องยอมรับข้อเสียของการเป็น “fork”
      แต่ช่วงนี้ส่วนใหญ่ย้ายไปใช้ Aider แล้ว
      มีคนอื่นพูดถึงการหารายได้ ซึ่งนั่นอาจเป็นเหตุผลจริง ๆ ก็ได้
  • การมีการแข่งขันเพิ่มขึ้นเป็นเรื่องดี แต่แม้อาจฟังดูเสียมารยาทเล็กน้อย software fork ส่วนใหญ่ก็หายไป
    อยากให้ช่วยโน้มน้าวว่าทำไมควรใช้สิ่งนี้แทน Continue + Claude-dev ซึ่งเป็นส่วนขยายโอเพนซอร์สที่ทำงานบน VSCode หรือ VSCodium พื้นฐานได้
    แม้จะบอกว่า “Microsoft ก็ทำให้ extension marketplace เป็นแบบปิด” แต่ Open VSX Registry ก็มีอยู่

    • สงสัยว่าใช้ โมเดลโลคัล ร่วมกับ Continue อยู่หรือเปล่า
  • ขอแสดงความยินดีที่ทำมาถึงตรงนี้ และดูเหมือนว่าส่วนที่น่าสนุกกำลังจะเริ่มแล้ว
    มีส่วนขยายและ AI editor จำนวนไม่น้อยที่ให้ tab autocomplete แบบ snippet แต่เท่าที่ผมรู้ มีเพียง Cursor ที่ทำ workflow การแก้อัตโนมัติด้วย “tab-tab-tab-tab” โดยไม่ดูทั้งไฟล์ได้อย่างจริงจัง
    อาจเป็นการผสมระหว่างการแฮ็ก Monaco/VSCode กับโมเดลที่จูนเอง ไม่ใช่โมเดลภาษาขนาดใหญ่สำเร็จรูป เลยสงสัยว่าเวลาพูดว่า “ฟีเจอร์หลักทั้งหมดของ Cursor” หมายถึงจุดนี้หรือเปล่า หรือกำลังโฟกัสอย่างอื่น
    Cursor “นำเข้า” ส่วนขยายที่ดาวน์โหลดไว้แล้วในโปรไฟล์ VSCode โลคัลได้ค่อนข้างดี แต่บางครั้งมีปัญหาในการใช้ marketplace API สำหรับค้นหาส่วนขยาย
    ในฐานะจุดเริ่มต้น ควรพอใจกับวิธีประมาณนั้น และเพราะต้องรับมือกับ Microsoft ก็ควรใส่ใจเรื่องอย่าง brand guidelines ด้วย
    ทางที่ดีอย่าบอกโลกว่ากำลัง “แฮ็ก” Microsoft API เพราะแม้จะดูเป็นเรื่องเล็ก แต่ถ้าสำเร็จขึ้นมาอาจกลายเป็นปัญหาได้
    ถ้าตั้งใจจะรับสมัคร contributor ด้วย ก็ควรจัดระเบียบ GitHub workflow และ CI ให้มาก
    ตอนนี้ ประวัติ commit ส่วนใหญ่เป็นการแก้เอกสารแล้ว commit เข้า branch main โดยตรงโดยไม่มี review หรือการตรวจสอบ และ commit แรก ๆ ที่เป็นอันเดียวซึ่งมีการตรวจดูเหมือนว่า Monaco check ล้มเหลวแล้วก็แค่ปิดทิ้งไป
    ถ้าจะขยายโปรเจกต์หรือดึงดูด contributor ในระดับที่ต้องการ ควรกำหนด baseline ของการทดสอบและจัดระเบียบให้มากกว่านี้มาก

    • เหตุผลเดียวที่ผมใช้ Cursor ก็เพราะฟีเจอร์นั้นเหมือนกัน
      autocomplete ดีมาก และเวลารีแฟกเตอร์แทบเหมือนเวทมนตร์
      หลังจากใช้ Cursor ตลอดทั้งเดือนแล้วลองกลับไปใช้ VSCode อีกครั้ง พอเทียบกันแล้ว Copilot แย่มากจริง ๆ
      อยากใช้ Cursor ต่อไป แต่ไม่อยากซื้อ subscription ของ Claude สองรอบ Cursor ใช้ Claude อยู่ภายใน และผมชอบ Claude Sonnet มากกว่า ChatGPT
    • ฟีเจอร์ที่มีประโยชน์มากใน Cursor คือ apply
      มันรวมโค้ดที่ AI สร้างเข้ากับโค้ดของผมให้เอง แล้วผมแค่อนุมัติหรือปฏิเสธ
      ฟีเจอร์นี้ก็ดูเหมือนใช้ AI แบบ custom ด้วย และใช้วิธีเอา API key ของผมไปใช้ไม่ได้ ต้องมี subscription
  • เป็นเรื่องดีที่มีการแข่งขันเพิ่มขึ้นในพื้นที่ “AI editor” แต่สงสัยว่าทำไมไม่ทำเป็น ส่วนขยายของ VSCode
    ฝั่งส่วนขยายน่าจะเข้าถึงได้ง่ายกว่ามาก
    สงสัยว่ามีข้อจำกัดของ extension API ที่ทำให้การพัฒนายากหรือไม่

    • อาจเป็นเพราะส่วนขยายทำเงินได้ยาก และยากที่จะทำให้ การประเมินมูลค่าแบบ VC สูง ๆ ดูสมเหตุสมผล
      Void ได้รับการสนับสนุนจาก HN
    • เห็นด้วย แม้จะไม่สมบูรณ์แบบ แต่ VSCode ก็มี ecosystem ที่ค่อนข้างสมบูรณ์
      ต้องคอยไล่ตามความแตกต่างระหว่าง fork กับผลิตภัณฑ์ต้นทางอยู่ตลอด และผมไม่อยากให้ workflow ของตัวเองต้องรับมือกับฟีเจอร์ที่หายไปหรือส่วนขยายที่พังระหว่างทาง
      Cursor ให้ประสบการณ์ที่ค่อนข้างขัดเกลา แต่สุดท้ายก็กลับมาใช้ VSCode กับ continue.dev อยู่ดี แม้จะหยาบกว่ามาก แต่ UI ก็ทำงานได้ดีพอ
    • เป็นคำถามที่ดี และก็จริงที่ส่วนขยายเข้าถึงง่ายกว่า
      แต่ด้วยส่วนขยายอย่างเดียว ไม่มีวิธีที่ดีพอในการสร้าง native UI ตามที่ต้องการ
      เช่น การแสดงก่อนและหลังการเปลี่ยนแปลงเป็นเรื่องหลัก แต่ในส่วนขยายมันไม่ให้ความรู้สึกเป็นธรรมชาติ
      ส่วนขยายอย่าง Codeium ใช้วิธีตรงไปตรงมาที่สุด คือเขียนอะไรแบบ <<<<<<< DIFF >>>>>>>> ลงไปในไฟล์เลย ทำให้ syntax highlighting พัง
      ส่วนขยายอื่น ๆ อย่าง Copilot ก็มีบั๊กเยอะ
      ตอนนี้ Void สร้างอยู่บนส่วนขยาย แต่ก็แก้ไขและแทรกบางส่วนของ IDE เองด้วย เพื่อสร้างประสบการณ์ผู้ใช้ที่เป็น native มากขึ้น
    • หลายคนชอบ JetBrains มากกว่า VSC
      ตัวอย่างเช่น ตอนนี้ AI editor อันดับหนึ่งของผมคือ Zed.dev ซึ่งตั้งค่า keymap หลายแบบรวมถึง JetBrains ได้ง่ายมาก
      https://zed.dev/
    • ไม่แน่ใจเหมือนกัน แต่ตอนนี้ continue แย่มากจริง ๆ
      มันทำให้สภาพแวดล้อม VSCode ทั้งหมดของผมพัง รวมถึงคีย์ลัด Vim ด้วย
  • ไม่แน่ใจว่าการทำแบบนี้จำเป็นต้อง “เป็นเจ้าของ” editor ทั้งตัวจริง ๆ หรือเปล่า
    แค่รักษาให้ sync กับ upstream ก็เป็นภาระมหาศาลแล้ว และมองไม่เห็นว่าได้อะไรจากการทำแบบนั้น
    อย่างที่คนอื่นพูดกัน ก็มี registry ทางเลือกอยู่ และการแนะนำให้ติดตั้งปลั๊กอินแยกต่างหากง่ายกว่าการให้ผู้ใช้ดาวน์โหลดและติดตั้ง editor ทั้งตัว
    สงสัยว่าทำแค่ ส่วนขยาย Copilot ของตัวเอง แล้วเชื่อมกับ instance ของ ollama ไม่ได้หรือ
    Continue ทำแบบนั้นไม่ใช่เหรอ? https://marketplace.visualstudio.com/items?itemName=Continue...

  • ยังอยู่ในขั้นแรกเริ่มจนยังดาวน์โหลดไม่ได้เลยหรือเปล่า? ไม่เข้าใจว่าทำไมต้องเข้า เซิร์ฟเวอร์ Discord เพื่อตัว code editor
    สงสัยว่าแผนคืออะไรเมื่อ VS Code นำฟีเจอร์ทั้งหมดเข้าไปเอง

    • โค้ดอยู่ที่นี่: https://github.com/voideditor/void/tree/main/extensions/void
      แต่ตอนนี้ยังอยู่ในระดับพื้นฐานจริง ๆ ใกล้เคียงกับ implementation ขั้นต่ำที่เรียก large language model จากหน้าต่างด้านข้าง และทำ view สำหรับ apply/reject ความแตกต่าง
      ณ ตอนนี้แทบจะเป็นระดับโปรเจกต์สุดสัปดาห์
    • นั่นอาจเป็นประเด็นหลักก็ได้
      อาจเป็นเกมดูว่าใครจะถูก Microsoft ซื้อไป แล้วสุดท้ายกลายเป็นส่วนหนึ่งของ VS Code
  • ยังมี PearAI ด้วย เขาบอกว่าเป็น “โอเพนซอร์ส AI code editor ที่เป็น fork ของ VSCode และ Continue”
    พื้นที่นี้เริ่มแออัดขึ้นเรื่อย ๆ: cursor.sh, continue.dev, double.bot, supermaven, codium.ai, PearAI และตอนนี้ก็มี Void อีก
    https://github.com/trypear/pearai-app

    • ถ้าเคยลองตัวอื่น ๆ มาแล้ว อยากรู้ว่ามีจุดไหนที่ไม่ถูกใจเป็นพิเศษหรือไม่
      ผมเป็นหนึ่งในผู้สร้าง https://double.bot
  • อยากให้มีใครสักคน fork Omnivim2 เพื่อให้แข่งกับ VS Code ได้ดีขึ้น
    ตามที่ผมเข้าใจ editor นี้หน้าตาเหมือน VS Code แต่ compile เป็น native และรองรับปลั๊กอินของ VS Code
    น่าเสียดายที่โปรเจกต์ดูเหมือนถูกทิ้งไว้ และเขียนด้วย ReasonML
    ผมเบื่อที่เครื่องมือพัฒนาถูกสร้างโดยมีเว็บเบราว์เซอร์เป็นศูนย์กลาง
    ในยุค 90s และ 00s เราเคยมีแอป native เต็มรูปแบบที่ไม่จำเป็นต้องซับซ้อนเท่าตอนนี้
    เพิ่มเติมคือมันทำงานโดยอิงกับ Vim ภายในด้วย ซึ่งในสายตาผมกลับเป็นจุดแข็ง
    https://github.com/onivim/oni2

  • ดูเหมือนเป็น โพสต์ซ้ำ ของ Show HN อีกโพสต์จากผู้ใช้คนเดียวกันเมื่อ 4 วันก่อน
    https://news.ycombinator.com/item?id=41523197

    • ถ้าโพสต์ยังไม่ได้รับความสนใจมากพอ การ repost จำนวนน้อยก็ไม่เป็นไร
      ใน FAQ ก็เขียนไว้: https://news.ycombinator.com/newsfaq.html#reposts
    • เมื่อไม่กี่วันก่อนเราเปิดตัวในขนาดเล็กกว่า แต่จาก feedback ครั้งนั้น เราเปลี่ยนหน้า contribution บน GitHub, เว็บไซต์ และโลโก้ไปค่อนข้างมาก
      แค่กำลังพยายามเปิดตัวให้เร็ว
    • เปิดตัวสองครั้งเหรอ? ในสนามที่การแข่งขันดุเดือด ต้องเปิดตัวให้มากที่สุดเท่าที่ทำได้
    • ถือว่าเป็นแนวปฏิบัติที่เหมาะสมมาก