จาวาสคริปต์เอนจิน
จาวาสคริปต์เอนจิน (JavaScript engine) เป็นส่วนประกอบซอฟต์แวร์ที่รันรหัสต้นทางในภาษา จาวาสคริปต์ เอนจินจาวาสคริปต์ในยุกแรกเป็นเพียงอินเทอร์พรีเตอร์ แต่เอ็นจิ้นสมัยใหม่ใช้การแปลแบบทันท่วงทีเพื่อประสิทธิภาพที่ดีขึ้น [1]
โดยทั่วไปแล้วจาวาสคริปต์เอนจิน ได้รับการพัฒนาโดยผู้จำหน่ายเว็บเบราว์เซอร์ และเบราว์เซอร์หลัก ๆ ทุกตัวก็มีจาวาสคริปต์เอนจินแถมมาด้วย เพื่อทำงานร่วมกับ เร็นเดอริงเอนจิน ผ่าน Document Object Model
การใช้จาวาสคริปต์เอนจิน ไม่ได้จำกัดอยู่เพียงเบราว์เซอร์ เช่น วี8 เป็นองค์ประกอบหลักของระบบรันไทม์ Node.js และ Deno
เนื่องจากเอ็กมาสคริปต์เป็นข้อกำหนดมาตรฐานของจาวาสคริปต์ จาวาสคริปต์เอนจินจึงอาจเรียกได้ในอีกชื่อหนึ่งว่า เอ็กมาสคริปต์เอนจิน ด้วยการถือกำเนิดของ WebAssembly เอ็นจิ้นบางตัวยังสามารถรันรหัสเหล่านั้นในกระบะทรายเดียวกันกับรหัสจาวาสคริปต์ทั่วไปได้
ความเป็นมา
[แก้]จาวาสคริปต์เอนจินตัวแรกถูกสร้างขึ้นโดย Brendan Eich ในปี 1995 สำหรับ เน็ตสเคป แนวิเกเตอร์ มันเป็นอินเทอร์พรีเตอร์พื้นฐานสำหรับภาษาที่ Eich คิดค้นขึ้นใหม่ (เอนจิ้นดังกล่าวได้พัฒนาเป็นเอ็นจิ้นสไปเดอร์มังกี้ (SpiderMonkey) ในเวลาต่อมา โดยสไปเดอร์มังกี้นั้นยังคงใช้ใน Firefox)
จาวาสคริปต์เอนจินสมัยใหม่ตัวแรกคือวี8ซึ่งสร้างโดยกูเกิลมาเพื่อกูเกิล โครม วี8 เปิดตัวโดยเป็นส่วนหนึ่งของกูเกิล โครม ในปี 2008 และประสิทธิภาพก็ดีกว่าเอนจินรุ่นก่อน ๆ มาก [2] [3] นวัตกรรมที่สำคัญคือการแปลแบบทันท่วงทีซึ่งสามารถปรับปรุงเวลาดำเนินการได้อย่างมาก
ผู้จำหน่ายเบราว์เซอร์รายอื่น ๆ จำเป็นต้องยกเครื่องเอนจินของพวกเขาเพื่อแข่งขันในตลาดได้[4] Apple พัฒนาเครื่องยนต์ Nitro สำหรับเบราว์เซอร์ Safari ซึ่งมีประสิทธิภาพดีกว่ารุ่นก่อนถึง 30% [5] Mozilla ใช้ประโยชน์จาก Nitro บางส่วนเพื่อปรับปรุงเอ็นจินสไปเดอร์มังกี้ของตัวเอง [6]
ตั้งแต่ปี 2017 เอ็นจินเหล่านี้ได้เพิ่มการรองรับ WebAssembly ซึ่งช่วยให้สามารถใช้ไฟล์สั่งทำการที่แปลโปรแกรมไว้ล่วงหน้าสำหรับส่วนที่ต้องการประสิทธิภาพของสคริปต์เพจได้
เอนจินที่มีชื่อเสียง
[แก้]- วี8 จากกูเกิลเป็นจาวาสคริปต์เอนจินที่ใช้มากที่สุด กูเกิล โครมและเบราว์เซอร์ที่ใช้โครเมียมอื่น ๆ มากมายใช้งานวี8 เช่นเดียวกับโปรแกรมประยุกต์ที่สร้างด้วย CEF, Electron หรือ เฟรมเวิร์ก อื่น ๆ ที่ฝัง Chromium การใช้งานอื่น ๆ ได้แก่ ระบบรันไทม์ Node.js และ Deno
- สไปเดอร์มังกี้ได้รับการพัฒนาโดย Mozilla เพื่อใช้ใน Firefox และตัวแยกส้อมชองมัน GNOME Shell ใช้สไปเดอร์มังกี้เพื่อรองรับส่วนขยาย
- JavaScriptCore เป็นเอนจินของ Apple สำหรับเบราว์เซอร์ Safari เบราว์เซอร์ที่ใช้ WebKit อื่น ๆ และระบบรันไทม์ของ Bun ก็ใช้เบราว์เซอร์นี้เช่นกัน KJS จาก KDE เป็นจุดเริ่มต้นในการพัฒนา [7]
- จักร (Chakra) เป็นเอนจินของ Internet Explorer นอกจากนี้ยังได้รับการแยกส้อมโดย Microsoft มาเพื่อใช้ในไมโครซอฟท์ เอดจ์ตัวเดิม แต่ภายหลังไมโครซอฟท์ เอดจ์ถูกสร้างขึ้นใหม่โดยใช้โครเมียมจึงใช้วี8 เป็นเอนจิน[8][9]
อ้างอิง
[แก้]- ↑ Looper, Jen (2015-09-21). "A Guide to JavaScript Engines for Idiots". Telerik Developer Network. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2018-12-08. สืบค้นเมื่อ 2018-12-08.
- ↑ "Big browser comparison test: Internet Explorer vs. Firefox, Opera, Safari and Chrome". PC Games Hardware. Computec Media AG. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2012-05-02. สืบค้นเมื่อ 2010-06-28.
- ↑ "Lifehacker Speed Tests: Safari 4, Chrome 2". Lifehacker. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2021-02-14. สืบค้นเมื่อ 2010-06-28.
- ↑ "Mozilla asks, 'Are we fast yet?'". Wired. สืบค้นเมื่อ 18 January 2019.
- ↑ Safari 5 Released
- ↑ Shankland, Stephen (2010-03-02). "Opera 10.5 brings new JavaScript engine". CNET. CBS Interactive. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2013-10-03. สืบค้นเมื่อ 2012-01-30.
- ↑ Stachowiak, Maciej (November 9, 2008). "Companies and Organizations that have contributed to WebKit". WebKit Wiki. สืบค้นเมื่อ April 13, 2019.
- ↑ Belfiore, Joe (2020-01-15), New year, new browser – The new Microsoft Edge is out of preview and now available for download, Microsoft
- ↑ "Microsoft Edge and Chromium Open Source: Our Intent". Microsoft Edge Team. 6 December 2018. สืบค้นเมื่อ 8 December 2018.