ฉันจะเพิ่มการอัปเดตสำหรับสิ่งนี้เพราะฉันคิดว่าการเกิดขึ้นของ JS บนเว็บฝั่งไคลเอ็นต์นั้นเกิดความเข้าใจผิดในประเด็นสำคัญ ๆ ในช่วงหลายปีที่ผ่านมา
มันไม่ใช่อาแจ็กซ์
ฉันไม่ได้บอกว่าอาแจ็กซ์ไม่ได้มีความสำคัญต่อการวิวัฒนาการของความเข้าใจของ JS ในฐานะภาษา แต่การต่อสู้เพื่อการปกครองเบราว์เซอร์ฝั่งไคลเอ็นต์นั้นจบลงนานก่อนที่อาแจ็กซ์จะประกาศเกียรติ
ไม่ใช่เพราะมันเป็นเกมเดียวในเมือง
มี Java Applets, Flash และ VBScript ฉันได้ยินมาว่ามีตัวเลือกการเขียนสคริปต์อื่น ๆ ใน '90s (แต่จำเป็นต้องใช้ปลั๊กอิน IIRC) Java นั้นได้รับความนิยมอย่างสูง พวกเขาดูน่าเกลียดและมักจะมีความปลอดภัย - สวิส - ชีส แต่ที่สำคัญกว่านั้นฉันไม่คิดว่า Java เหมาะสำหรับเหตุผลที่ฉันจะไปในภายหลัง Flash เป็นที่นิยมมากและมีความแข็งแกร่งเป็นเวลาหลายปี แต่แม้ในที่สุด Flash ก็มีตัวเลือก SEO แต่ก็ไม่ได้ใช้งานบ่อยนักทำให้เว็บไซต์ Flash หายากโดยเฉพาะ แม้ตอนนี้พวกเราส่วนใหญ่อัปเดต Flash เป็นประจำเพื่อให้เราสามารถชมภาพยนตร์ แต่นั่นคือจุดอ่อน Achilles ที่แท้จริง เทคโนโลยีที่เป็นกรรมสิทธิ์ในเบราว์เซอร์นั้นน่ารำคาญ และแน่นอน VB ซึ่งเคยทำงานกับ IE เท่านั้นดังนั้นไม่
สถานที่ที่เหมาะสมในเวลาที่เหมาะสมมีความเกี่ยวข้อง แต่ไม่ใช่คำตอบทั้งหมด
ใช่เราจะไม่เคยเห็น JavaScript หรือภาษาที่ใช้กันอย่างแพร่หลายเหมือนอย่างที่เราทำ หรือบางทีเราจะมี ...
มันจบลงด้วยการเป็นเครื่องมือที่สมบูรณ์แบบสำหรับโดเมนปัญหา
ฉันจะบอกว่าประมาณ 2,000 คนเรามีปัญหาต่อไปนี้:
- IE และ Netscape เพิ่งตกลงที่จะเริ่มเล่นได้ดีโดยการเข้าร่วม DOM API และมาตรฐาน CSS เดียวกันและเราต้องจัดการกับปัญหา JS ข้ามเบราว์เซอร์ JS รุ่นเก่าที่เพิ่งจะกลายเป็นจัดการได้ โดยไม่ต้องใช้เครื่องมือปรับสภาพ JS DOM เช่น jQuery post IE8
- มีนักพัฒนาเว็บ / นักออกแบบรุ่นใหม่ที่ไม่จำเป็นต้องเป็นนักพัฒนาซอฟต์แวร์ทุกคนที่ต้องการพัฒนาเกมของพวกเขาในช่วงที่พวกเขาหยุดส่งเงินเดือนให้คุณเพื่อแสดงตัวที่ประตู กว่าความรู้พื้นฐาน HTML และทักษะการใช้ Photoshop
- มีเด็ก CSS ตัวใหม่ในเมืองที่เสนอความเป็นไปได้ที่น่าสนใจสำหรับสิ่งที่เรียกว่า DHTML ในที่สุด (เหมาะสมกว่า) การเขียนสคริปต์ DOM (ตอนนี้ไม่เหมาะสม) HTML5 (zomghtml5!)
ดังนั้นเราจึงต้องการภาษาที่ลึกทั้งคู่นำเสนอความสามารถในการจัดโครงสร้างและออกแบบแอปขั้นสูงขึ้นด้วยส่วนประกอบแบบพกพา / ใช้งานได้ใหม่บนฝั่งไคลเอ็นต์ แต่ยังสามารถเข้าถึงคนที่ไม่รู้มากและต้องการสิ่งต่าง ๆ เพื่อปรากฏ / ปรากฏขึ้นอีกครั้งเมื่อคุณคลิกปุ่ม
นอกจากนี้ MS ยังเป็นสัตว์ร้ายที่ไร้มารยาท / และ / หรือครอบงำสัตว์ที่มีการต่อต้านการแข่งขัน - การแข่งขันฝึกซ้อมซึ่งบางครั้งพวกเขาก็ล้มเหลวในการสัมผัสการใช้งาน API API DOM ที่ไม่สอดคล้องกันมาเป็นสิบปี เพิ่มสิ่งที่เป็นครั้งคราวเช่นวัตถุ XHR ดั้งเดิมและ querySelectors ใน IE8
สิ่งสำคัญที่ควรทราบคือประมาณปี 2005 เราได้จัดการฝังความซับซ้อนที่เกี่ยวข้องในการจัดการปัญหาข้ามเบราว์เซอร์อย่างสมบูรณ์ซึ่งไม่ได้เป็นปัญหาร้ายแรงอีกต่อไปที่หน้า JavaScript ความล้มเหลวในการสนับสนุน CSS2 อย่างถูกต้องตราบเท่าที่พวกเขาทำให้เกิดความเจ็บปวดมากขึ้น สำหรับความคิดของเสียงเชียร์และความลึกของปัญหาผมขอแนะนำให้ตรวจสอบจากquirksmode.org ฉันไม่คิดว่านี่เป็นความสำเร็จที่สามารถทำได้อย่างราบรื่นและในไลบรารีจำนวนมากใน Java ไม่แน่นอนใน VB และไม่แน่นอนกับกลยุทธ์ปลั๊กอินใด ๆ ที่มีเป้าหมายที่จะก้าวเท้าเลี่ยงปัญหาทั้งหมดโดยการกลายเป็นเรื่องใหม่ทั้งหมด ประเภทของความรำคาญ
คุณสมบัติภาษาอื่น ๆ ที่ให้ความรู้สึกที่ดีกับ UI:
ฟังก์ชั่นเฟิร์สคลาส: จากประสบการณ์ของฉันไม่มีอะไรดีไปกว่าการประมวลผลแบบอะซิงก์และกระบวนทัศน์ที่ขับเคลื่อนด้วยเหตุการณ์มากกว่าภาษาที่ทำให้ฟังก์ชั่นชั้นหนึ่ง ข้อกังวลทั้งสองได้รับการแก้ไขเป็นประจำในงาน UI
Dynamic Types: การแคสติ้งและการตรวจสอบประเภทเป็นความต้องการที่หายากมากในจาวาสคริปต์ซึ่งช่วยให้โค้ดมีความกระชับและลีน ความกังวลของ UI นั้นซับซ้อนและยุ่งเหยิงอย่างรวดเร็ว การรักษาโค้ดให้แน่นและชัดเจนเกี่ยวกับการไหลของข้อมูลเป็นสิ่งสำคัญในการทำความเข้าใจและแก้ไข / บำรุงรักษา
มันไม่ใช่ Protectionist: เป็นเวลาหลายปีที่มีคนเทศนาว่าคุณต้องปกป้องตัวเองจากความผิดพลาดของตัวเองและสิ่งที่โง่คนอื่น ๆ อาจทำอะไรกับรหัสของคุณโดยการสร้างรหัสที่เข้มงวดและยืดหยุ่นสูงและเป็นไปไม่ได้ ประพันธ์ด้วยและผู้คนจำนวนมากได้ฟัง ฉันจะไม่พูดว่าพวกเขาผิดเสมอ (อาจคิดว่า) แต่ฉันจะบอกว่ามันเป็นวิธีที่ผิดในการใช้ UI ของเว็บและฉันเชื่อว่าเป็นปรากฏการณ์ที่เราได้ทำออกไปดูแลและแก้ไขลูกค้า GUI ด้านที่ก้าวเร็วมากและมีความสะดวกกว่างานดังกล่าวมักจะประสบความสำเร็จในภาษาที่ จำกัด มากขึ้นในอดีต ความสามารถในการเปลี่ยนแปลงสิ่งต่าง ๆ ได้อย่างรวดเร็วและง่ายดายทำให้ง่ายขึ้นมากที่จะมีรูปแบบสถาปัตยกรรมแบบไดนามิก / ของไหลที่ไม่ต้องใช้จำนวนมหาศาลของทางอ้อมและสิ่งที่เป็นนามธรรมซึ่งท้ายที่สุดทำให้ง่ายขึ้นที่จะเห็นสิ่งที่เกิดขึ้นในรหัสของคุณ และ pre-empt หรือจัดการข้อยกเว้นอย่างหมดจดมากขึ้น มันง่ายกว่าที่จะรักษาไว้โดยอาศัยอำนาจที่แท้จริงของการทำให้เป็นไปได้มากขึ้นในทุกสิ่งที่คุณทำและด้วยรหัสน้อยกว่าที่จะได้รับตามปรัชญาอื่น ๆ
JS กลายเป็นที่นิยมได้อย่างไร ได้พิสูจน์ตัวเองแล้วว่าเป็นเครื่องมือที่ยอดเยี่ยมสำหรับงานครั้งแล้วครั้งเล่า มันไม่ใช่ภาษาที่เรา "ติดอยู่กับ" มันเป็นภาษาที่อาจเป็นแรงบันดาลใจให้เกิดการวิวัฒนาการอย่างมากในภาษายอดนิยมโดยทั่วไป และสำหรับสิ่งนั้นคุณสามารถขอบคุณเบรนแดนไอชและผู้ร่วมสมัยคนใดก็ตามที่ช่วยนำความคิดนี้เข้ามาในหัวของเขาเพราะชื่นชอบ Scheme ในฐานะที่เป็นแรงบันดาลใจในการออกแบบสำหรับปัญหามากกว่าที่เขาชอบจาวา