Special Report

ข่าวนี้สามสี่วันแล้วแต่ผมเพิ่งมีเวลาอ่าน ต้องเกริ่นยาวสักเล็กน้อย

เชื่อว่าทุกคนคงรู้จัก 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 และเปรียบเสมือนประธานกลายๆ ของทั้งสองทีม

  1. หันมาทำ ECMAScript 3.1 โดยตั้งเป้าว่าเพิ่ม 2 ฟีเจอร์และออกสเปกให้ได้ภายในต้นปีหน้า
  2. หลังจาก ECMAScript 3.1 เสร็จ จะหันมาพัฒนาสเปกรุ่นถัดไป โดยไม่เปลี่ยนเยอะเท่า ECMAScript 4.0 ฉบับร่างในปัจจุบัน เรียกมันว่า ECMAScript Harmony
  3. ฟีเจอร์บางอย่างใน ECMAScript 4.0 ที่ไม่เหมาะกับเว็บ จะถูกทิ้ง
  4. ฟีเจอร์บางอย่างใน ECMAScript 4.0 ที่น่าจะเอามาใช้ได้จะถูกพิจารณาใหม่ โดยอิงจากฐานของ ECMAScript 3.0 และ 3.1 เป็นสำคัญ

สรุปว่าในแวดวงของ 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

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

greendog Tue, 19/08/2008 - 08:56

Actionscript 3.0 เป็นการรวมเทคนิคที่รู้จักกันในชื่อ Object-Oriented Programming (OOP) เข้ากับ ภาษา Actionscript 2.0 เดิม ซึ่งโครงสร้างเดิมเป็น script-based ส่วนใหญ่ครับ ไม่มีการใช้ class หรือ interface อย่างจริงจัง

ทาง Adobe ต้องการให้ Actionscript 3.0 ไม่จำกัดอยู่ในวงของ designer ที่ใช้ timeline-based (ตระกูล Flash-IDE จำพวก Flash CS3 เป็นต้น) สร้าง animation อีกต่อไป เลยทำการพัฒนามาเป็นเวอร์ชั่นปัจจุบัน เพื่อให้รับกับสภาพแวดล้อมของทาง developer ด้วย ซึ่งทำให้ผู้พัฒนาเดิม (ส่วนใหญ่เป็น designer) เกิดความงงใน structure ใหม่อย่างที่รู้สึกกัน แต่ศึกษาได้ง่ายครับ ไม่ยากจนเกินไป ซึ่งเราจะใช้ประโยชน์จาก OOP นี้ได้เยอะมาก

ซึ่งโดยส่วนตัวแล้วผมชอบมากครับ เพราะคุม timeline-based ไม่เป็น แต่ชอบ OOP มาก เลยทำให้ผมเขียน Flash ด้วย Actionscript 3.0 ง่ายขึ้นมากเลยครับ รวมทั้ง Adobe Flex ด้วย

my Flex blog: http://webflex.wordpress.com

IPorsut Tue, 19/08/2008 - 09:41

โดยเฉพาะส่วนของภาษาและโครงสร้างภาษาไม่ชอบเท่าไหร่ครับ
แต่ผลลัพธ์ที่มันได้ ถ้ามันมีทางอื่นทำได้แล้วเป็นภาษาที่ดีกว่าก็น่าเปลี่ยนครับ
แต่ตอนนี้ยังไม่มีดังนั้นก็จะใช้ flex3/as3 ต่อไป
อ่ออีกเรื่อง ถ้าแค่ as3 อย่างเดียวคงไม่น่าใช้แต่ถ้า mxml+as3 แบบนี้ก็
ใช้ได้เลย

IPorsut Tue, 19/08/2008 - 09:47

ส่วนมาตรฐานของ javascript นั้นถ้าได้อันใหม่ก็ดี แต่ไม่รู้ว่า browser แต่ละยี่ห้อจะใช้มาตรฐานเดียวกันได้มากแค่ไหน
และตอนนี้ ส่วนใหญ่ก็ไม่ค่อยมีใครนั่งเขียนเองแล้ว ไปใช้ javascript library กันหมดแล้ว

nat3 Tue, 19/08/2008 - 11:07

เรื่องเดียวของ as3 ที่ทำให้ปวดหัวที่สุดตอนนี้คือ library กับ function ต่างๆที่มันมีมาให้อยู่แล้วแต่ไม่เขียนอธิบายให้ละเอียดในคู่มืออ่ะ แถมบางอย่างมันก็ใช้ชื่อซะน่าปวดหัวอย่าง subStr กับ subString อันนึงใส่เป็นจุดเริ่มต้นกับความยาวที่จะเอากับอีกอันใส่จุดเริ่มต้นกับจุดสิ้นสุด ใช้ทีงงเลย ทำไมมันไม่เลือกซักอย่างฟะ คิดว่ายังมีอะไรแบบนี้อีกเยอะด้วย

kaze Wed, 20/08/2008 - 15:17

In reply to by mrkrich

เขียน PHP มาตั้งนานไม่เคยเห็น substring เลยครับ ใน manual ของ PHP ก็ไม่เคยเห็น ไปเจอที่ไหนมาอ่ะครับ ขอ link ไป manual หน้านั้นหน่อยสิครับ สงสัยจัง manual ของ function substr

lagus Tue, 19/08/2008 - 14:32

อีกเสียงหนึ่งที่ว่า AS3 เขียนยากขึ้นเยาะ ที่จริงพัฒนาเวอร์ชั่นใหม่ทั้งทีน่าจะให้ใช้ง่ายๆหน่อย

notz-dev :: RIA Develop & Design

JavaDevil Tue, 19/08/2008 - 18:49

In reply to by lagus

AS3 ในมุมมองสำหรับ programmer ที่มาจากพวก C,Java เหมือนจะดูใช้ง่ายกว่า AS2.
*จากประสบการตัวเอง คนอื่นเป็นเหมือนกันหรือเปล่า

IPorsut Tue, 19/08/2008 - 20:29

In reply to by JavaDevil

ใช่ครับผมว่าถ้าจากมุมนั้นง่ายกว่า ผมว่าง่ายกว่า javascript มาตรฐานปัจจุบันอีกด้วยซ้ำ
แต่สิ่งที่ต้องแลกมาก็คือต้อง build บ่อยๆ แก้นิดนึงก็ต้อง compile ใหม่ แบบนี้นะครับ
มันน่าเบื่อ

khajochi Tue, 19/08/2008 - 15:46

จะว่าไปในมุมบริษัทมันก็ยากที่จะออกแบบภาษาให้มันตรงตามมาตรฐานทั้งหมด .. ในมุมคนออกมาตรฐานมันก็คงยากที่จะออกมาตามใจทุกบริษัท

---
Khajochi Blog : It's not a Bug ... It's a Feature

goommt Tue, 19/08/2008 - 21:01

ต่อให้ปรับไปแนวไหนเดี๋ยว AS4 ออกมาใหม่ก็น่าจะปรับได้ดีขึ้นมั๊งครับ ดีไม่ดีอาจจะแจ่มเหมือนตอน MS ออก .NET ก็ได้ อิอิ

vittee Wed, 20/08/2008 - 11:51

โดยส่วนตัวผมว่า AS3 เขียนง่ายกว่านะครับ เพราะปกติจะเขียนเป็น OOP ซะมากอยู่แล้ว
ไม่เหมือนเขียน AS2 หรือ JavaScript ที่เหมือนใช้ class แบบหลอกๆ ไปกำหนดเอาที่ prototype แทน ผมว่างงมากกว่าอีกนะ

mrkrich Wed, 20/08/2008 - 12:38

โดยส่วนตัวแล้วยังไม่เคยลอง AS3 นะครับ แต่เท่าที่ดูจากแนวทางตั้งแต่ AS2 แล้วก็เห็นว่า ActionScript มีความใกล้เคียงกับภาษาที่เป็น OOP มากขึ้นเรื่อยๆ มีคนตั้งข้อสังเกตว่ามันเหมือนกับ Java สุดๆเลย เพราะมีตัว VM ด้วย (ได้ยินว่านั่นเป็นสาเหตุให้ Flash Player ที่เป็น 64 bits ออกมาช้าด้วย)

ในความเห็นส่วนตัวแล้ว ECMAScript มันเป็นภาษา Script ที่เป็นลูกผสมระหว่าง functional และ OOP แต่ใน AS3 น่าจะค่อนข้างไปทาง OOP เต็มรูปแบบ ทำให้ใช้งานยากขึ้น ผมเข้าใจเอาเองว่ามันทำให้มันไม่ Backward Compatible ก็เลยเป็นเหตุให้โดนตีตกด้วยส่วนนึง (สังเกตจากใน flash ถ้าใช้ AS1 หรือ AS2 จะใช้ไฟล์แบบเดียวกัน แต่ถ้าเป็น AS3 จะเป็นอีกแบบนึงแยกต่างหากเลย)

ปล. คุ้นๆว่า flash 8 จะเป็น ActionScript 2.0 นะครับ

bugdoang Wed, 20/08/2008 - 13:09

ถ้าเขียนด้วย AS3 จะทำให้ทำการทำงานทำได้เร็วขึ้นเป็นกอบเป็นกำ เพราะว่า ตัว Flash Player เวอร์ชั่นใหม่ ๆ ทำได้ดีทีเดียว ผมก็ชอนแนวการเขียน แบบ AS3 นะครับ หลังจากที่เขียนตั้งแต่ AS1 มาจนถึง AS3 ชอบมากมาย ยอมรับว่า เค้าพัฒนาขึ้นเรื่อย ๆ จริง ๆ เชียร์กันต่อไป

heart Wed, 20/08/2008 - 16:30

คนที่ว่า AS3 ยากแปลว่าคุณไม่ใช่นักพัฒนา Flash ActionScript จริงๆจังๆครับ
เพราะว่า คนที่พัฒนา ActionScript แบบผมเนี่ยะ มักจะชอบ AS3.0 นะครับ

ข้อดีมันมีเยอะมาก ข้อเสียคือ มันเปลี่ยนโครงสร้างใหม่ เลยทำให้คนใหม่ๆที่จะมาจับมัน ค่อนข้าง งง กับมันหน่อย
แต่ว่า มันมีพลังสูงนะครับ รูปแบบภาษาเองก็ออกจะ OOP เต้มที่ซะขนาดนั้น แจ่มจะตาย

ข้อเสียที่น่ารำคาญอีกอย่างก็คือ compiler มันช้าไปนะครับ
เจอ error แต่ละทีนี่เหนื่อย กว่าจะ build เสร็จแต่ละที

AarCute Sat, 30/08/2008 - 08:15

อื้มทำ Debug ก่อนจิครับ เร็วขึ้นเป็นกอง

ตอนนี้ผมเห็นว่าในเชิงprogramming silverlight 2.0 จะดีกว่า actionscript 3.0 เยอะนะครับ

แต่คนที่เข้าใจ Timeline-base จะใช้ flash ได้เร็วกว่ามากในด้าน graphic หรือการควบคุม object ต่างๆ

ความเห็นส่วนตัวนะครับ