วันอาทิตย์ที่ 18 เมษายน พ.ศ. 2553

ศึกจ้าว CMS 2010

เวลาผ่านไป โลกของ CMS ก็เปลี่ยนตาม หลังจากเขียนเกี่ยวกับหัวข้อนี้ครั้งแรกในปี 2007 ซึ่งตอนนั้นยังเป็นโลกของ Mambo และ Joomla! กาลเวลาผ่านไป 3 ปี Mambo ตายไปและปัจจุบันกลายเป็นโลกของ Joomla!, Drupal และ Wordpress ซึ่งทั้ง 3 ต่างได้รับรางวัล Best CMS Award ของสำนักพิมพ์ Packt แต่แน่ล่ะเมื่อมีตัวเลือกมากขึ้น สำหรับมือใหม่ก็คงยากในการตัดสินใจเลือกใช้ (มือเก่าคงไม่เปลี่ยนง่าย ๆ ด้วยหลายเหตุผล เช่น เคยมือ ง่ายในการดูแลรักษา)

และตัวเลือกที่นำมาเปรียบเทียบในบทความนี้ แน่นอน ต้องตามใจผู้เขียน ดังนั้นผมจึงขอนำเฉพาะ CMS ยอดนิยมมาเปรียบเทียบ Joomla!, Drupal, Wordpress และขอเพิ่ม TYPO3 อีก 1 ตัวเช่นเดิม ส่วน CMS อื่นที่พอเป็นที่นิยมในไทยก็ขอกล่าวคร่าว ๆ คือ

  • Mambo ได้โปรด เปลี่ยนไปใช้ Joomla! เถอะครับ
  • Dotnetnuke เป็น Opensource CMS (แต่ลองไปอ่านโค้ดดูครับ compile มาเรียบร้อยแล้วเป็นส่วนใหญ่ อยากได้โค๊ดมาอ่านต้อง email ไปขอ) ที่ยอดเยี่ยมตัวหนึ่งสำหรับ IIS และ Windows รองรับเฉพาะ Microsoft SQL Server และชุมชนในไทยยังมีไม่มาก ต่างคนต่างเขียน แต่นั่นไม่ใช่ปัญหา เพราะต่างจากเขียน .net ธรรมดาไม่มาก
  • Zikula พัฒนามาจาก Postnuke ตั้งเป้าในเรื่องความปลอดภัยแต่ยังต้องปรับปรุงเรื่องประสิทธิภาพ มีหัวหอกผู้ใช้งานในภูเก็ต แต่ไม่มีชุมชน เพราะผู้ใช้ต่างเป็นบริษัท และไม่ได้มีการสนับสนุนผลงาน เช่นพวก แปลภาษาหรือมอดูล ไปยังต้นน้ำ แถมต้นน้ำยังมีผู้ใช้งานน้อย และชุมชนยังไม่แข็งแกร่ง
  • plone มีครบทุกอย่างที่ควรมี ยกเว้นผู้ใช้งาน เนื่องจากปัญหาเรื่องระบบพื้นฐาน เพราะต้องใช้ Python และ Zope
  • Alfresco เขียนบน J2SE เป็น CMS สำหรับองค์กรณ์ขนาดใหญ่ และแน่นอน ในการใช้งานช้าแน่ ๆ เพราะใช้ Java

แนะนำนิดนะครับ เนื่องจากการเปรียบเทียบมีหลายหัวข้อ แต่การใช้งานจริงบางครั้งบางหัวข้อก็ไม่ต้องไปสนใจ และน้ำหนักในการพิจารณาเลือก CMS ใช้งานก็ควรเปลี่ยนไปตามการใช้งานของคุณ

ส่วนประวัติคร่าว ๆ ของ CMS แต่ละตัวเชิญไปดูที่ ศึกจ้าว CMS ภาค 1 เทียบมวย ขอกล่าวเฉพาะตัวที่ยังไม่มีนะครับ

Wordpress Matt Mullenweg และ Mike Little ได้แยกตัวออกจากเครื่องมือจัดการบล็อก b2/cafelog ที่มีผู้ก่อตั้งคือ Michel Valdrighi ซึ่งปัจจุบันยังคงเป็นทีมพัฒนา Wordpress ออกมาก่อตั้ง Wordpress ในปี 2003 และเริ่มตั้งตัวได้ในปี 2004 เนื่องจากคู่แข่ง Movable Type ได้เปลี่ยนเป็นเก็บตังค์ และเริ่มมีการพัฒนาอย่างต่อเนื่อง โดยได้รับรางวัลของสำนักพิมพ์ packt ในปี 2550 และ 2552 ได้รับ 2 รางวัล คือ 1, 2 จากรางวัลที่ได้ จะเห็นได้ว่า Wordpress ไม่ได้เป็นเป็นเพียงเครื่องมือจัดการบล็อกอีกต่อไป แต่ได้เป็น CMS เต็มตัว ถึงขนาดสามารถชนะใจกรรมการเหนือ Joomla! ได้

การจัดทำเว็บไซต์ทั่วไป

การติดตั้ง

  • Drupal ง่ายดาย และมีเครื่องมือแนะนำเรื่องต่าง ๆ และช่วยเหลือในกรณีผิดพลาดดีมาก - 10
  • Joomla! กรอกข้อความไม่กี่หน้าก็ได้เว็บไซต์แล้วครับ - 10
  • TYPO3 ในเวอร์ชัน 4.4 (เพิ่ง Beta) การติดตั้งง่ายขึ้นมาก ส่วนการตั้งค่ามีให้ตั้งประมาณ 20 หน้ากระดาษ แต่ถ้าไม่รู้เรื่องก็ข้าม ๆ ซะ เว็บมันใช้ได้อยู่ - 10
  • Wordpress สะดวก รวดเร็ว - 10

การเรียนรู้ในการใช้งาน

  • Drupal ไม่ได้มีส่วนแยกระหว่างเมนูผู้เข้าชมและผู้ดูแลระบบอย่างชัดเจน แต่สามารถลงมอดูลเสริมได้ เนื่องจากระบบได้รับการออกแบบให้ง่ายในการดัดแปลง ดังนั้นจึงใช้ไม่ค่อยง่ายเท่าไหร่ - 9
  • Joomla! จัดการทุกอย่างได้ง่ายดาย - 10
  • TYPO3 เอ่อ จริง ๆ ก็ก็เหมือนตัวอื่น ๆ เพียงแต่เนื่องจากมันทำได้เยอะกว่าอย่างอื่น เลยเมนูเยอะไป ตาลาย และทางทีมงานไม่คิดจะเปลี่ยนแปลง ถึงขนาดเขียนว่า ถ้าคุณไม่มีเวลาหรือต้องการระบบง่าย ๆ ก็ควรไปใช้ CMS ตัวอื่นในเว็บไซต์หลัก จะเอาเว็บขึ้นก็ต้องเรียนรู้ภาษา TypoScript นิดหน่อยด้วย - 7
  • Wordpress ทุกอย่างชัดเจน - 10

คู่มือการใช้งาน

  • Drupal มีหนังสือภาษาไทย 2 เล่ม ซื้อทั้ง 2 เล่ม น้อง ๆ บอกว่าของคุณสุกรีกับ mk อ่านเข้าใจดีกว่า (ขายของชัด ๆ) ส่วนอังกฤษมีเยอะที่สุดในตลาด CMS คู่มือในเว็บทำได้ดีมาก - 10
  • Joomla! มีคู่มือภาษาไทยเยอะ อังกฤษเยอะ แต่ในเว็บหลักยังทำได้ไม่ดี - 9
  • TYPO3 ไม่มีหนังสือภาษาไทย คู่มือภาษาอังกฤษมีไม่มาก แต่ในเว็บหลักทีมงานทำได้ดีมาก ๆ - 8
  • Wordpress พอมีหนังสือภาษาไทย แต่ภาษาอังกฤษน้อยไปนิด ในเว็บก็งั้น ๆ - 8

การจัดการเนื้อหา

  • Drupal จัดการเนื้อหาหลายชั้นได้ตามต้องการแต่ไม่สามารถคัดลอกเนื้อหาของแต่ละหน้า ได้ อ๊ะ อ๊ะ โชคดี ลงมอดูลเสริมได้ - 10
  • Joomla! ทำได้เพียง 3 ชั้น และไม่สามารถคัดลอกเนื้อหาได้ - 7
  • TYPO3 ทำได้ทุกอย่าง - 10
  • Wordpress ทำได้แต่ไม่ง่ายนัก และต้องลงมอดูลเพิ่ม - 9

SEO

  • Drupal อยากทำอะไร ก็ลงมอดูลเพิ่ม - 10
  • Joomla! เครื่องมือบางตัวต้องจ่ายเงิน - 8
  • TYPO3 ลงมอดูลเพิ่มเพียงเล็กน้อยก็สามารถทำได้ทุกอย่าง - 10
  • Wordpress เหมือน Drupal - 10

ธีม

  • Drupal ของฟรีพอมี แต่สวย ๆ หายาก และทำเองให้สวยยากมาก ประมาณอยากทำอะไรต้องไปแก้โค๊ดของระบบธีม - 7
  • Joomla! โอ้ว สวรรค์ มีให้เลือกมากมาย แถมทำเองง่ายมาก ๆ - 10
  • TYPO3 ทำหน้าตาทุกอย่างได้ตามต้องการ เพียงแต่ต้องเรียนภาษา TypoScript - 8
  • Wordpress ไม่ต้องทำเองหรอกครับ แค่ของฟรีแค่เลือกก็จะตายแล้ว - 10

การช่วยเหลือ

  • Drupal ชุมชนขนาดใหญ่และเข้มแข็ง ถามอะไรก็มีคนช่วยกันตอบ ทั้งชุมชนไทยและชุมชนหลัก และมีการช่วยเหลือแบบเสียเงิน โดยอยู่ในรูป Drupal เวอร์ชันพิเศษ คือ Acquia Drupal ซึ่งมีการพัฒนาทั้งธีมและระบบมากมาย ทั้งยังส่งสิ่งที่พัฒนากลับต้นน้ำด้วย เยี่ยมจริง ๆ - 10
  • Joomla! ชุมชนภาษาไทยมีมายาวนานและดีเยี่ยม เช่นเดียวกับชุมชนหลัก เพียงแต่เวลาถามถ้าง่ายไปนิด จะมีคนมาด่า - 9
  • TYPO3 ในเว็บหลักทั้ง Forum และ Mailing List ยอดเยี่ยม ถามไปไม่เกิน 24 ชม. จะได้คำตอบดี ๆ แต่ชุมชนภาษาไทยยังเพิ่งเริ่ม (มาหลายปีละ) - 8
  • Wordpress ชุมชนภาษาไทยยังไม่เข้มแข็งเท่าไหร่ ส่วนชุมชนหลักจัดอยู่ในเกณฑ์ดี- 8

รวม Drupal - 66, Joomla! - 62, TYPO3 - 61, Wordpress - 65

ประสิทธิภาพ ความปลอดภัย และการดูแลรักษาระบบ

Caching - สำหรับเก็บหน้าเว็บที่ไม่มีการเปลี่ยนแปลงมาก

  • Drupal สมบูรณ์แบบ ทำได้ถึงขนาดทำเฉพาะผู้ใช้ บล็อก หรือแม้กระทั่ง SQL - 10
  • Joomla! ทำได้ไม่ดีที่สุดใน 4 ตัวนี้ - 7
  • TYPO3 ทำได้ทุกอย่าง - 10
  • Wordpress ทำได้ดี - 8

ทำหน้าเว็บแบบคงตัว - ไว้สำหรับหน้าที่ไม่มีการเปลี่ยนแปลง เช่น about

  • Drupal มีมอดูลเสริม - 10
  • Joomla! ไม่มี (มีส่วนขยายแต่ใช้ไม่ได้)- 6
  • TYPO3 มีอยู่ในแกนหลัก - 10
  • Wordpress มีขั้นตอนในการทำซับซ้อน - 8

Permission

  • Drupal สามารถกำหนดเป็นกลุ่มได้ทั้งมอดูล หน้าเว็บ เมนู ว่าให้ใครใช้ได้บ้าง - 9
  • Joomla! กำหนดได้ไม่มาก - 7
  • TYPO3 เหมือน Drupal แต่สามารถกำหนดสิทธิ์ให้ผู้ใช้รายคนโดยไม่ต้องอยู่ในกลุ่มได้ด้วย - 10
  • Wordpress สามารถกำหนดได้ แต่ไม่ทั้งหมด - 8

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

  • Drupal ดีเยี่ยม ง่ายดาย - 10
  • Joomla! มีทั้งส่วนขยายที่จ่ายเงินและฟรี แต่ไม่คุ้มค่าที่จะใช้ เพราะการเปลี่ยนรุ่นทุกครั้ง ต้องภาวนาให้ใช้งานได้ - 7
  • TYPO3 ไม่ต่างจาก Drupal - 10
  • Wordpress มีเวอร์ชันเฉพาะ Wordpress MU - 10

ฐาน ข้อมูล

  • Drupal ใช้ได้ทั้ง MySQL และ Postgress SQL และ ในรุ่นถัดไป Drupal 7 รองรับ SQLite อย่างเป็นทางการสำหรับเว็บที่มีการใช้งานต่ำ และรองรับ Oracle อย่างไม่เป็นทางการ (ส่วนในมอดูลเสริมนี่ต้องแล้วแต่ว่าผู้เขียนจะติดต่อฐานข้อมูลผ่าน api หรือเปล่า) - 8
  • Joomla! ใช้ MySQL และมีตัวเสริมให้สามารถใช้ Postgress แต่ยังมีข้อผิดพลาดเยอะ - 7
  • TYPO3 - ใช้ได้มากมาย เช่น Oracle, MSSQL, PostgreSQL, MAXDb, Sybase, XMLdb10 - 10
  • Wordpress ใช้ได้เฉพาะ MySQL - 7

การรองรับระบบ ใหญ่ ๆ - ทดสอบโดยดึงข้อมูลปริมาณเยอะ ๆ แล้วดูว่าใครจะหลุดก่อนกัน

  • Drupal ทำได้ดีมาก - 10
  • Joomla! ทำได้ดี - 9
  • TYPO3 ทำได้ดีมาก - 10
  • Wordpress ทำได้ดีมากจนน่าประหลาดใจ - 10

รวม Drupal - 57, Joomla! - 46, TYPO3 - 60, Wordpress - 51

การนำไปใช้งาน

บล็อก

  • Drupal ยอดเยี่ยม - 10
  • Joomla! ธรรมดา - 8
  • TYPO3 ธรรมดา - 8
  • Wordpress ไม่ต้องพูดถึง - 10

การจัดการงานเอกสาร

  • Drupal ทำได้ แต่ต้องลงมอดูหลายตัว และต้องตั้งค่าอีกเยอะ - 8
  • Joomla! ทำได้ แต่ยังไม่ครบและมีปัญหาเรื่องสิทธิผู้ใช้งาน - 8
  • TYPO3 ทุกอย่างสมบูรณ์ - 10
  • Wordpress มีความสามารถไม่เยอะ - 5

E-Commerce

  • Drupal มีให้เลือกทั้ง 2 ตัว และพอใช้ได้ - 9
  • Joomla! มีให้เลือกหลายตัวเช่นกันและพอใช้ได้เช่นกัน - 9
  • TYPO3 มีหลายตัว แต่ไม่เข้าตา - 7
  • Wordpress เหมาะสำหรับเว็บเล็ก ๆ มีเฉพาะความสามารถพื้นฐาน - 7

Forum

  • Drupal มีทั้งอยู่ในแกนหลักและมอดูลเสริม - 10
  • Joomla! มีให้เลือกหลายตัว แต่ไม่ประทับใจ - 8
  • TYPO3 มีให้เลือกหลายตัว - 10
  • Wordpress คุณสมบัติไม่มากเท่าที่ควร - 8

Groupware

  • Drupal ทำได้เยอะ แต่ต้องลงหลายโปรแกรม - 9
  • Joomla! ทำได้ไม่เยอะ - 8
  • TYPO3 ครบ - 10
  • Wordpress ไม่ต้องพูดถึง - 5

Learning Management System (LMS)

  • Drupal ยอดเยี่ยม - 10
  • Joomla! ธรรมดา - 8
  • TYPO3 มีครบ - 10
  • Wordpress ความสามารถไม่เยอะ - 8

Wiki

  • Drupal มีให้เลือกหลายตัว และทำงานได้ดี - 10
  • Joomla! ทำงานได้ไม่เยอะ - 8
  • TYPO3 มีให้เลือกหลายตัว - 10
  • Wordpress ความสามารถไม่เยอะ - 8

รวม Drupal - 66, Joomla! - 57, TYPO3 - 65, Wordpress - 46

การใช้งานระยะยาว

  • Drupal รุ่น 7 ใกล้ออกแล้วครับ มีการเปลี่ยน api ทำให้มอดูเก่าใช้ไม่ได้ซึ่งเป็นปัญหาใหญ่ของ Drupal แต่การสนับสนุนของรุ่นเก่านี่ก็เข้มแข็งดี
  • Joomla! รุ่น 1.6 ก็ใกล้ออกเช่นกัน (คงออกพร้อม ๆ กันครับ ตอน Drupal 6 กับ Joola! 1.5 ก็ออกใกล้เคียงกัน) ประสบปัญหาแบบเดียวกัน นโยบายใกล้เคียงกัน
  • TYPO3 รุ่นถัดไปคือ 4.4 ปัญหาการใช้มอดูลเก่านี่น้อยกว่าตัวอื่น ๆ มาก (เพราะแนวทางการเขียนมอดูลกับกว่าจะออกรุ่นใหม่ นานมาก) แต่เมื่อมีการเปลี่ยนเป็น TYPO3 5 ก็คงมีปัญหาแน่นอน (หลัง 4.4 ก็มี 4.5 อีกรุ่นก่อนจะไป 5 ก็น่าจะกินเวลาประมาณ 2 ปีกว่า) เพราะจะมีการเขียนโค้ดใหม่ทั้งหมดบน FLOW3 Framework (ทำให้ปัญหามอดูลเก่ากับเปลี่ยนรุ่นของ CMS หมดไป) แต่เทพได้อีก ไม่เป็นไรครับถ้าจะเขียนมอดูลตอนนี้บน TYPO3 เพราะในรุ่น 4.4 นี้ได้ออก Extbase MVC framework เพื่อให้มอดูลที่เขียนมาใหม่สามารถนำไปใช้บน TYPO3 5
  • Wordpress ก็คงออกรุ่น 3.0 ใกล้เคียงกับ Drupal 6 และ Joomla! 1.6 นโยบายการรองรับก็เหมือนกัน สมเป็นพี่ใหญ่ทั้ง 3 ในวงการ CMS

การพัฒนาโปรแกรมเสริม CMS แต่ละตัวก็จะมีแนวทางของตัวเอง

  • Drupal สามารถเขียน api เองและเรียกใช้ api ของมอดูลอื่นได้ แบ่งเป็น MVC ชัดเจน
  • Joomla! ข้อบังคับในการเขียนน้อยกว่า และสามารถเขียนขายได้ (ตัวอื่นก็ขายได้ครับ แต่ไม่นิยม)
  • TYPO3 ยากง่ายใกล้เคีบงกับ Joomla!
  • Wordpress โค้ดเหมือนบทกวี อยากเขียนอะไรย่อมได้ครับ แฮคกันอย่างเมามัน

สถานะ การณ์ทั่ว ๆ ไป

  • Drupal มีชุมชนที่เข้มแข็งและโตขึ้นเรื่อย ๆ
  • Joomla! แม้จะมีผู้ใช้เท่า ๆ เดิม แต่อัตราการเพิ่มลดลง ซึ่งอาจเป็นปัญหาในระยะยาว สาเหตุเกิดจากมอดูลเสริมส่วนใหญ่ที่ดี ๆ จะต้องเสียเงิน แต่ก็เป็นแนวทางการทำธุรกิจที่ดี เพราะมีผู้พัฒนามอดูลเสริมดี ๆ เยอะ
  • TYPO3 ได้รับการสนับสนุนจากรัฐบาลเยอรมัน และรัฐบาลเยอรมันได้ใช้ TYPO3 ทั้งระบบ ทำให้ไม่ต้องกังวลเรื่องการสนับสนุน (ทำไมเยอรมันทำได้เนี่ยครับ ไม่มี Microsoft เลย ทั้ง os และโปรแกรม ไทยจะทำได้ไหมเนี่ยครับ)
  • Wordpress ได้รับความนิยมเพิ่มขึ้นอย่างรวดเร็ว

ขอ ให้ทุกท่านเลือกใช้งาน CMS ให้เหมาะกับงานนะครับ และสิ่งที่ผมอยากให้เป็นคือคนที่ใช้ open source มาช่วยโปรโมทกันครับ ให้ทุกคนเข้าใจแนวทาง open source ทุกคนร่วมกันใช้ ร่วมกันแบ่งปัน จริง ๆ อยากเริ่มตั้งแต่ระดับมหาลัยครับ เพราะอาจารย์บางคนยังไม่เข้าใจ ไม่ยอมรับโปรเจคจบที่เขียนบน CMS มีเด็กเคยมาปรึกษาผมเรื่องจะเขียนโปรเจคจบ ผมก็แนะนำให้เขียนมอดูลเสริมใน Joomla! หรือ Drupal ปรากฎว่าเด็กไปปรึกษาอาจารย์ที่ปรึกษา โดนด่ากลับมาครับ ว่าเรียนมา 4 ปี ทำไมทำได้แค่นี้ อาจารย์เขาให้เขียนใหม่ทั้งระบบครับ แนวคิดแปลกดี

ที่มา http://blognone.com/node/15893