โปรแกรมสเปรดชีตโอเพนซอร์สตัวใหม่ได้ปรากฏขึ้นในวงการเทคโนโลยี ดึงดูดความสนใจจากนักพัฒนาและผู้ที่ชื่นชอบการใช้งานสเปรดชีต IronCalc ซึ่งเป็นโปรเจกต์ที่พัฒนาด้วยภาษา Rust และคอมไพล์เป็น WebAssembly นำเสนอทางเลือกที่น่าสนใจเมื่อเทียบกับโซลูชันสเปรดชีตแบบดั้งเดิม ด้วยสถาปัตยกรรมที่เบาและมีประสิทธิภาพสูง
การพัฒนาทางเทคนิค
IronCalc ทำงานทั้งหมดในเบราว์เซอร์ผ่าน WebAssembly โดยไม่จำเป็นต้องประมวลผลที่ฝั่งเซิร์ฟเวอร์สำหรับฟังก์ชันหลัก โปรเจกต์นี้แสดงให้เห็นถึงประสิทธิภาพที่น่าประทับใจ โดยผู้ใช้สังเกตเห็นการตอบสนองที่รวดเร็วและใช้ทรัพยากรระบบน้อย การพัฒนาใช้ภาษา Rust ที่คอมไพล์เป็น WASM ทำให้เป็นตัวอย่างที่โดดเด่นของสถาปัตยกรรมเว็บแอปพลิเคชันสมัยใหม่
ชุดคุณสมบัติและสถานะการพัฒนา
แม้ว่าปัจจุบันยังอยู่ในช่วงพัฒนา IronCalc มีเป้าหมายที่จะรองรับสูตรคำนวณของ Excel ให้ได้ภายในระยะเวลาประมาณหนึ่งปี โปรเจกต์นี้แยกส่วนติดต่อผู้ใช้และเอนจินด้านหลังออกจากกันอย่างชัดเจน ทำให้สามารถนำไปประยุกต์ใช้ในบริบทต่างๆ ได้อย่างยืดหยุ่น จากความเห็นของชุมชนพบว่ายังมีฟีเจอร์พื้นฐานบางอย่างที่ผู้ใช้ Excel คุ้นเคยที่ยังอยู่ระหว่างการพัฒนา:
ทดลองคลิกดูแล้ว ฟีเจอร์พื้นฐานบางอย่างที่เคยใช้ยังหายไป เช่น การคลิกที่หัวแถวหรือหัวคอลัมน์เพื่อเลือกทั้งหมด หรือการดับเบิลคลิกที่ตัวปรับขนาดระหว่างคอลัมน์เพื่อปรับขนาดให้พอดีกับเนื้อหา ที่มา
แนวทางการพัฒนาในอนาคต
โปรเจกต์ได้วางแนวทางการพัฒนาที่น่าสนใจไว้หลายประการ:
- การรองรับสคริปต์ : แทนที่จะรองรับ VBA ทีมงานกำลังพิจารณาที่จะผสานภาษาสคริปต์สมัยใหม่อย่าง Lua หรือ Rhai
- ** แพ็คเกจ NPM** : กำลังดำเนินการให้ IronCalc สามารถใช้งานเป็นแพ็คเกจ npm ได้ภายในเดือนหน้า
- ** ฟีเจอร์ขั้นสูง** : ทีมงานเปิดกว้างที่จะพัฒนาฟีเจอร์ขั้นสูงเช่น Goal Seek และการวิเคราะห์ความอ่อนไหว แม้ว่าจะยังไม่อยู่ในแผนการพัฒนาระยะใกล้
ชุมชนและการอนุญาตใช้งาน
IronCalc เผยแพร่ภายใต้ใบอนุญาตแบบคู่ MIT/Apache 2.0 ซึ่งให้ความยืดหยุ่นทั้งการใช้งานเชิงพาณิชย์และโอเพนซอร์ส โปรเจกต์มีชุมชน Discord ที่ยังคงใช้งานอยู่สำหรับการพูดคุยเกี่ยวกับการพัฒนาและการสนับสนุน
สถาปัตยกรรมทางเทคนิค
โปรเจกต์ใช้ตัวแยกวิเคราะห์แบบ recursive descent สำหรับการประเมินสูตรคำนวณ แสดงให้เห็นถึงพื้นฐานที่แข็งแกร่งในหลักการวิทยาการคอมพิวเตอร์ แนวทางนี้แม้จะเป็นแบบดั้งเดิม แต่พิสูจน์แล้วว่ามีประสิทธิภาพในคอมไพเลอร์และตัวแยกวิเคราะห์หลายตัวที่ใช้งานจริง
การมุ่งมั่นในการเป็นโอเพนซอร์สและความโปร่งใสขยายไปถึงการวิเคราะห์ของโปรเจกต์ แม้ว่าทีมงานกำลังพิจารณาที่จะลบการวิเคราะห์ออกทั้งหมดเพื่อให้สอดคล้องกับแนวทางการพัฒนาที่เน้นความเป็นส่วนตัว
สำหรับนักพัฒนาที่สนใจสร้างงานด้วย IronCalc โปรเจกต์นี้วางตำแหน่งตัวเองทั้งในฐานะเอนจินสเปรดชีตแบบสแตนด์อโลนและเป็นพื้นฐานสำหรับการพัฒนาแบบกำหนดเอง ทำให้น่าสนใจเป็นพิเศษสำหรับนักพัฒนา SaaS ที่ต้องการผสานฟังก์ชันสเปรดชีตเข้ากับแอปพลิเคชันของตน
แหล่งที่มา: การประกาศโปรเจกต์ การสนทนาในชุมชน