Flash

train_flash
Traffic Lighting - `x-horizon

วันนี้ได้อ่านข่าวจาก Wired มาครับ:

Flash Player 10: Dazzling Effects, Better Performance, Runs on Linux | Compiler from Wired.com

จากที่เคยเขียน App ใช้งานจริงๆ มาบ้างแล้วบน Flash รู้สึกว่ามันเป็น Platform ที่ห่วยมากเลยล่ะครับ จริงๆ นะ โดยเฉพาะก่อนที่ Adobe จะซื้อ Macromedia ไปนี่ Flash เทียบกับ Java/.NET แล้วคนละเรื่องเลยครับ

เหตุผลที่คิดว่าห่วยก็เพราะว่า

  1. มันช้ามาก ช้ากว่า Java หลายขุม มันช้ามากๆ จริงๆ ครับ
  2. ไม่มี IDE ดีๆ ให้ใช้ ตัวโปรแกรม Flash เองมีหน้าจอสำหรับ Debug เป็น Tool Window ซึ่งใช้ยากมาก

แต่ว่าตั้ง Version 9.0 ที่ออกมานี่ก็เร็วขึ้นมากแล้วครับ แต่ว่าก็ยังใช้งานได้ไม่ค่อยดีอยู่ดี ส่วนข้อ 2 นั้นหลังจาก Adobe ซื้อไปก็มี IDE ออกมาให้ใช้กันครับ ซึ่งก็คือ Flex Builder นั่นเอง แม้ว่าเป้าหมายหลักจะออกมาให้เอาไว้เขียน Flex/AIR Platform (อย่างเช่นที่ twirl ใช้) แต่ว่าตัว IDE ก็ใช้เขียน ActionScript ทั่วๆ ไปได้ค่อนข้างดีครับ มีพวก Code hints ดีๆ debugger ดีๆ ให้ใช้ ค่อยยังชั่วหน่อย แต่มันก็ยังช้าอยู่ดีฮะ

อีกเหตุผลหนึ่งก็คือ ถ้าคุณเริ่มเขียนโปรแกรมมาก่อนเริ่มออกแบบ Flash คุณจะรู้สึกแปลกมากๆ เลยครับ เพราะว่า

  1. Flash แต่ก่อนเป็น Untyped language อารมณ์ Javascript คือตัวแปรนั้นไม่มี Type ฮะ จะเอาไปทำอะไรก็ไม่มีการตรวจสอบจะเพิ่ม Property ใส่ แปลง Object เก่าให้เป็นแบบใหม่ ก็ไม่มีใครสนใจ และถึงแม้คุณจะสนใจก็ไม่มีใครบอก ต้องนั่งไล่ Debug เอาอย่างเดียวถึงจะรู้
  2. Error ส่วนใหญ่ใน Flash จะต้องไม่ทำให้เครื่องค้าง ซึ่งก็ดี แต่ว่าเวลามี Error อะไรซ่อนอยู่ บางทีมันก็ไม่บอกให้คุณรู้เลยเหมือนกัน
  3. Platform ความสามารถต่ำมากๆ ครับ แม้แต่ทางด้าน Graphic เองก็ยังถือว่าต่ำ คุณลองมาเขียน WPF ตอนนี้ดูสิฮะ ผมว่าแม้แต่ Flex ตอนนี้ก็ยังอีกไกล สังเกตุว่าเกมส์ที่เขียนบน Flash จะมีลักษณะพิเศษคือมักจะเป็น Vector ง่ายๆ มาประกอบกัน ไม่ค่อยมี Effect หรูหราเท่าไหร่ เพราะ Platform ไม่รองรับแบบ Native จะเขียนเองก็กิน CPU cycle มากไปตัว Flash Runtime มันไม่ค่อยมีประสิทธิภาพ

อย่างหนึ่งที่ผมชอบเกี่ยวกับ WPF ก็คือชิ้นส่วนโดยมาก มันค่อนข้างจะ Just Works ฮะ แต่ถ้าคุณไปหาชิ้นส่วนที่ทำหน้าที่คล้ายๆ กันใน Flash คุณจะพบว่ามันจะมีข้อยกเว้นเยอะมาก ถ้านึกไม่ออกลองนึกถึงตอนเรียนตารางธาตุในวิชาเคมีดูฮะ หมู่นี้ส่วนใหญ่เป็นอย่างนี้ แต่มีข้อยกเว้น หมู่นั้นก็ส่วนใหญ่จะคล้ายกัน แต่ก็มีข้อยกเว้น ยกวงยกเว้นอะไรไม่รู้เต็มไปหมด

ประเด็นที่จะพูดก็คือว่า Flash Player 10 เริ่มโผล่มาเห็นนอก Adobe Labs แล้วฮะ เวอร์ชั่นนี้น่าสนใจมาก เพราะว่า Flash จะได้รับการแก้ไขเรื่องประสิทธิภาพสุดห่วยสักที

ผมว่ามันเป็น Ethics อย่างหนึ่งของการเป็นบริษัท Software นะครับ ในเมื่อ Platform ของคุณแพร่หลายขนาดนี้แล้ว ก็ควรจะรับผิดชอบทำให้มันพัฒนาง่ายๆ ใช้งานง่ายๆ ประสิทธิภาพดีๆ ปลอดภัย แล้วก็ติดตั้งง่ายๆ หน่อย (สองข้อหลังนี่ผ่าน แต่สามข้อแรกยังไม่ผ่าน)

ลองนึกดูว่า ถ้า Microsoft ไม่เคยปล่อย Security Update เลยจะเป็นไง ถ้าทุกคนต้องเปลี่ยนไปใช้ Linux ผมว่าวันนั้นผมคงจะเลิกไปเล่นดนตรีตาม Pub ท่าจะมีความสุขกว่า

ถ้าไม่มี C# 3.0 ตอนนี้ผมว่าภาษาที่เจ๋งรองลงมาก็คงจะเป็น ActionScript 3.0 ที่ใช้เขียน Flash เนี่ยแหล่ะครับ (Ruby/Python ไม่นับ เพราะผมมันเป็นพวก Curly(brace) {lovers;} ฮ่าฮ่า)

พวก Ruby/Python นี่ก็ชอบเหมือนกัน แต่ไม่ค่อยสนใจฮะ ให้เขียน ภาษาแนว Keywords-based ผมเริ่มเขียนโปรแกรมมาด้วย VB ผมขอเขียน VB ต่อไปดีกว่า รู้นอกรู้ในจนจะหมดเปลือกแล้ว แถมมี Microsoft หนุนหลัง ชีวิตสบายกว่าหลายขุม

Flash Player 10 ออกเมื่อไหร่ จะทำ chakrit.net เวอร์ชั่น 3 มิติ ให้ดู อิอิ (เอาเวลาจากไหนมาทำหว่า)

There are no comments on this post

Leave a Reply