- Zasper เป็น IDE ที่ออกแบบมาเพื่อรองรับความพร้อมใช้งานพร้อมกันขนาดใหญ่
- ให้การใช้หน่วยความจำขั้นต่ำและความเร็วที่ยอดเยี่ยม พร้อมรองรับการเชื่อมต่อพร้อมกันหลายรายการ
- เหมาะสำหรับการรันแอปพลิเคชันข้อมูลสไตล์ REPL แบบเดียวกับ Jupyter Notebook
- ในปัจจุบันรองรับอย่างเต็มรูปแบบบน macOS และรองรับแบบจำกัดบน Linux
- Benchmark
- Zasper ใช้ RAM และ CPU น้อยกว่ามากถึง 4 เท่าเมื่อเทียบกับ JupyterLab
- JupyterLab ใช้ RAM ประมาณ 104.8 MB และ 0.8 CPU ในขณะที่ Zasper ใช้ RAM 26.7 MB และ 0.2 CPU
- เหตุผลที่ทำ Zasper
- ในตลาดมีเครื่องมือหน้า UI ที่คล้าย JupyterLab เช่น Databricks Notebooks และ Deepnote Notebooks อยู่ แต่ส่วนใหญ่ไม่ใช่แบบฟรีและต้องทำงานบนคลาวด์
- Zasper ทำงานได้ราบรื่นบนเครื่อง local และใช้ทรัพยากรที่มีอยู่ได้อย่างมีประสิทธิภาพเพื่อรับประกันประสิทธิผลสูงสุด
- ภาษา Go ให้การรองรับโปรโตคอล REST, RPC และ WS ได้ดีเยี่ยม และเด่นด้าน concurrency และ performance
- Python เหมาะกับงานแบบ asynchronous ที่เน้น I/O แต่มีข้อจำกัดกับงานที่เน้น CPU
- มีฟีเจอร์ครบครัน เช่น editor, terminal, launcher, Jupyter Notebook, version control, command palette, dark mode
- มีให้ใช้งานทั้งแบบ Electron app และ web app
- Roadmap
- Zasper ตั้งเป้าเป็น ecosystem IDE ที่ทรงพลังสำหรับนักวิทยาศาสตร์ข้อมูลและวิศวกร AI โดยมีแนวทางการพัฒนาต่อไปดังนี้:
- รองรับไม่เฉพาะ Jupyter Notebook แต่รวมถึงแอปข้อมูลที่ปรับแต่งโดยผู้ใช้ได้ด้วย
- ทำให้การบูรณาการกับเครื่องมือที่มีอยู่เป็นเรื่องง่าย
- ให้บริการ Zasper Hub เพื่อการ deploy แบบ self-hosted ใน cloud
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ผู้เขียนของ Zasper อธิบายว่าการจัดการเคอร์เนล Jupyter ของ Zasper ที่สร้างด้วย Go coroutine มีประสิทธิภาพดีกว่าวิธีของ Python ใน JupyterLab
Marimo ดูน่าสนใจในฐานะแนวทางเลือกแทน Jupyter ที่รวมข้อดีของ Streamlit และ Jupyter เข้าด้วยกัน
มีการตั้งคำถามว่าการลดการใช้หน่วยความจำและ CPU ที่กล่าวถึงมีความสำคัญเชิงปฏิบัติจริงหรือไม่
มีความคิดเห็นว่าถึงแม้ JupyterLab จะดูเก่า แต่มันยังคงทันสมัยอยู่เพราะมีการพัฒนาอย่างต่อเนื่อง
มีการชี้ให้เห็นว่าเครื่องมือนี้มีให้ใช้ได้เฉพาะบน macOS และ Linux สนับสนุนเพียงบางส่วน โดยรองรับเฉพาะ IPython
มีความต้องการให้ Jupyter มีหน้าตาแบบ rstudio และเน้นว่าความสำคัญคือความสามารถในการรันบล็อกโค้ด
มีความคิดเห็นว่าควรพิจารณาใช้ Wails สำหรับ UI
มีข้อสงสัยว่ามีข้อได้เปรียบอะไรบ้างเมื่อเทียบกับการรองรับ Jupyter notebook ของ VSCode
สงสัยว่าหากตัดการเชื่อมต่อใน frontend ที่กำลังทำงานอยู่แล้วเชื่อมต่อกลับใหม่ จะสูญเสีย output หรือไม่
ดูเหมือนเป็นโปรเจกต์ที่จะแทนที่ JupyterLab frontend โดยยังคงการเชื่อมต่อกับ Jupyter kernel