ทำไมถึงมีเพียงรองรับจาวาสคริปต์และ VBScript บางตัวในเบราว์เซอร์ในวันนี้? ฉันรู้ว่า JavaScript เป็นสิ่งที่ดีและทั้งหมด แต่จะไม่มีตัวเลือกในการใช้ภาษาการเขียนโปรแกรมอื่นช่วยส่งเสริมรูปแบบการพัฒนาที่แตกต่างกันใช่ไหม
ทำไมถึงมีเพียงรองรับจาวาสคริปต์และ VBScript บางตัวในเบราว์เซอร์ในวันนี้? ฉันรู้ว่า JavaScript เป็นสิ่งที่ดีและทั้งหมด แต่จะไม่มีตัวเลือกในการใช้ภาษาการเขียนโปรแกรมอื่นช่วยส่งเสริมรูปแบบการพัฒนาที่แตกต่างกันใช่ไหม
คำตอบ:
ไม่จำเป็นต้องเพิ่ม suport สำหรับหลายภาษาโซลูชันจะสร้างมาตรฐานให้กับ bytecode ทั่วไปที่ผู้ใช้ภาษาสามารถนำไปใช้ได้ แต่ปัจจุบันยังไม่มีแผนสำหรับสิ่งนี้ (แนะนำให้ทำ)
ภาษาสามารถนำไปใช้กับ Javascript ได้เช่นกัน Javascript นั้นดีพอที่จะทำให้ภาษาอื่นสามารถใช้งานได้ และมีตัวอย่างมากมายของเรื่องนี้อยู่แล้ว
<script type="text/cpp" src="test.cpp"></script>
.
JavaScript เป็นมาตรฐานแบบพฤตินัยและได้รับมาตั้งแต่ปี 1996 การเป็นมาตรฐานเพียงอย่างเดียวเนื่องจากไม่มีการแข่งขันที่ไม่ยุติธรรม แต่ฉันไม่เคยได้ยินเรื่องร้องเรียนจำนวนมากเกี่ยวกับสาเหตุที่ไม่มีภาษาอื่นรวมอยู่ด้วย
การเพิ่มภาษา "มาตรฐาน" อีกภาษาส่งเสริมปัญหาความสนุกเล็กน้อยทุกประเภท
คิดถึงความไม่สอดคล้องระหว่างเบราว์เซอร์ที่สนับสนุนจาวาสคริปต์เพียงอย่างเดียว ทีนี้ลองคิดดูว่ามันจะเป็นอย่างไรถ้ามีภาษามากขึ้น
เบราว์เซอร์จะต้องได้มาตรฐานเพื่อให้สิ่งที่คุณพัฒนาใช้ได้ทุกที่บนทุกเบราว์เซอร์
หากคุณมีหลายภาษาที่คุณสนใจคุณต้องแน่ใจว่าภาษาเหล่านั้นมีประสิทธิภาพในทำนองเดียวกัน หากคุณเป็นนักพัฒนาเว็บและคุณมีภาษาให้เลือกหลายภาษาซึ่งอาจมีหรือไม่มีการรองรับในบางสถานที่นั่นอาจทำให้คุณปวดหัวมากขึ้น
จาวาสคริปต์ที่เป็นมากภาษาที่มีความยืดหยุ่นมีความจำเป็นก็สามารถทำงานได้ก็สามารถ OOP (หลังจากที่แฟชั่นกับต้นแบบ) และมันถูกตีความ ขณะนี้มีเครื่องมือที่ดีเช่นใน Chrome ก็สามารถทำสิ่งที่ดีพอสมควร ภาษาพิเศษจะตั้งค่าสิ่งต่าง ๆ กลับมาที่นี่ดูที่ VBScript, IE เท่านั้นและดังนั้นสิ่งที่เขียนในนั้นจะถูกผูกไว้กับเบราว์เซอร์และแพลตฟอร์มเฉพาะฝันร้าย
แทนที่จะสร้างสิ่งเหล่านี้ลงในเบราว์เซอร์ผู้ขายต้องการสร้างปลั๊กอินเบราว์เซอร์ที่ไม่น่าดู - Java, Flash, Silverlight และอื่น ๆ สิ่งนี้รับประกันความสอดคล้องข้ามแพลตฟอร์ม
หนึ่งในเหตุผลก็คือมันเป็นไปไม่ได้ในทางปฏิบัติสำหรับผู้ขายเบราว์เซอร์ที่แตกต่างกันแม้จะเห็นด้วยกับการใช้งานจาวาสคริปต์มาตรฐานและ Javascript ได้รับรอบตลอดกาลอย่างน้อยจากมุมมองภาษา ดังนั้นคนส่วนใหญ่คิดอย่างถูกต้องว่าการใช้ภาษาฝั่งไคลเอ็นต์อื่นในระบบนิเวศและการรับผู้ขายทั้งหมดเพื่อสนับสนุนมันเป็นไปไม่ได้ในทางปฏิบัติและคนส่วนใหญ่ที่อาจทำให้เกิดขึ้นนั้นมีส่วนเกี่ยวข้องกับปัญหามาตรฐาน Javascript ซึ่งฉันคิดว่าดีกว่ามาก ใช้เวลาของพวกเขา
มีหลายคำตอบที่นี่ซึ่งอ้างว่าการสนับสนุนหลายภาษาจะทำให้ผู้สร้างเว็บเบราว์เซอร์น่ารังเกียจมากเพื่อให้แน่ใจว่าสอดคล้องกับทุกภาษา สำหรับฉันดูเหมือนว่าไม่ถูกต้อง
ตัวอย่างเช่น Java เป็นมาตรฐานที่กำหนดไว้อย่างดีมาก โดยพื้นฐานแล้วสิ่งที่คุณต้องทำคือการเปิดเผย DOM เบราว์เซอร์เป็น Java API และเรียกใช้ Java Virtual Machine (JVM) ภายในเว็บเบราว์เซอร์ของคุณ คุณสามารถระบุรหัสสคริปต์ได้ว่าจะต้องส่งในรูปแบบของไฟล์ JAR ที่คอมไพล์และเซ็นชื่อหรือเป็นซอร์สโค้ด JavaScript หากเบราว์เซอร์พบกับจาวาสคริปต์ก็สามารถเรียกใช้ผ่านล่ามเฉพาะ (เช่นเดียวกับทุกวันนี้) หรือผ่านแรดที่อยู่ด้านบนของ JVM หากพบไฟล์ jar มันจะสร้างตัวโหลดคลาสใหม่และแซนด์บ็อกซ์ความปลอดภัยโหลด java bytecode ลงในหน่วยความจำและดำเนินการ สิ่งนี้จะเข้ากันได้อย่างสมบูรณ์แบบย้อนหลังกับหน้าเว็บที่มีอยู่และจะช่วยให้เบราว์เซอร์ที่มีจังหวะเดียวเพื่อรองรับหลายภาษาที่ทำงานบน JVM
ข้อดีอื่น ๆ :
ฉันเชื่อว่าจาวาสคริปต์จะได้รับพื้นฐานมากขึ้นในฐานะภาษามาตรฐานสำหรับเว็บ เราเห็นการเพิ่มขึ้นของ JavaScript ฝั่งเซิร์ฟเวอร์ นี่คือตัวอย่างของการใช้งานภาษาที่มีประสิทธิภาพนี้บนเซิร์ฟเวอร์:
POW Web Server SJS - JavaScript ฝั่งเซิร์ฟเวอร์สำหรับ POW Web Server ซึ่งทำงานเป็นส่วนขยายของ Firefox หรือเป็นแอปพลิเคชัน XULRunner SJS มีบทบาทคล้ายกับ PHP ใน Apache ซึ่งสามารถเชื่อมต่อกับฐานข้อมูลและสร้างเนื้อหาฝั่งไคลเอ็นต์
NodeJS - JavaScript ฝั่งเซิร์ฟเวอร์ที่ใช้โมเดลที่อิงกับเหตุการณ์ มันถูกสร้างขึ้นโดยใช้ Google ของJavaScript เครื่องยนต์ NodeJS ถูกโฆษณาว่าเป็นเครื่องมือสำหรับการสร้างโปรแกรมเครือข่ายที่ปรับขนาดได้ เว็บเซิร์ฟเวอร์ "Hello World" สามารถเขียนได้ใน 6 บรรทัดสั้น ๆ !
Jaxer - เซิร์ฟเวอร์ JavaScript ที่ตีความบล็อคสคริปต์ทั้งหมดด้วยrunat="server"
JavaScript ฝั่งเซิร์ฟเวอร์ เว็บแอปพลิเคชันทั้งหมดสามารถเขียนได้ใน JavaScript
Rhino - JavaScript สำหรับ Java - Mozilla สร้างการใช้งาน JavaScript ฝั่งเซิร์ฟเวอร์นี้ซึ่งทำงานบน Java มันเป็นแนวคิดที่คล้ายคลึงกับQuerces PHP สำหรับ Java , Jython, JRuby และ abstractions อื่น ๆ ของภาษาอื่น ๆ ที่ทำงานบน JVM โดยทั่วไปแล้ว Rhino จะใช้เพื่อฝัง JavaScript ลงใน Java เพื่อให้เครื่องมือการเขียนสคริปต์แก่ผู้ใช้ แต่ยังสามารถใช้เพื่อย้ายรหัสฝั่งไคลเอ็นต์ไปยังเซิร์ฟเวอร์โดยไม่ต้องเขียนตรรกะทางธุรกิจในภาษาอื่น!
JQuery Claypool - เฟรมเวิร์ก JavaScript ฝั่งเซิร์ฟเวอร์โดยใช้พลังของ JQuery บนเซิร์ฟเวอร์ เจ๋งมาก! มันได้รับการพัฒนาโดยใช้เบราว์เซอร์ EnvJs ฝั่งเซิร์ฟเวอร์ของเบราว์เซอร์
EnvJs - เบราว์เซอร์ที่ไม่มีหัวที่สร้างขึ้นบน Rhino
สิ่งที่แสดงให้เห็นถึงการใช้งานและกรอบงานเหล่านี้คือ JavaScript กำลังกลายเป็นกำลังที่ทรงพลังในการพัฒนาเว็บซึ่งผู้นำชุมชนได้เริ่มย้าย JavaScript ไปยังเซิร์ฟเวอร์แล้ว JavaScript เป็นภาษาการเขียนโปรแกรมที่มีประสิทธิภาพอย่างยิ่งและเมื่อเวลาผ่านไปฉันรู้สึกว่าเราจะเห็นวิวัฒนาการ
โดยสรุปดูเหมือนว่าจะขัดแย้งกับการย้ายภาษาอื่นไปยังเบราว์เซอร์เมื่อเราสามารถย้ายภาษาเบราว์เซอร์เดี่ยวนี้ไปยังเซิร์ฟเวอร์และเชื่อมช่องว่างนั้นในลักษณะที่เป็นเอกภาพมากขึ้น
มีหลายตัวอย่างของเครื่องมือที่จะรวบรวมภาษาอื่น ๆ เพื่อจาวาสคริปต์รวมถึง Haskel, Lisp และ Python (อาจเป็นอื่น ๆ ) ดังนั้นหากคุณต้องการทำงานในหนึ่งในภาษาเหล่านั้นคุณสามารถทำได้
และฉันคิดว่าอาจารย์คนหนึ่งของฉันจากมหาวิทยาลัยเขียนแผนการใช้งานใน Javascript ดังนั้นถ้าคุณชอบแบบแผนคุณก็สามารถทำได้เช่นกัน
ผู้คนต่างพยายามแก้ปัญหาการขาดความหลากหลายในตัวด้วยสองวิธี: การใช้ปลั๊กอินเช่นแอปเพล็ตแฟลชหรือจาวาและการสร้างเลเยอร์ที่ใช้จาวาสคริปต์เป็น "รหัสเครื่อง" เช่น jquery หรือ google web toolkit หากมีการพัฒนารูปแบบใหม่ที่เป็นที่นิยมมากพอคนก็จะหาวิธีที่จะได้รับมัน
เพิ่งทราบว่าคุณสร้าง. net runtime ใน javascript และมันเคยเป็นที่นิยมวงการบางวงจะสาปแช่งชื่อของคุณบนอินเทอร์เน็ตตลอดไป