โลกจะพัฒนาเพราะการแข่งขันไม่ใช่การชนะแบบเบ็ดเสร็จ

ผมเคยเขียนเรื่อง WebKit != W3C ไปเมื่อหลายเดือนก่อน หลังจาก Opera หันมาใช้ WebKit ไปก่อนหน้านี้

แต่เมื่อไม่กี่วันก่อน Google ได้ fork ตัว WebKit ออกมาเป็น Blink ต่างหาก และจะถูกใส่กลับเข้ามาใน Chrome ในอนาคตอันใกล้นี้ (คาดว่าไม่เกิน 10 อาทิตย์ต่อจากนี้) โดยเหตุผลทั้งในเรื่องของความง่ายต่อการควบคุมและใส่คุณสมบัติใหม่ๆ โดยไม่ต้องรอ Apple ซึ่งเป็นเจ้าของ WebKit โดยตรงเห็นชอบทั้งหมด แม้ว่า open source community จะมีขั้นตอนและฝ่ายที่เกี่ยวข้องเยอะ แต่หลักๆ คงเป็นเจ้าของหลักหรือทีมหลักซึ่งในที่นี้คือ Apple นั้นเอง ซึ่งหลายคนไม่ทราบว่า WebKit เป็น layout engine ที่ open source โดย Apple ซึ่งจริงๆ มันเป็น layout engine ของ Safari อยู่ก่อนแล้ว

จากเหตุการณ์ทีเกิดขึ้น ผมยังยืนยันว่าการพัฒนาเว็บควรยืนตาม W3C HTML5 เป็นสำคัญ แล้วจึงปรับตาม layout engine ในแต่ละตัวในภายหลัง ซึ่งการใช้ layout engine เป็นหลักสักตัวเป็นเรื่องดี แต่ไม่ใช่ข้ออ้างในการทำเว็บเพื่อสนับสนุนเพียง layout engine เดียว เพราะนั้นทำให้คุณปิดโอกาสในการเข้าถึงและใช้งานของกลุ่มผู้ใช้อีกกลุ่มได้ง่ายมากในโลกของอินเทอร์เน็ตที่มีความหลากหลายของ layout engine ที่มากกว่าเดิมอย่างมากในตอนนี้ ความหลากหลายที่ว่านี้ไม่ใช่แค่ Desktop/Notebook Computer แต่เป็น Mobile Device ต่างๆ ที่มีความหลายหลากด้วย ซึ่ง layout engine ยุคใหม่ในตอนนี้ทุกตัวทำตามมาตรฐาน W3C HTML5 เป็นหลักอยู่แล้ว (ซึ่งจะมากน้อยว่ากันอีกที)

ส่วนตัวแล้วนั้น ตอนนี้โลกอยู่ในยุคของสงคราม Web Browser ครั้งที่ 2 อย่างไม่ต้องสงสัยอีกครั้ง ซึ่งในตอนนี้เป็นโอกาสที่ดีที่เว็บต่างๆ จะอาศัยช่วงนี้พัฒนาและใช้ความสามารถที่หลากหลายเหล่านี้ให้เป็นประโยชน์ และผมเชื่อว่ากลุ่มนักพัฒนา layout engine ต่างๆ ในตอนนี้ไม่มีทางที่จะหยุดพัฒนาและทำให้ตัวเองมีความสามารถที่ล้าหลังคนอื่นได้นานมากนัก เพราะฉะนั้นยึดตามมาตรฐานเปิดจึงดีที่สุด (นี่ผมยังไม่ได้พูดถึง JavaScript Engine ที่แข่งกันอีกส่วนเช่นกัน)

โดยในตอนนี้ 3 ค่าย layout engine หลักของโลกคือ Trident engine – Internet Explorer, Gecko engine – Firefox และ WebKit – Safari, Opera, Chrome กำลังมีการเปลี่ยนแปลงในอนาคตอันใกล้นี้ โดยมี Blink ที่จะถูกใส่ลงมาใน Chrome, Servo ที่เป็นส่วนที่ถูกพัฒนาใส่ลงใน Firefox Mobile (ยังไม่แน่ว่าจะลง Firefox ตัวหลักหรือไม่) และ WebKit2 ซึ่งจะถูกใช้ใน Safari รุ่นต่อไป ซึ่งทั้งหมดนี้กำลังเพิ่มเติมเข้ามาอีกภายในปีนี้แน่นอน

จากที่เขียนมายืดยาวนั้น ยังคงยืนยันว่านักพัฒนาเว็บไม่ควรมักง่ายเพียงเพื่อความสะดวกสบายแบบแต่ก่อนครั้งยังใช้ IE6 และเราเรียกร้องกันเหลือเกินให้ใช้และทำตามมาตรฐาน W3C และตอนนี้มาตรฐานเปิด W3C HTML5 ก็เป็นสิ่งที่กำลังไปได้ดี (แม้จะช้าบ้าง มีการเมืองบ้าง แต่ผมถือว่ามันจะมั่นคงในอนาคต) ส่วนตัวผมไม่อยากให้ WebKit กลายเป็นกรณีเดียวกับ IE6 แห่งโลก Web สมัยเก่าก่อน (ผมไหว้หล่ะ) เพราะผมเชื่อว่ามันไม่ใช่ทางออกที่ดี และยังเชื่อว่า “โลกจะพัฒนาเพราะการแข่งขันไม่ใช่การชนะแบบเบ็ดเสร็จ”

WebKit != W3C

ผมนั่งงงว่า เมื่อไม่กี่ปีก่อนตอน IE6 คนใช้เยอะ ทุกคนหวังกับ W3C จะมาช่วยทำให้มันดีขึ้น เรียกร้องให้ใช้ Mozilla Firefox ที่เป็น Gecko Engine ที่ทำตาม W3C และ IE รุ่นใหม่ๆ ที่ Microsoft พยายามทำ Trident Engine ตัวใหม่ๆ ตาม W3C และในที่สุด IE10 ก็ทำตามมาตรฐาน W3C ได้ดีมากๆ รวมไปถึง Apple Safari และ Google Chrome ที่ใช้ WebKit Engine ที่ทำตาม W3C เช่นกัน

มาวันนี้ ทุกค่ายทำตาม W3C เป็นหลักแล้ว มีการสนับสนุน ออกคำแนะนำต่างๆ มากมาย และข่าวล่าสุด Opera ประกาศทิ้งเอนจิน Presto เปลี่ยนไปใช้ WebKit/Chromium ทั้งหมด ทำให้ค่าย Engine หลักในการพัฒนาตัว Render หน้าเว็บเหลือเพียง 3 Engine หลัก และทั้ง 3 ค่ายพยายามอย่างมากที่จะทำตาม W3C ทั้งหมด

แต่แล้วสิ่งที่ไม่คาดคิดก็คือ Developer วันนี้บอกว่า “ขอ WebKit ค่ายเดียวแล้วกัน ง่ายดี!!!”

ผมก็นั่งงงว่า อ้าว แล้วยังไงต่อดี แล้วเมื่อก่อนหวังกับ W3C ไว้ทำไมเมื่ออดีต สรุปทุกคนก็ติด loop ตัวเองซินะ แค่เปลี่ยนจาก IE6 มาเป็น WebKit แค่นั้น ><”

ปล. จะบอกว่า IE6 มันของ Microsoft มันก็ใช่ แต่ตอนนี้ทุกค่ายพยายามที่จะทำตามมาตรฐาน Open Stanard คือ W3C ก็ควรจะทำตามอันนี้หรือเปล่า ส่วน Engine ตัวไหนมันก็อีกเรืองหนึ่งหรือเปล่า อย่าลืมกรณี Java กับ MySQL ซิครับเหล่ามิตรรัก Developer ทุกท่าน ยังเจ็บไม่จำกันอีกเหรอ ><“

ในปีที่ผ่านมาเว็บที่ผมดูแลอยู่มี สถิติของ Web Browser ทั้งยี่ห้อและขนาดจอภาพมาให้ดูกัน

Chrome = 49%
Internet Explorer = 21%
Firefox = 14%
Safari = 8%
Android Browser = 5%
Other = 3%

1366×768 = 26%
1024×768 = 14%
1280×800 = 10%
1600×900 = 7%
1280×1024 = 6%
1920×1080 = 6%

IE6 = 3%
IE7 = 5%
IE8 = 55%
IE9 = 33%
IE10 = 5%

โดยจะเห็นว่าแนวโน้มของปีนี้ Chrome มาอันดับหนึ่งเลย ตามด้วย IE และ Firefox

สำหรับขนาดของจอภาพก็คงได้เวลาปรับตัวในการทำเว็บที่รองรับขนาดจอภาพที่ 1,280 pixel เป็นขนาดเริ่มต้นกันเสียที

สำหรับ การสนับสนุนใน IE6 และ IE7 นั้นก็ควรจะหยุดลงได้แล้ว คุณจะสนับสนุนเพียง 3-5% จาก 21% ของคนที่เข้าเว็บคุณเพื่อ? และควรมุ่งไปที่ IE8 เป็นส่วนเริ่มต้นและมุ่งทำให้แสดงผลได้ดีใน IE9 และ IE10 มากขึ้นน่าจะดีกว่า

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

Web Browser หลักที่ควรเอาไว้ทดสอบ Web Site ของเรา

มีคนถามมาว่าใช้อะไรทดสอบเว็บบ้าง สำหรับผมก็มีเท่านี้แหละ

  • Firefox 2 (Default and Debug)
  • IE 6 (on VPC 2007)
  • IE 7
  • Opera
  • Safari for Windows

รวมแล้วก็ 5 ตัว เวลาส่งงานจะได้สบายใจ และ user ของเว็บที่เราส่งงานไปเค้าจะได้ไม่ด่าเราตอนหลังว่าทำเว็บห่วย ๆ ไม่รองรับ web browser ที่เค้าใช้ ;)

จริง ๆ ยังมี Tools อีกหลายตัวที่เอาไว้ทดสอบเพิ่มเติมอย่าง The Proxomitron สำหรับลอง Monitor packet ของ HTTP หรือพวก Firebug เอาไว้ดูพวก error ในเว็บ (เป็น Extension ของ Firefox) เดี่ยวไว้ว่าง ๆ จะเอา review ครับ (จริง ๆ มีเว็บที่เค้า review อยู่หลายเว็บนา …… ลองหาก่อนก็ได้ หุๆๆ )