คุณสังเกตเห็นแอปพลิเคชั่นเดสก์ท็อปใหม่จำนวนมากดูเหมือนเว็บไซต์หรือไม่? ไม่ใช่จินตนาการของคุณ
จาก Trello ถึง Slack จาก WordPress.com ไปจนถึง Github เป็นเรื่องปกติมากขึ้นที่แอปพลิเคชันเดสก์ท็อปที่เรียกว่ารวมเว็บไซต์ที่มีคุณสมบัติดั้งเดิมบางอย่างเช่นการแจ้งเตือนการเข้าถึงระบบไฟล์และเมนู เทคโนโลยีที่ใช้บ่อยที่สุดเรียกว่า อิเล็กตรอน และมันถูกใช้โดยแอปพลิเคชั่นบางตัวที่คุณอาจไม่เคยสงสัยเช่น แอพพลิเคชั่นแชท Discord และ Microsoft’s รหัส Visual Studio .
Electron ช่วยให้นักพัฒนาสามารถปล่อยแอพพร้อมกันบน Windows, macOS และ Linux ได้อย่างง่ายดาย แต่ก็มีข้อเสียสำหรับผู้ใช้ การใช้งานอิเล็กตรอนมีขนาดใหญ่มากสำหรับสิ่งหนึ่ง Slack ซึ่งเป็นแอปพลิเคชันแชทใช้พื้นที่ฮาร์ดไดรฟ์บน Mac ถึง 237 MB และการใช้หน่วยความจำก็ไม่น้อยเช่นกัน อะไรคือทรัพยากรทั้งหมดที่ใช้ไป และเหตุใดนักพัฒนาจึงใช้บางอย่างที่ไม่มีประสิทธิภาพ
แอพ Electron นั้นค่อนข้างง่ายที่จะสร้าง
แอปพลิเคชันเดสก์ท็อปทำยากโดยเฉพาะอย่างยิ่งหากคุณต้องการให้ใช้งานข้ามแพลตฟอร์ม การเข้าถึงระบบไฟล์จะทำงานใน Windows แตกต่างจากที่ทำใน Linux เช่นและการแจ้งเตือนจะทำงานแตกต่างกันบน macOS มากกว่าใน Windows ซึ่งหมายความว่าใครก็ตามที่ต้องการเขียนแอปพลิเคชันสำหรับระบบปฏิบัติการเดสก์ท็อปทั้งสามระบบ (หรือสองระบบ) จำเป็นต้องเขียนโค้ดซ้ำจำนวนมากเมื่อย้ายจากระบบหนึ่งไปยังอีกระบบหนึ่ง
อิเล็กตรอนจะ“ แก้ปัญหา” โดยการนำเสนอแพลตฟอร์มเดียวที่ทำงานบนระบบปฏิบัติการเดสก์ท็อปหลักทั้งสามระบบ ซึ่งหมายความว่านักพัฒนาสามารถเขียนโค้ดสำหรับสิ่งต่างๆเช่นการแจ้งเตือนเพียงครั้งเดียวและคาดว่าจะทำงานได้ในทุกระบบปฏิบัติการ ดียิ่งขึ้นสำหรับนักพัฒนา: ทุกอย่างสามารถสร้างได้โดยใช้ Javascript, HTML และ CSS ซึ่งเป็นเทคโนโลยีที่ใครก็ตามที่เขียนโค้ดสำหรับเว็บจะคุ้นเคยเป็นอย่างดี
แอป Electron มาพร้อมกับ Chromium ทั้งหมด
เป็นไปได้อย่างไร? ส่วนหนึ่งเป็นเพราะแอป Electron ทุกตัวรวมเว็บเบราว์เซอร์ที่สมบูรณ์: Chromium Google Chrome เวอร์ชันโอเพนซอร์ส . สิ่งนี้มาพร้อมกับคำแนะนำเฉพาะแพลตฟอร์มเพื่อให้แน่ใจว่าทุกอย่างทำงานได้ตามที่นักพัฒนาคาดหวังในระบบทั้งหมด นั่นเป็นสาเหตุที่ Slack เวอร์ชันเดสก์ท็อปใช้พื้นที่ฮาร์ดไดรฟ์มากกว่า 200MB Chrome ส่วนใหญ่รวมอยู่ในนั้น
ทุกแอป Electron ที่คุณเรียกใช้เป็นอินสแตนซ์ทั้งหมดของ Chrome ไม่มากก็น้อย ในฐานะบล็อกเกอร์โจเซฟเจนเทิล ชี้ให้เห็น สิ่งนี้แทบจะไม่เหมาะ:
คุณสามารถคิดว่า Slack เป็นโปรแกรมจาวาสคริปต์ขนาดเล็กที่ทำงานในระบบปฏิบัติการอื่น VM (chrome) ซึ่งคุณต้องเรียกใช้เพื่อสนทนากับ IRC เป็นหลัก แม้ว่าคุณจะเปิด Chrome จริงไว้ แต่แอปอิเล็กตรอนแต่ละตัวจะเรียกใช้สำเนา VM ทั้งหมดของตัวเอง
ใช่มีข้อเสียสำหรับผู้ใช้ ก่อนอื่นแอปพลิเคชัน Electron ทุกตัวที่คุณดาวน์โหลดบันเดิลส่วนใหญ่ของ Chromium และทุกแอปพลิเคชันที่คุณเรียกใช้จะเรียกใช้โค้ดนั้นเป็นจำนวนมาก ไม่มีการแบ่งปันทรัพยากรที่นี่เหมือนกับที่มีในแอปพลิเคชันเนทีฟซึ่งหมายความว่าแอป Electron จะใช้พื้นที่ฮาร์ดไดรฟ์และหน่วยความจำมากกว่าแอปพลิเคชันที่พัฒนาโดยคำนึงถึงแพลตฟอร์มของคุณโดยเฉพาะ หากประสิทธิภาพเป็นสิ่งที่คุณสนใจจริงๆคุณอาจต้องการหลีกเลี่ยงการใช้งาน Electron
เดี๋ยวก่อนอิเล็กตรอนดีหรือไม่ดี?
ณ จุดนี้คอมพิวเตอร์มีประสิทธิภาพมากจนผู้ใช้ส่วนใหญ่ไม่เคยสังเกตด้วยซ้ำว่าแอปพลิเคชัน Electron ไม่มีประสิทธิภาพเพียงใด ในความเป็นจริงคนส่วนใหญ่ไม่เคยได้ยินเรื่องอิเล็กตรอนมาก่อน เพื่อนร่วมงานของฉันส่วนใหญ่ไม่มีและทุกคนก็ใช้ Slack ทุกวัน หลายคนรู้สึกตื่นเต้นที่ได้เห็น Trello เวอร์ชันเดสก์ท็อปออกมาและอีกครั้งก็ไม่รู้ว่ามันเป็นแอป Electron
และแอพเหล่านี้ทำงานร่วมกับระบบปฏิบัติการของคุณได้ดีกว่าเว็บไซต์ พวกเขาอาศัยอยู่ในหน้าต่างของตัวเอง มีแป้นพิมพ์ลัดที่ยอดเยี่ยมการแจ้งเตือนแบบเนทีฟและสิ่งอื่น ๆ ที่คุณไม่สามารถทำได้ด้วยเบราว์เซอร์เพียงอย่างเดียว
และเป็นทางออกที่ดีที่แอปพลิเคชันอย่าง Slack, Trello และ WordPress.com จะไม่ต้องกังวลกับการเสนอเวอร์ชันเดสก์ท็อปหากไม่มี Electron โดยเน้นที่เวอร์ชันมือถือและเบราว์เซอร์แทน ดังนั้นคำถามไม่ใช่ว่าอิเล็กตรอนไม่ดีหรือไม่ ไม่ว่าแอปพลิเคชัน Electron จะดีกว่าไม่มีอะไรเลย ฉันยินดีที่จะตอบว่าใช่ แต่คนที่มีเหตุผลอาจไม่เห็นด้วย (และเดี๋ยวก่อนสำหรับคนเหล่านั้นมีเวอร์ชันเว็บเสมอ)