ข่าวนี้สามสี่วันแล้วแต่ผมเพิ่งมีเวลาอ่าน ต้องเกริ่นยาวสักเล็กน้อย
เชื่อว่าทุกคนคงรู้จัก JavaScript แต่บางคนอาจไม่รู้ว่าอีกชื่อหนึ่งของมันคือ ECMAScript (เป็นชื่ออย่างเป็นทางการตามองค์กรที่ดูแลมาตรฐาน ECMA ซึ่งเดิมย่อมาจาก European Computer Manufacturers Association) ECMAScript มีภาษาย่อยในตระกูลมากมาย (ใช้คำว่า dialect) นอกจาก JavaScript แล้ว ที่พอคุ้นหูคือ JScript, JScript .NET และ ActionScript เป็นต้น
ทีนี้วิธีนับเวอร์ชันจะซับซ้อนเล็กน้อย ถ้าอยากได้ข้อมูลละเอียดดูในลิงก์ของ Wikipedia ข้างต้น แบบสรุปๆ เอาเป็นว่า ECMAScript เวอร์ชันล่าสุดคือ 3.0 ออกเมื่อปี 1999 ซึ่งตรงกับ JavaScript 1.5 (ปัจจุบัน Firefox 3.0 สนับสนุน JavaScript 1.8 ซึ่งมีแต่เบราว์เซอร์ในตระกูล Mozilla เท่านั้นที่สนับสนุน)
จากย่อหน้าข้างบนจะเห็นว่า ECMAScript เวอร์ชันล่าสุดนั้นออกมานานแล้ว การพัฒนา ECMAScript เวอร์ชันถัดไปจึงแบ่งงานเป็นสองสาย สายแรกคือ ECMAScript 3.1 ซึ่งจะเป็นการเปลี่ยนแปลงไม่มากนัก นำโดยไมโครซอฟท์และยาฮู อีกอันคือ ECMAScript 4.0 ที่เปลี่ยนตัวภาษาไปมาก นำโดย Adobe
ActionScript ซึ่งใช้ใน Flash และผลิตภัณฑ์อีกหลายๆ ตัวของ Adobe นั้นมีรากฐานมาจาก ECMAScript โดย ActionScript 2.0 ตรงกับมาตรฐาน ECMAScript 3.0 ทีนี้ข่าวนี้มันมีประเด็นมาจากว่า Adobe พัฒนาความสามารถให้ ActioScript เพิ่มในเวอร์ชัน 3.0 ซึ่งผลก็คือ ActionScript 3.0 มีความสามารถเพิ่มขึ้นมาก (แต่ก็ซับซ้อนขึ้นด้วยเช่นกัน) และหลังจากนั้น Adobe ได้เสนอว่า เอาฟีเจอร์ใน ActionScript 3.0 มาทำเป็น ECMAScript 4.0 สิ
สายการพัฒนาของ ECMAScript เลยแบ่งเป็นสองฝ่ายชัดเจน ปัญหาก็คือฟีเจอร์ใน ECMAScript 3.1 ขัดกับ ECMAScript 4.0 เลยทำให้ทั้งสองอันออกเป็นมาตรฐานฉบับจริงไม่ได้เสียที ผลเสียตกอยู่ที่ผู้บริโภคซึ่งในโลกของ AJAX ปัจจุบันนี้รัน JavaScript กันหนักมาก แต่ในการประชุมคณะทำงานของ ECMA ที่นอร์เวย์เมื่อเดือนกรกฎาคม ผลก็ออกมาตามนี้ครับ (เวอร์ชันเต็มดูในอีเมลของ Brendan Eich ผู้ให้กำเนิด JavaScript และเปรียบเสมือนประธานกลายๆ ของทั้งสองทีม
สรุปว่าในแวดวงของ ECMAScript ที่เน้นการออกมาตรฐาน เรื่องนี้จบไป ทีมงานได้ข้อยุติก็รีบกลับบ้านไปทำ ECMAScript 3.1 มาให้พวกเราได้ใช้กัน (นอกจากอีเมลสุดยาวของ Brendan Eich แล้ว อีกบล็อกที่เขียนเรื่องนี้แบบสั้นๆ ได้ใจความคือ John Resig - ECMAScript Harmony)
แต่ในแง่ธุรกิจมันไม่จบแค่นั้น นี่หมายความว่า ActionScript 3.0 ที่ Adobe ลงทุนลงแรงไปเยอะ และหวังว่าจะให้มันเป็นมาตรฐาน กลับไม่เป็นไปดังฝัน
ActionScript 3.0 มีใน Flash 8 ขึ้นไป, Flex, โปรแกรมใหม่ๆ ของ Adobe อย่างเช่น Buzzword หรือ Photoshop Express รวมไปถึงเอนจิน Tamarin (จริงๆ มันคือ Virtual Machine) ที่ Adobe เปิดซอร์สขึ้นมา โดยหวังว่ามันจะเป็นเอนจินมาตรฐานสำหรับภาษาสคริปต์ยุคหน้า (ดูข่าวเก่า Adobe บริจาคโค้ด ActionScript ให้ Mozilla) รายละเอียดว่า Adobe เสียอะไร อ่านได้ในบล็อก Ru Roh! Adobe Screwed By EcmaScript Standards Agreement
Gran Skinner ผู้พัฒนาโปรแกรมด้วย ActionScript 3.0 เขียนบล็อกแสดงความเห็นว่า เป็นฝีมือไมโครซอฟท์ คู่แข่งสำคัญในโลก RIA หรือเปล่า? เพราะถ้า ECMAScript 4.0 ออกเป็นมาตรฐานได้สำเร็จ แปลว่าชะตาของเว็บอยู่ในกำมือของ Adobe และไมโครซอฟท์ต้องพัฒนาเอนจินขึ้นมาใหม่เพื่อแข่งกับ Tamarin ซึ่งไม่น่าจะทำได้ในเร็ววันนัก
คนของ Adobe ได้ออกมาสยบความตื่นตระหนกในประเด็นนี้ ผ่านบล็อกของบริษัท สรุปว่า Adobe เคารพและยินดีร่วมมือใน ECMAScript 3.1 แต่การพัฒนา ActionScript ของตัวเองก็จะดำเนินต่อไปไม่มีอะไรเปลี่ยน Adobe จะยังไม่ทิ้ง ActionScript นักพัฒนาที่ใช้เทคโนโลยีของ Adobe ไม่ต้องกลัว Mike Chambers พนักงานของ Adobe อีกคนหนึ่งก็ยืนยันผ่านบล็อกแบบเดียวกัน แถมยังมีบ่นเล็กน้อยว่าการรอมาตรฐาน ทำให้นวัตกรรมในวงการเว็บล่าช้า โดยยกกรณีของ HTML5 ขึ้นมาอ้าง
สาเหตุที่ทำให้ ECMAScript 4.0 ตกไปเป็นไปได้ 2 ส่วน อันแรกเป็นเรื่องการเมืองตามที่ Skinner บอก ส่วนอีกประเด็นคือเรื่องเทคนิค ผมไม่เคยเขียน ActionScript ทั้ง 2.0 และ 3.0 เลยให้ความเห็นทางเทคนิคไม่ได้ครับ เคยได้ยินมาว่าหลายคนไม่ชอบ ActionScript 3.0 อันนี้รอผู้เชี่ยวชาญมาตอบดีกว่า
ที่มา - Slashdot