คุณได้อธิบายไปแล้วว่ามันคืออะไร การใช้งานคือมันเป็นภาษาระดับต่ำที่ใช้งานได้กับทุกเบราว์เซอร์ค่อนข้างเร็วในบางส่วนและรวดเร็วมากในบางส่วน สิ่งที่คุณทำสิ่งนี้คือปลายเปิดเหมือนกับสิ่งที่คุณทำกับภาษาโปรแกรมอื่น
กรณีการใช้งานของ Mozilla ดูเหมือนว่าจะมีความกระตือรือร้นมากที่สุดคือ: มีวิธีการรวบรวมภาษาด้วยแบ็กเอนด์ LLVM (ส่วนใหญ่ C และ C ++ ที่เด่นชัด) ไปยัง JavaScript ผ่าน Emscripten asm.js นั้นใกล้เคียงกับ Emscripten ที่ปล่อยออกมาแล้วดังนั้นสิ่งนี้จึงทำให้โค้ด Emscripten (ซึ่งเร็วอย่างน่าประทับใจสำหรับคอมไพเลอร์ JavaScript JIT ของวันนี้) จะเร็วขึ้นมากยิ่งขึ้นซึ่งเป็นเป้าหมายของการย้ายฐานรหัสที่มีอยู่ไปยังเว็บ สิ่งที่คุณใช้เพื่อการตัดสินใจของคุณคืออะไร การย้ายเกมเป็นกรณีการใช้งานหนึ่งครั้ง (ซึ่ง Mozilla เกี่ยวข้องกับการใช้งานอย่างเห็นได้ชัด) แต่มีสิ่งต่าง ๆ มากมายที่เขียนใน C และ C ++ ซึ่งบางเรื่องอาจมีประโยชน์สำหรับเว็บไซต์ของใครบางคน บางอย่างที่ฉันเคยเห็นมาก่อน (รวมถึงการคิดค้นของฉันเอง) โดยไม่มีการรับประกันเกี่ยวกับสิทธิ์:
- การโอนย้ายอัลกอริธึมวัตถุประสงค์ทั่วไป (เช่น zlib, libjpeg, openssl, การใช้งาน FFT) เพื่อให้อำนาจ JavaScript / เว็บไซต์ทำได้มากขึ้นโดยไม่ต้องสร้างมาตรฐานเว็บใหม่และขึ้นอยู่กับแต่ละเบราว์เซอร์เพื่อนำไปใช้
- การย้ายพอร์ตล่ามเพื่อให้ภาษาอื่นที่ไม่ใช่ JavaScript สามารถทำงานในเบราว์เซอร์ได้โดยมีค่าใช้จ่ายน้อยลงและพยายามย้ายพอร์ตน้อยที่สุด
- การใช้ asm.js เป็นแบ็กเอนด์สำหรับคอมไพเลอร์มากกว่าโดยเฉพาะอย่างยิ่งสิ่งที่ไม่ได้จับคู่กับ JavaScript ได้ดีและไม่ต้องการคุณสมบัติและโอเวอร์เฮดส่วนใหญ่ ตัวอย่างอาจเป็นภาษาที่ออกแบบมาเพื่องานตัวเลขที่รวดเร็วโดยไม่มีการจัดสรรหน่วยความจำ
- การใช้ asm.js เพื่อสร้าง JIT ใน JavaScript มันอาจจะใช้ภาษาใด ๆ ที่ทุกคน - ตัวอย่างActionScript
- ในหลอดเลือดดำเดียวกันการย้ายพอร์ตคอมไพเลอร์ JIT ที่มีอยู่เพื่อรันในเบราว์เซอร์ (เทียบกับล่ามแปลภาษาด้วยค่าใช้จ่ายที่มีประสิทธิภาพเหนือ JS) นี่อาจเป็นไปได้ก็ต่อเมื่อคอมไพเลอร์ JIT ถูกสร้างขึ้นโดยอัตโนมัติเช่นเดียวกับ PyPy