Special Report

เมื่อสัปดาห์ที่แล้ว ซันได้ออก JavaFX 1.0 สำหรับวินโดวส์และแมค ซึ่งถือเป็นก้าวที่สำคัญอีกก้าวของซันในการไล่กวดอโดบีกับไมโครซอฟท์ในตลาด Rich Internet Application

Blognone จะพาไปดูว่า JavaFX ทำงานอย่างไร สำหรับตอนแรกจะมองดูจากสายตาของผู้ใช้ทั่วไปครับ

JavaFX คืออะไร

คำอธิบายแบบเข้าใจง่าย

JavaFX คือ Flash ของซัน

(แบบเดียวกับ Silverlight คือ Microsoft Flash)

คำอธิบายแบบเข้าใจง่ายที่สุด

JavaFX คือ Java Applet กลับชาติมาเกิดใหม่

ตลาด RIA นั้นต้องยกให้ Java Applet ของซันเป็นผู้บุกเบิกเจ้าแรกๆ แต่อาจเป็นได้ว่าแนวคิดของซันนั้นล้ำหน้ายุคสมัยเกินไป หรือไม่ก็ Java Applet ทำงานได้ช้าเกินไป เขียนยากเกินไป ทำให้ในภายหลังตลาด RIA นั้นถูกตีตลาดด้วย Flash Player จากค่าย Adobe/Macromedia จนทุกวันนี้แทบไม่มีใครพูดถึง Java Applet อีกแล้ว

สาเหตุที่โลกจำเป็นต้องมี RIA ก็เป็นเพราะว่า HTML และเว็บเบราว์เซอร์นั้นมีความสามารถไม่พอกับความต้องการของแอพพลิเคชันบางอย่าง (เช่น วิดีโอ, แอนิเมชัน หรือ กราฟฟิกแบบเวกเตอร์) ถึงแม้ว่า HTML5 จะแก้ปัญหาเหล่านี้ไปบ้างบางจุด แต่ก็ยังไม่ทันต่อความต้องการของทั้งผู้ใช้และผู้พัฒนาซอฟต์แวร์ (HTML4 ออกเมื่อปี 2000 ส่วน HTML5 ยังอีกนาน)

จุดนี้จึงเป็นช่องว่างให้กับบริษัทไอทียักษ์ใหญ่ เข้ามาสร้างเทคโนโลยีที่แสดงผลเนื้อหาแบบอินเทอร์แอคทีฟออนไลน์ โลกของ RIA นั้นต่างจากเว็บตรงที่ไม่มีหน่วยงานที่คอยคุมมาตรฐานอย่าง W3C คุม HTML ดังนั้นถ้าใครชนะในตลาดนี้ ก็แปลว่าตัวเองจะมีอิทธิพลขนาดกำหนดทิศทางของโลกอินเทอร์เน็ตได้ส่วนหนึ่งเลยทีเดียว

ผู้เล่นหลักในตลาดนี้มี 3 ราย ได้แก่ Flash/Flex จากอโดบี, Silverlight จากไมโครซอฟท์ และล่าสุดคือ JavaFX จากซัน

มีอะไรใหม่ใน JavaFX

อย่างที่ผมบอกไปแล้วว่า JavaFX คือ Java Applet กลับชาติมาเกิด แต่ว่ามาเกิดทั้งทีจะให้มีความสามารถเท่าเดิมก็คงจะสู้เขาได้ยาก ดังนั้นฟีเจอร์ใหม่ (สำหรับผู้ใช้) มีดังนี้

  • ระบบ GUI toolkit แบบใหม่ มาใช้แทน Swing (แต่ก็ยังใช้ Swing ได้ถ้าต้องการ)
  • สนับสนุนกราฟฟิกแบบเวกเตอร์ (SVG) และแอนิเมชัน (ยังไม่มี 3D ในเวอร์ชัน 1.0 แต่มีเอฟเฟคต์แบบเหมือน 3D ให้เรียกใช้) เร่งความเร็วด้วย GPU ได้
  • เล่นวิดีโอด้วย codec VP6 จากบริษัท On2 (เทียบเท่ากับ Flash แต่ใช้ฟอร์แมต FLM ซึ่งเป็นซับเซ็ตของ FLV) และ H.264 บนบางแพลตฟอร์ม
  • สนับสนุน XML, JSON
  • ของเด็ดน่าจะเป็นการลากแอพเพล็ต JavaFX ออกมาจากเว็บเบราว์เซอร์ แล้วรันต่อบนเดสก์ท็อปได้ทันที (ในอนาคตเราคงเห็นอะไรคล้ายๆ กันนี้จากฝั่ง Flash/AIR)

ฟังดูไม่ค่อยมีอะไรน่าตื่นเต้นนัก แต่มันก็ช่วยทำให้ซันมีเทคโนโลยีด้าน RIA ที่เทียบเท่าคู่แข่ง สำหรับฟีเจอร์ของนักพัฒนา ผมขอยกยอดไปไว้ตอนหน้า

JavaFX ทำงานอย่างไร

คนที่เคยใช้ Flash และ Silverlight คงทราบดีว่าต้องดาวน์โหลดตัวรันไทม์ (หรือบางยี่ห้อจะเรียก Player) มาติดตั้งในเครื่องเสียก่อน จึงจะสามารถเล่นเนื้อหาที่เป็น Flash หรือ Silverlight ได้

สำหรับ JavaFX นั้นจะต่างออกไปเล็กน้อย เนื่องจากว่ามันเป็นจาวา JavaFX จะรันด้วย Java Runtime Environment (JRE) ที่ติดตั้งอยู่บนคอมพิวเตอร์อยู่แล้ว (ถ้ามีนะ)

แต่ว่า JavaFX นั้นมีฟีเจอร์ใหม่ๆ บางอันที่ JRE รุ่นปกติไม่มี ดังนั้นในครั้งแรกที่เรารันแอพเพล็ต JavaFX ตัว JRE จะดาวน์โหลดส่วนขยายที่จำเป็นในการรัน JavaFX โดยอัตโนมัติ ในทางทฤษฎี มันก็คือการดาวน์โหลดรันไทม์ของ JavaFX แบบเดียวกับ Silverlight หรือ Flash นั่นเอง แต่ในทางปฏิบัติ ผู้ใช้จะไม่ต้องผ่านกระบวนการดาวน์โหลด ติดตั้ง รีสตาร์ทเว็บเบราว์เซอร์ ซึ่งลดความยุ่งยากลงไปได้พอสมควร

ซันหวังว่า การที่คอมพิวเตอร์จำนวนมากมี JRE ติดตั้งอยู่แล้ว จะช่วยให้ JavaFX นั้นเป็นที่นิยมได้ง่ายขึ้น มีคอมพิวเตอร์ที่สามารถรัน JavaFX จำนวนมากได้ในระยะเวลาอันรวดเร็ว เพราะว่าสงคราม RIA นี้เป็นสงครามชิงพื้นที่ ใครเผยแพร่รันไทม์ได้มากกว่า คนนั้นมีโอกาสชนะสูง (ปัจจุบันอโดบีอ้างว่าคอมพิวเตอร์ 98% นั้นติดตั้ง Flash Player)

ทดลองเล่น JavaFX กัน

เมื่อรู้จักแนวคิดคร่าวๆ ของ JavaFX ไปแล้ว ตอนนี้ได้เวลาทดสอบครับ

ณ ขณะที่ผมเขียนนี้ JavaFX 1.0 มีเฉพาะเวอร์ชันวินโดวส์และแมคเท่านั้น ยังไม่มีเวอร์ชันสำหรับลินุกซ์และโซลาริส ในคำประกาศของซัน (A Word on Linux and Solaris Support) บอกว่ามีเวอร์ชันทดสอบเป็นการภายในแล้ว แต่ว่ายังไม่สมบูรณ์ดี และน่าจะตามมาในเวอร์ชัน 1.x ซึ่งซันยังไม่ระบุว่าเมื่อไร

สำหรับวินโดวส์และแมค มีความต้องการขั้นต่ำดังนี้

  • วินโดวส์ XP ขึ้นไป มี JRE 1.6u10 ขึ้นไป ติดตั้งอยู่
  • แมคต้องเป็น 10.4 ขึ้นไป ใช้ JRE 1.5 ที่มาพร้อมกับ Mac OS X ได้เลย

เนื่องจากว่าผมไม่มีวินโดวส์ การทดสอบนี้จะทำบน Mac OS X 10.5 ด้วย Firefox 3 นะครับ

ขั้นตอนก็ง่ายๆ ไม่มีอะไรมาก เปิดเบราว์เซอร์แล้วเข้าไปยังหน้า Samples ของ JavaFX เลือกตัวอย่างมาสักอันหนึ่ง ตามต้องการ รอเว็บเบราว์เซอร์ค้างสักพักหนึ่งตามปกติ พอเบราว์เซอร์เริ่มโหลดจาวาแอพเพล็ตขึ้นมา ก็จะมีหน้าต่างขึ้นมาถามว่าอนุญาตให้รันได้หรือไม่

ในการทดสอบของผมมีปัญหาว่าหลังจากตอบ Trust แล้ว แอพเพล็ตไม่ถูกแสดง ผมเลยต้องแก้เกมโดยการเรียกผ่าน Java Web Start แทนเว็บเบราว์เซอร์ปกติ (สอบถามคุณ cblue แล้วพบปัญหาแบบเดียวกัน) ก็จะเป็นการดาวน์โหลดตัวแอพเพล็ตมารันที่เครื่องแทน

โหลดตัวแอพเพล็ตเสร็จ ก็จะถามเช่นเดิมว่าอนุญาตให้รันแอพเพล็ตนี้ไหม

เราจะเจอคำถามลักษณะเดียวกันอีกรอบ สงสัย certificate คนละตัว

เมื่ออนุญาตให้รันแล้ว ตัว JRE จะตรวจพบโดยอัตโนมัติว่าแอพเพล็ตนี้ต้องการตัวอัพเดตเป็น JavaFX ดังนั้นจะถามว่าเราต้องการอัพเดต JRE ให้มี JavaFX หรือไม่

เมื่อตอบตกลงไป JRE จะหายไปสักพักจนคิดว่าตายไปแล้ว แต่ถ้าดูสถานะใน System Monitor จะพบว่ามันกำลังดาวน์โหลดตัว JavaFX อยู่ ตรงนี้เป็นจุดอ่อนที่ซันควรปรับปรุงให้แสดงแถบสถานะการโหลดด้วย คาดว่าคนเข้าใจผิดแบบผมคงมีเยอะ

เมื่อดาวน์โหลดและติดตั้งเสร็จเรียบร้อย แอพเพล็ต JavaFX ก็จะโผล่มาให้เห็นแล้ว

ผมเลือกแอพเพล็ตตัวแรกคือ Effects Playground ซึ่งสามารถเอารูปภาพในเครื่องของเรามาปรับแต่งเอฟเฟคต์ได้

อีกจุดที่น่าปรับปรุงคือธีมของหน้าต่าง Open File ยังดูโบราณมาก แต่คาดว่าอันนี้เป็นเพราะ JRE บนแมคของผมเป็นตัวเก่า 1.5 ด้วย

แอพเพล็ตตัวอื่นๆ ที่น่าสนใจก็อย่างเช่น MP3 Player

และ VideoCube ซึ่งเอาวิดีโอมาเล่นบนลูกบาศก์ที่หมุนไปมาได้

โดยรวมๆ ก็นับว่าใช้งานได้โอเค ถือเป็นการปรับปรุงให้ Java Applet ทันสมัยให้เท่ากับคู่แข่งครับ

สำหรับตอนหน้า เราจะมาดูเรื่อง JavaFX จากสายตาของนักพัฒนาครับ

ลิงก์อ่านประกอบ

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

9AuM Mon, 08/12/2008 - 21:57

Windows Vista + FireFox 3
โอยเหนื่อยกว่าจะรันได้ -__- ลำบากจริงๆ

ของ่ายๆกว่าดีได้ไหมครับพี่ซัน

chaow Mon, 08/12/2008 - 22:00

ลองตัวอย่างนึงละ โหลดนานจริงๆ ขณะมาคอมเมนต์ ยังโหลดไม่เสร็จเลย

dafty Mon, 08/12/2008 - 23:01

ดูๆ แล้วน่าจะทำตัว install ให้เล็กกว่านี้ ... แถมเครื่องผมต้องโหลด jdk6updates10 อีกรอบทั้งๆ ที่มีอยู่แล้วอีกตะหาก - -''

kohsija Mon, 08/12/2008 - 23:14

โหลดครั้งแรกช้าจริงๆ ด้วยครับ
แต่รันได้แล้วก็ทำงานราบรื่นดี
อยากรู้ว่าจะเอาไปทำอะไรได้อีก

[Kohsija](http://kohsija.exteen.com "จุ๊กกรู...")

ipats Tue, 09/12/2008 - 00:05

เครื่องผมเป็น Windows XP SP3 + Firefox 3.0.4 + JRE 1.6u7 ก็รันได้ครับ แต่.. กว่าจะรันได้ ไอ้กลมๆ ถ้วยกาแฟมันหมุนไปชาติเศษได้ เหอๆ

---------- iPAtS

KnightBaron Tue, 09/12/2008 - 00:05

ลองใช้กับ Vista / Chrome ระหว่างโหลดนี่นึกว่า Browser จะ Crash ไปแล้ว แต่รอไม่นานก็รันได้ลื่นไหล น่าประทับใจครับ

Yume Nikki

Sikachu Tue, 09/12/2008 - 03:20

Leopard รันได้ไม่มีปัญหาค้าฟ
Safari 3 + OS X 10.5.5 กด Trust -> Accept แล้วก็ดูได้เลย :)

บล็อกของผม: http://sikachu.com

demon69gt Tue, 09/12/2008 - 08:25

แค่ได้ยินชื่อ Java ก็รู้ซึ้งถึงความอืดพอแล้ว มันจะไหวไหมเนี่ย
ที่มันดับไปเพราะความช้าและการเขียนมันซับซ้อนเกินไปนี่แหละ
เจอโปรแกรมประเภทลากวางอย่างแฟลชเข้าไป Java เลยดับ

แค่โปรแกรม Lexitron dict กว่าจะเปิดได้ยังอืดเลย
รอลุ้นอยู่ว่ามันจะเปิดได้หรือไม่
และรำคาญเวลามันเช็ค auto update ปิดไปแล้วยังมีแอบเช็ค

DrRider Tue, 09/12/2008 - 08:31

ลองเล่นดูก็ไม่ช้านา หรือว่าเน็ตที่ที่ทำงานมันเร็วหว่า จริงๆ เหมือนมันต้องดาวน์โหลดตัวโปรแกรมให้เสร็จก่อนถึงเริ่มทำงาน (ก็ไม่ต่างจาก Flash นี่)

พอโปรแกรมเริ่มงานแล้ว มันก็ทำงานลื่นดีนะ

We need to learn to forgive but not forget...

audy Tue, 09/12/2008 - 08:52

In reply to by DrRider

ถ้ามีสถานะบอกว่ากำลังโหลด อาจจะลด "ความรู้สึก" ว่าช้าลงไปบ้างครับ
แต่นี่ เงียบฉี่ (ผมใช้เน็ต ๔ เมกนะ)

mnk2551 Tue, 09/12/2008 - 10:10

JAVA มีอะไรดีๆ เยอะนะครับ...
...ไปหลงอยู่ใน M$ Silverlight ตั้งนาน.

mk Tue, 09/12/2008 - 11:13

In reply to by dafty

ตอนนี้ตัวรันไทม์ของ JavaFX ยังเป็น proprietary ครับ (มีเฉพาะตัวคอมไพเลอร์ javafxc ที่โอเพนซอร์ส) เรื่องสัญญาอนุญาต ผมวางแผนจะเขียนถึงในตอนที่ 3 ครับ

mk Tue, 09/12/2008 - 18:49

In reply to by javaboom

ก็ไม่มีอะไรมากครับ ผมพยายามจะสำรวจแนวโน้มของตลาด RIA ว่ามันจะออกมาหน้าไหน ทำตัวเป็นผู้พยากรณ์ เพื่อเราจะแทงกันได้ถูกข้าง ตอนนี้ผู้เล่นรายใหญ่ออกมากันครบแล้ว ก็ได้เวลาอันสมควร

ก่อนหน้านี้ก็เคยสำรวจตลาด OS ของมือถือไปบ้างแล้ว

khajochi Tue, 09/12/2008 - 17:28

ฟังจากคนของซันมาคุยที่บริษัทหลายรอบแล้วเหมือนกันครับ โดยส่วนตัวมันก็น่าใช้ในฐานลูกค้าเดิมของ java โดยเฉพาะ applet หลายคนพยายามเอาไปเปรียบเทียบกับ flash ซึ่งทุกครั้งที่ถามไปแบบนั้นเค้าก็เน้นเลยว่ามันคนละตลาดกัน

ซันเองก็ใช้เวลาพัฒนาตัว JavaFX นานมาก แต่ช่วงหลังก็เร่งออก resource ต่างๆให้นักพัฒนาเยอะขึ้นเรื่อยๆ ส่วนนึงอาจจะเพราะตลาด j2ee กับ j2me เริ่มตันแล้ว การเอา applet กลับมาเกิดใหม่ก็เป็นเรื่องที่น่าสนใจเหมือนกัน

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

jirayu Tue, 09/12/2008 - 21:37

ที่ลองเล่นตอนเช้านี้มันจะอืดตอนโหลด Applet ขึ้นมาครับ ตอนใช้งานนั้นรู้สึกว่ามันเร็วกว่า Flash เสียอีก

ผมว่าถ้าปัญหาเรื่องที่มันโหลดช้านี่ลดลงไปนี่น่าจะดีกว่านี้นะครับ

MyBlog !!!

polaromonas Tue, 09/12/2008 - 23:44

Vista+Opera 9.62 และ Opera 10 alpha รันได้ทั้งคู่ แต่รู้สึกว่า Opera 10 alpha จะติดขัดกว่า แต่โหลดเข้า Applet เร็วกว่านิดหน่อยม้ัง