Selecting the SIX
หลังจากที่ผ่านการคัดเลือกซอฟต์แวร์โอเพ่นซอร์สมากมายจนท้ายที่สุด ได้เครื่องมือที่เหมาะสมกับองค์กรมาจำนวนทั้งหมด 6 ตัวคือ Dojo, Google Web Toolkit, MicrosoftAtlas (ASP.NET AJAX), Open Rico and Prototype, Yahoo AJAX Library และ Zimbra ‘s Kabuki AJAX Toolkit. AJAX ทั้งหกตัวที่ได้เลือกมานั้นประกอบไปด้วยเครื่องมือมากมายรวมทั้งยูสเซอร์อินเทอร์เฟซ ซึ่งสิ่งเหล่านี้เองเป็นสิ่งที่ทำให้ถูกใจเหล่านักพัฒนาที่ต้องการเพิ่มลูกเล่นการทำงานให้กับเว็บของพวกเขา เช่น ต้องการเพิ่มตารางแสดงข้อมูลที่สามารถเลื่อน และเรียงลำดับตามคอลัมน์ได้ เป็นต้น ในขั้นตอนการทำงานสิ่งที่นักพัฒนาต้องทำเพียงแค่คัดลอกไลบรารี่ที่ต้องการลงไปก็สามารถนำไปใช้งานได้ทันที แต่ในความเรียบง่ายนั้นก็ได้แต่เพียงแค่ขั้นตอนการทำงานตามที่ framework ได้วางเอาไว้เท่านั้น หากคุณต้องการลูกเล่นที่แปลกและแตกต่างออกไป คุณยังคงต้องเข้าไปแก้ไขจัดการกับซอร์สโค้ดที่ดูยุ่งเหยิงและยุ่งยากด้วยเช่นเดิม
ตัวอย่างเช่น เราสามารถจัดการเพิ่มเติมความสามารถของเว็บเราได้อย่างยอดเยี่ยมด้วยเวลาไม่นาน คุณก็จะได้การทำงานที่มีประสิทธิภาพ แต่ถ้าการทำงานในบางขั้นตอน เมื่อค้นหาแล้วให้แสดงตัวหนาบนสิ่งที่ต้องการด้วยเครื่องมือ AJAX นั้นๆ อาจจะไม่สนับสนุนตรงจุดนี้จึงจำเป็นที่จะต้องแก้ไขบนซอร์สโค้ดโดยตรง ซึ่งบ่อยครั้งเราจะพบว่าคู่มือที่มีให้มานั้นไม่ได้มีประโยชน์ในการแก้ไขโปรแกรมเลย ดังนั้นเพื่อที่จะผ่านขั้นตอนนี้หมายความว่าทางทีมพัฒนาควรที่จะคิดถึงปัจจัยสิ่งแวดล้อมต่างๆ ก่อนที่จะพิจารณานำ AJAX ตัวใดตัวหนึ่งเพื่อนำไปใช้งาน เว้นเสียแต่ว่าคุณมีทีมงานที่ผ่านการทำงานมานาน และมีเวลาในการลงทุนใช้เครื่องมือต่างๆ ที่กล่าวมาแล้ว มิฉะนั้น แล้วเวลาในการลงทุนศึกษา กับค่าใช้จ่ายของโปรเจกต์อาจจะมากกว่าการตัดสินใจเลือกซื้อแพคเกจมาใช้งานก็เป็นไปได้
<p class="MsoNormal">Dojo (www.dojotoolkit.org)</p>
หากจะกล่าวถึงโปรเจกต์โอเพ่นซอร์ส AJAX ที่โด่งดังอยู่ในขณะนี้คงไม่พ้นจะเป็น Dojo ตัวนี้หละครับ Dojo ไม่ได้มีสิ่งที่ดีเด่นหรือมีความสามารถสูงกว่าตัวอื่นๆ มากนัก แต่ด้วยจุดเด่นคือสามารถปรับแต่ง widget เพื่อนำมาใช้ร่วมกันได้อย่างมากมายนี่เองเป็นสาเหตุที่ IBM และ Sun ได้เข้าร่วมและสนับสนุน Dojo และงานในโปรเจกต์นี้แล้ว เว็บไซต์ของ Dojo และตัวอย่างมีให้อย่างมากมาย ถูกพัฒนาและปรับปรุงโดยทีมพัฒนาอย่างต่อเนื่อง โดยมีเป้าหมายที่จะสนับสนุนให้มีการใช้งานในวงกว้าง Dojo ประกอบไปด้วย widget ที่มีลูกเล่นน่าสนใจมากมาย อย่าง animating box และ สนับสนุนการทำงานอย่าง Drag-Drop และยังสนับสนุนการทำงานกับแผนที่อย่าง Google และ Yahoo อีกด้วย อย่างไรก็ตาม Dojo กลับไม่เป็นที่สนใจมากนัก ซึ่งในบางส่วนของโปรแกรมมีการทำคู่มือและตัวอย่างเอาไว้อย่างดี แต่ในบางส่วนกลับมีคู่มือที่ไม่ได้ระบุละเอียดนักซึ่งนับได้ว่าเป็นจุดด้อยของ Dojo ที่ต้องอาศัยอาสาสมัครเข้ามาช่วยเพิ่มเติมคู่มือให้
สิ่งที่ทำให้ Dojo เป็นโปรเจกต์ที่น่าสนใจคือ การนำไปใช้นั้นมีความสะดวกและง่ายดาย เพียงแค่โหลดเครื่องมือที่ต้องการติดตั้งลงไปบนเว็บไซต์ก็จะสามารถใช้งานได้ในทันที ผลมาจากการที่ Dojo มีการประกอบขึ้นจากโมดูลหลายๆ ตัวทำให้เราสามารถเลือกเฉพาะโมดูลที่ต้องการมาใช้ได้ไม่จำเป็นต้องโหลดมาทั้งหมด ทำให้โปรเจกต์มีขนาดที่เหมาะสมและทำงานได้อย่างรวดเร็ว Dojo ยังคงมีการพัฒนาอย่างต่อเนื่องเพื่อดึงดูดให้นักพัฒนามาใช้งานมากขึ้นต่อไป
Zimbra Kabuzi Ajax Toolkit (www.zimbra.com/community/kabuki_ajax_toolkit_download.html)
เมื่อครั้งที่ Zimbra ปรากฏตัวออกมาในครั้งแรกนั้น ได้นำเสนอ โปรเจกต์การจัดการอีเมล์และปฎิทินเพื่อให้ใช้งานในออฟฟิศซึ่งทำออกมาได้อย่างน่าสนใจมาก Widget ก็ออกแบบให้ใช้แบบสมจริงให้ความรู้สึกว่าน่าใช้มาก แต่ zimbra ได้แยกบางส่วนออกเพื่อเป็นโอเพ่นซอร์สภายใต้ชื่อโปรเจกต์ว่า Kabuki โดยใช้ไลเซนต์ของ Apache โดยประกอบไปด้วยเครื่องมือ และ widget ที่น่าสนใจมากมายแต่ยังขาด widget อีกหลายตัวที่จะพบในแพคเกจที่ต้องซื้อเท่านั้น แต่ก็ไม่ได้หมายความว่า Zimbra Kabuki จะไม่น่าสนใจซะทีเดียว Kabuki ยังคงประกอบไปด้วยเครื่องมือที่น่าในอีกหลายตัวเช่น Editor , Tree view และยังมี Layout ที่เอาไว้สำหรับสร้างแอพพลิเคชันที่มียูสเซอร์อินเทอร์เฟซที่ซับซ้อนได้อีกด้วย
ระบบหลักของ Zimbra ยังคงมีบางจุดที่แตกต่างจาก Dojo หรือ yahoo เช่น ไม่มีการทำ animation ซึ่งผู้ใช้ที่ใช้ Javascript ต่างคาดหวังให้มี อย่างไรก็ตามคุณสามารถแก้ไขได้โดยการออกแบบและนำ stylesheet เข้ามาช่วยแต่การออกแบบคงต้องใช้ความพยายามในการจัดการกับซอร์สโค้ดหรือปรับแก้ด้วยตัวเองเช่นกัน
Google Web Toolkit (code.google.com/webtoolkit)
Google เป็นเครื่องมือที่ค่อนข้างแปลกกว่าตัวอื่นๆ กล่าวคือ Ajax โปรเจกต์อื่นนั้นจะถูกเขียนขึ้นมาจาก Javascript แต่ Google Web Toolkit นั้นถูกพัฒนาและเขียนขึ้นโดย Java และเมื่อต้องการนำไปใช้ในเว็บจะถูกแปลงเป็น Javascript ในภายหลัง ซึ่งสิ่งนี้ไม่ใช่เรื่องที่น่าแปลกใจแม้แต่น้อยเนื่องจาก ภาษา Java และ Javascript ก็มีโครงสร้างทางภาษาที่ใกล้เคียงกันมาก อย่างไรก็ตามขั้นตอนในการตกแต่งทำให้สวยงามเป็นสิ่งหนึ่งโปรแกรมเมอร์ชอบ และเป็นกังวลด้วยเช่นเดียวกัน ซึ่งมีบางครั้งที่ javascript ทำงานไม่เหมือนกับ java ในบางครั้ง
Google ได้พัฒนาเครื่องมือมาตรฐานอย่างมากมาย แต่ไม่มีส่วนของ animation เลย และยังพบว่าระบบการทำงานของ Google Web Toolkit นั้นใช้งานได้ง่ายประกอบไปด้วยคลาส Swing มากมายของ Java ซึ่ง Google Web Toolkit นั้นถูกออกแบบมาใช้สำหรับสร้างแอพลิเคชันในการทำงานโดยเฉพาะซึ่งแตกต่างจากตัวอื่นที่เป็นเพียงเครื่องมือสำหรับรวมเข้าไปทำงานกับเว็บที่มีอยู่
Open Rico and Prototype (openrico.org)
หนึ่งในโปรเจกต์โอเพ่นซอร์สที่มีชื่อเสียงอีกตัวหนึ่ง ซึ่งมีการสร้างและพัฒนาขึ้นแบบโมดูลที่มีการเชื่อมต่อเข้าด้วยกันแบบหลวมๆ ซึ่ง Dojo นั้นเป็นโปรเจกต์เดียวที่มีขนาดใหญ่ ในขณะที่ Open Rico และ Prototype สองโปรเจกต์ขนาดเล็กเข้ามาเชื่อมต่อกันโดยเทคโนโลยีที่ไม่ขึ้นต่อกัน หลายคนอาจจะเริ่มสงสัยว่าสองโปรเจกต์ที่เชื่อมเข้าด้วยกันแบบหลวมๆ นี้จะเป็นข้อดีหรือผลเสียอย่างไร แต่ผลลัพธ์ก็ได้ออกมาแล้วว่าสามารถทำงานได้เทียบเท่ากับโปรเจกต์ AJAX อื่นๆ เลยทีเดียว
Protoytype เป็นไลบรารี่พื้นฐานสำหรับการทำงานกับ AJAX สำหรับกลุ่มผู้ใช้ที่เป็นโปรแกรมเมอร์เท่านั้น เนื่องจากมีเพียงแต่โค้ดที่ใช้ในการทำงานระดับล่าง มีฟังก์ชันพื้นฐานที่ใช้ในการทำงานกับ AJAX ซึ่งคุณสามารถนำไปใช้และปรับแต่งได้ตามที่ต้องการ
Open Rico เป็นอีกโปรเจกต์หนึ่งที่ประกอบไปด้วย Widget และการทำงานแบบ animation ซึ่งจะทำงานควบคู่ไปกับ Prototype ซึ่งในการทำงานคุณไม่จำเป็นเลยที่ใช้ Open Rico เว้นเสียแต่ว่าหากคุณต้องการ Effect หรือ Animation จาก Open Rico เท่านั้น สิ่งหนึ่งที่ Open Rico ทำได้ดีมากคือ ตาราง (Live grid) ซึ่งเป็นการใช้ HTML table ได้อย่างมีประสิทธิภาพโดยการทำงานสามารถทยอยดึงข้อมูลขึ้นมาแสดงได้ตามที่เราได้เลื่อน Scrollbar หากจะเปรียบเทียบกันแล้ว Open Rico เหมือนกับเวอร์ชันย่อ ของ Dojo ก็ว่าได้ เพียงแต่สามารถทำงานได้ดีกว่า Dojo และยังสนับสนุนการทำ Drag drop ด้วย
Microsoft Atlas (atlas.asp.net)
ในโลกของซอฟต์แวร์บ่อยครั้งที่จะถูกแบ่งออกเป็นสองกลุ่มใหญ่ๆ หนึ่งคือซอฟต์แวร์จากค่ายไมโครซอฟท์ และ ค่ายอื่นๆ เสมอ ในครั้งนี้ก็เช่นเดียวกัน AJAX ของไมโครซอฟท์ที่ประกอบจาก Javascript และ XML ที่มีชื่อว่า Atlas (ปัจจุบันเปลี่ยนชื่อเป็น ASP.NET AJAX) Atlas เป็นแพคเกจฟรีแต่ไม่ใช่สำหรับคนที่ไม่ได้ใช้ Microsoft Visual Studio ซึ่งคุณสามารถดาวน์โหลดได้ฟรีจากไซต์ของไมโครซอฟท์ได้โดยตรง หลังจากที่ติดตั้งลงไปแล้วคุณจะได้เครื่องมือสำหรับ Atlas เพิ่มขึ้นมา แต่สำหรับนักพัฒนาที่คาดหวังจาก .js ไฟล์ ซึ่งเป็นไฟล์ Javascript นั้นไม่มีทางที่จะได้ไฟล์นั้นมาใช้งานโดยตรง Atlas สามารถทำงานได้ดีกับบราวเซอร์ทั้งหมด เช่น IE ,Firefox และ Safari ด้วย ซึ่งเป็นสิ่งที่น่าแปลกใจมากสำหรับไมโครซอฟท์ แต่อย่างไรตามในบางคุณสมบัติยังคงจำกัดให้ใช้เพียงแต่ IE เท่านั้น ซึ่งในคู่มือคุณจะพบคำว่า “Due to known issue with Atlas on Safari” และสำหรับ Firefox ด้วยเช่นเดียวกัน อย่างไรก็ตามสิ่งนี้ถือว่าเป็นสิ่งที่ยอมรับได้ของไมโครซอฟท์มากกว่าที่จะถือว่าเป็นข้อบกพร่อง
โดยรวมแล้ว Atlas ไม่ได้มีจุดเด่นเหนือจากโปรเจกต์อื่นๆ และ Atlas ยังคงต้องทำงานร่วมกับ .Net Service แต่ไมโครซอฟท์ก็ยังคงมีคู่มือและตัวอย่างที่ดีสำหรับนักพัฒนาด้วย ดังนั้นหากคุณจำเป็นที่ต้องใช้ .Net แล้ว Atlas จะถือว่าเป็นตัวเลือกที่เหมาะสมที่สุดแล้ว
Yahoo Ajax Library (developer.yahoo.com/yui)
Yahoo Ajax ไม่เพียงแค่รวมฟังก์ชันมากมายที่เหมาะสมเอาไว้ด้วยนั้น การแสดงตัวอย่างการใช้งาน และการนำไปใช้งานนั้นทำได้อย่างดีเยี่ยม การใช้งานเพียงแต่นำไลบรารี่รวมเข้าไปกับงานของคุณเท่านั้น และ Yahoo ยังมีตัวอย่างการใช้งานและคำแนะนำในการใช้งานมากมาย ซึ่งวิธีการนี้ถือว่าแตกต่างจากโปรเจกต์ของค่ายอื่นๆ และยังเป็นการสนับสนุนให้มีผู้ใช้มากขึ้น เพราะผู้ใช้งานส่วนมากเป็นมือใหม่ย่อมต้องการคู่มือและคำแนะนำในการใช้งาน AJAXความสามารถต่างๆ ของ Yahoo ถูกรวบรวมเอาไว้ภายในไลบรารี่ คล้ายกับ Dojo แต่มีขนาดที่เล็กกว่า มีการสนับสนุนการทำงานและมีเครื่องมือหลายอย่างเช่น animation และไลบรารี่พื้นฐาน, Tree view แต่คงขาดเครื่องมืออื่นๆ อย่างเช่น editor และ live table
Yahoo ได้เพิ่มเติมฟังก์ชันทางด้าน animation มากมายเช่น text scroll device และมี connection manager เพื่อจัดการข้อมูลระหว่าง GET และ POST ด้วยเช่นเดียวกัน ถึงแม้ว่าจะยังขาดเครื่องมืออย่าง Editor ไปบ้างแต่ก็ให้ความรู้สึกในการทำงานให้ความสะดวกต่อการทำงานมากกว่า Open Rico หรือ Zimbra เป็นต้นและเมื่อไหร่ต้องนักพัฒนาต้องการปรับปรุงซอร์สโค้ดก็สามารถทำงานได้ง่ายกว่าเนื่องจากโค้ดของ Yahoo มีการทำคู่มือไว้อย่างครบถ้วน
Opening up the future
จากความสามารถของโปรเจกต์โอเพ่นซอร์สทั้งหลายที่กล่าวมาแล้วนั้นคงได้เห็นความแตกต่างระหว่างโปรเจกต์ต่างๆ จากฝ่ายหนึ่งที่เป็นบริษัทยักษ์ใหญ่ กับกลุ่มนักพัฒนาที่รวมตัวกัน จากการคาดเดาแล้วนั้น Google , Microsoft และ Yahoo คงมีการผลักดันและสนับสนุนการทำงานต่อไป อย่างไรก็ตามการทำงานของบริษัทที่มีการควบคุมการทำงานอย่างชัดเจนย่อมจะมีความเป็นระบบของคู่มือที่ดี และตัวอย่างที่ชัดเจนกว่าแน่นอน โปรเจกต์ที่ถูกดูแลและจัดการโดยบริษัทย่อมจะมีการผลักดันให้มีความคิดใหม่ๆ และมีการพัฒนาใหม่ๆ อย่างรวดเร็วมากกว่าโปรเจกต์อื่นๆ ที่ต้องการนักพัฒนาภายนอกเข้ามาจัดการ ซึ่งในขณะนี้มีนักพัฒนาส่วนหนึ่งนำ Dojo มาเขียนใหม่ให้มีขนาดเล็กลงแต่ใช้คอร์ของโปรเจกต์เดิม แต่ในอนาคตอันใหล้นี้อาจจะได้เห็นความเปลี่ยนของ Dojo ซึ่งเป็นผลมาจาการเข้ามาสนับของบริษัทใหญ่ซึ่งอาจจะกำลังคัดเกลาและเพิ่มความชัดเจนให้คู่มือการใช้งานมากขึ้น
ในการใช้งานแล้วเราควรจะต้องพิจารณาถึงความจำเป็นในส่วนต่างๆ ซึ่งอาจจะแตกต่างกันออกไป นักพัฒนาบางคนอาจจะชอบการทำงานของ AJAX บางตัวในขณะที่คนอื่นๆ อาจจะชอบอีกตัวหนึ่งดังนั้นจึงควรศึกษาลักษณะของโปรเจกต์ที่จะใช้งานให้ดีก่อนที่นำ AJAX ไปใช้งานในโปรเจกต์
Proprietary AJAX Toolkit: Leveling the playing field
ความแตกต่างระหว่าง AJAX กับ AJAX ที่เป็นโอเพ่นซอร์ส คือความรู้ ความชำนาญ และทรัพยากร คือ เงินและเวลา เครื่องมืออย่าง AJAX นั้นจะมาพร้อมกับระบบที่เพรียบพร้อมอย่างเช่น drag-drop อย่าง Tibco ‘s general interface และ Jackbe ที่มาพร้อมกับ IDE ที่ทำงานอยู่บนบราวเซอร์ แต่โอเพ่นซอร์สก็มีเครืองมือไม่แพ้กันอย่างเช่น Atlas ที่มือเครื่องมือรวมกับ IDE หรือ Google’s java to javsscript ที่สามารถทำคู่กับ java IDE เช่น Eclipse ได้อย่างมีประสิทธิภาพ ส่วนรูปแบบการบันทึกข้อมูลอย่าง backbase จะใช้รูปแบบอย่าง XML ส่วน Jackbeใช้ Javascript ในการเก็บข้อมูล และซอฟต์แวร์โอเพ่นซอร์สนั้นจะใช้รูปแบบของตัวเองในการเก็บข้อมูล จุดนี้เองที่ทำให้ผู้ใช้โดยทั่วยากลำบากในการจัดการเป็นอย่างมาก ในการจัดการเกี่ยวกับข้อผิดพลาด Backbase มาพร้อมกับ debugger ที่ทำงานอยู่บนบราวเซอร์ และในการจัดการข้อผิดพลาดของโอเพ่นซอร์สนั้นอย่าง Dojo และ Yahoo สามารถบันทึกข้อผิดพลาดบนคอนโซลได้ ซึ่งความแตกต่างของทั้งค่ายมาจากเงินและเวลานั่นเอง
ที่มา: http://www.dnsthailand.net/index.php?option=com_content&task=view&id=132&Itemid=39
</span>