ย้ายบล็อกไปที่ bact.cc แล้วนะครับ

พ.ร.บ.คอมพิวเตอร์
หยุด ร่างพ.ร.บ.คอมพิวเตอร์
พื้นที่เก็บข้อมูลออนไลน์ ฟรี 2GB จาก Dropbox (sync กับ Windows, Linux, Mac, iPhone, Android ฯลฯ ได้)

2005-02-14

OpenOffice.org 2.0, with native Thai support

นักพัฒนา 'ไทย' ใน OpenOffice.org เหมือนจะกลับมาชีวิตชีวาอีกครั้ง

ไม่ได้หมายถึง ออฟฟิศทะเล หรือ ปลาดาวออฟฟิศ แต่หมายถึงตัว โอเพนออฟฟิศ ตัวหลักนั่นเลย

อันนี้คือจุดที่คิดว่าทุกกลุ่ม ไม่ว่าจะเป็น ออฟฟิศทะเล เนคเทค ปลาดาวออฟฟิศ ซัน ฝันถึง ตั้งแต่เมื่อประมาณสี่ปีที่แล้ว แต่เนื่องด้วยข้อจำกัดทางเทคนิคของโอเพนออฟฟิศในขณะนั้นเอง (ซึ่งยังไม่เป็น 1.0 ด้วยซ้ำ) ทำให้การพัฒนาภาษาไทยไม่ได้ทำร่วมกับกลุ่ม OOo หลัก; และเรื่องสัญญาอนุญาตการใช้งานที่สับสนในตอนแรก ทำให้การพัฒนาภาษาไทย แยกเป็นสองค่าย แล้วก็เป็นอย่างนั้นเรื่อยมา

จะบอกว่าเราใจร้อน รีบลงมือทำเกินไปในตอนนั้น ก็ไม่ได้ เพราะว่าสถานการณ์ตอนนั้นมันบังคับ (BSA กำลังจะลงมือเข้มงวดในตอนนั้น) ทุกอย่างต้องรีบ
เมื่อการทำงานทุกอย่างรีบ บวกกับความใหญ่โตและซับซ้อนของโค้ด และขั้นตอนการพัฒนาที่ยังไม่เป็นที่คุ้นเคย (แม้กระทั่ง โครงการ OOo ในขณะนั้นก็ยังไม่มีขั้นตอนที่ชัดเจน เพราะยังใหม่มาก) บวกกับโค้ดที่ยังไม่เสถียรมากนักในตอนนั้น และยังไม่มีโครงสร้างพื้นฐานที่เตรียมไว้ให้รองรับภาษาไทยได้อย่างสมบูรณ์
ขั้นตอนการพัฒนาทุกอย่างในตอนนั้น จึงค่อนข้างสับสน และผลงานที่ออกมา ก็มีคุณภาพไม่ดีนัก รวมทั้งยังได้สร้างความเข้าใจผิดต่างๆ ทั้งระหว่างสองค่าย และระหว่างนักพัฒนากับผู้ใช้

อย่างไรก็ตาม เพราะ 'ความใจร้อน' ของเรานี่เอง ก็ได้ทำให้ ภาษาไทย ได้เป็นภาษาตัวอย่างแรกๆ นอกเหนือจาก 'กลุ่มภาษาหลัก' (ซึ่งมีคนใช้เยอะๆ) ที่ทำให้นักพัฒนาของ OOo ได้ตระหนักว่า ยังมีความต้องการใช้ OOo ในภาษาอื่นๆ อีกมาก (สังเกตุได้จากเอกสารของ OOo ที่มักจะยกตัวอย่างภาษาไทยอยู่เรื่อยๆ ในเรื่องของการสนับสนุนภาษาใหม่ๆ)

เรื่องข้อกฏหมาย ทุกอย่างชัดเจนมาได้ชั่วเวลานึงแล้ว และมีผลทำให้นักพัฒนาจากทั่วโลก หลั่งไหลเข้าไปในโครงการ OpenOffice.org มากขึ้น รัฐบาลท้องถิ่นของหลายๆ ประเทศ หลายๆ แคว้น ถึงกับจัดงบประมาณมาสนับสนุนให้พัฒนา OpenOffice.org ให้ใช้ภาษาของตนได้ (จะแอบโม้หน่อยๆ ก็ได้ว่า ทำตามหลังภาษาไทยทั้งนั้น, แต่บางอันก็แซงไทยไปแล้ว)

เรื่องเทคนิค ตอนนี้โครงการ OOo มีกระบวนการทำงานที่ชัดเจนขึ้น นักพัฒนาต่างๆ ในบ้านเรา มีความเข้าใจในกระบวนการเหล่านั้นมากขึ้น คุ้นเคยกับโค้ดมากขึ้นแล้ว

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

ส่วนเรื่องที่เคยเข้าใจผิดกัน ก็เข้าใจกัน คลี่คลายมากขึ้นแล้ว

นี่น่าจะเป็นโอกาสอันดี ที่นักพัฒนาต่างๆ ที่สนใจ จะช่วยกันไปลุยใน OpenOffice.org ตัวหลักได้เลย ทุกอย่างพร้อมแล้ว ไม่มีอะไรต้องรอ ลุยได้เลย

ทุกวันนี้เรามี Linux TLE ที่เป็นการ 'สร้างดิสโทร' แยกต่างหากออกมา เพราะข้อจำกัดทางเทคนิคบางประการ (เช่น เรื่องแพตช์ที่ส่งไปไม่ได้เข้าโค้ดหลักซักที) ที่ทำให้การสร้างดิสโทรเอง ดูเหมือนจะเป็นทางเลือกที่ดีที่สุดในขณะนั้น ถ้าต้องการจะให้ใช้ภาษาไทยได้สมบูรณ์
แต่เหมือนตอนนี้ปัญหาทางเทคนิคเหล่านั้น ค่อยๆ ถูกแก้ไขไปเรื่อยๆ จนใกล้หมดแล้ว (ต้องขอขอบคุณ TLWG และทุกๆ คน ทุกๆ องค์กรที่เกี่ยวข้อง) ในอนาคตอันใกล้ จากข่าวสารต่างๆ ที่ได้รับ เหมือนทิศทางจะเป็นไปที่การดูแลเฉพาะแพคเกจภาษาไทยมากกว่า (แทนที่จะต้องทำดิสโทรทั้งตัว)

ทิศทางของ OpenOffice.org จากนี้ไป ก็น่าจะเป็นไปในแนวทางนั้นเช่นเดียวกัน
เราไม่จำเป็นต้องทำ OOo เป็นของตัวเองทั้งตัวแล้ว แค่ดูแลเรื่องความสามารถภาษาไทย และเรื่องคำแปล UI และเอกสาร ก็น่าจะเพียงพอ

ออฟฟิศทะเล และ ปลาดาวออฟฟิศ กำลังจะเป็นอดีต เราไม่ต้องการมันในอนาคต
(แอบพูด: ถึงแม้โดยส่วนตัวจะอาลัยอาวรณ์กับตัว ปลาดาวออฟฟิศ อยู่ไม่น้อย ด้วยว่าเริ่มทำงานกับมันมาแต่ต้น รวมทั้งเป็นคนตั้งชื่อมันด้วย แต่เรื่องการจะมี OOo ตัวหลักที่ใช้ภาษาไทยได้สมบูรณ์เลย ก็เป็นเรื่องน่าดีใจ. ความรู้สึกจึงปนๆ กัน แต่เลือก OOo แน่นอน)

ตอนนี้ พี่สัมพันธ์ กับ คุณเจมส์ คล๊าก กำลังเป็นหัวเรี่ยวหัวแรงสำคัญอยู่ ถ้าคุณต้องการเข้าร่วม เริ่มได้เลยวันนี้

ประกาศรับสมัครงาน: ต้องการคนดูแลเว็บของ Thai Native-Lang Project, เป็นแหล่งรวมข้อมูลต่างๆ เกี่ยวกับ OOo เืนื้อหาเป็นภาษาไทย จุดมุ่งหมายหลักคือ ถ้าคนไทยอยากรู้อะไรเกี่ยวกับ OOo ก็มาที่นี่ได้เลย. สนใจติดต่อที่ผมได้เลย ขอบคุณมาก.

Issue Tracker: Turn input from Thai user community into proper issues

4 comments:

Thep said...

ยินดีด้วยครับ ที่มีแนวทางชัดเจนขึ้น ผมมีเพื่อนชาวลาวที่อยากทำภาษาลาวใน OO.o ติดต่อเข้ามาเหมือนกัน เขาอยากได้ expertise ของไทยไปช่วย ยอมรับว่าลำบากใจเหมือนกัน ที่จะตัดสินใจเลือกติดต่อฝ่ายไหนให้เขา เพราะต้องการรักษาความเป็นกลางของตัวเอง และไม่อยากเข้าไปอยู่ท่ามกลางความขัดแย้ง ก็เลยทิ้งเรื่องไว้มาระยะหนึ่ง ถ้าความขัดแย้งยุติแล้ว ก็คงสบายใจขึ้นครับ

ทั้งนี้ ยังไม่รวมถึงเรื่องที่ผมไม่เลือกใช้ OO.o เลย ไม่ว่าค่ายไหน เพราะปกติใช้แต่ LaTeX แต่ถ้าความจำเป็นเรื่องงานบังคับ ก็ใช้ native OO.o จาก debian โชคดีที่ที่ผ่านมา ไม่มีความจำเป็นต้องใช้ภาษาไทย (ส่วนใหญ่เสร็จ LaTeX มากกว่า)

สุดท้าย (จุดประสงค์หลักของการมาโพสต์นี้) คืออยากพูดเกี่ยวกับ Linux TLE ให้ชัดเจนนิดหนึ่ง ว่าแนวทางเดิม ก็ดูแลแต่แพกเกจภาษาไทย และแพตช์ภาษาไทยเท่านั้นอยู่แล้ว ไม่ได้คิดจะ "ทำดิสโทรเอง" ทั้งหมดอย่างรุ่นสองรุ่นที่ผ่านมา เพราะเห็นว่า ควรใช้ทรัพยากรที่มีจำกัดไปในเรื่องที่จำเป็นก่อน เพราะเรื่องการทำ distro เรายังสามารถยืมแรงฝรั่งทำให้ได้ เอาแรงคนไทยมาไล่แพตช์ภาษาไทยจะคุ้มกว่า แล้วก็ไปเน้นที่การเป็นบัฟเฟอร์สำหรับการ check-in เข้าต้นน้ำ

แต่อย่างไรก็ดี ผมไม่มีส่วนเกี่ยวข้องกับ TLE โดยตรงอีกแล้ว ก็เคารพในแนวทางของทีมงานปัจจุบัน เพียงแต่อยากเคลียร์เกี่ยวกับแนวทางในขณะที่ผมทำอยู่แค่นั้นแหละ เผื่อ bact' จะลืมเขียนถึง :-)

Thep said...

เอิ๊ก.. post ซ้ำได้ไงเนี่ย ขออภัยด้วยครับ ^_^'

bact' said...

ขอบคุณที่ช่วยแก้/เสริมครับ :)

(เอ แต่ตอนแรกเริ่ม/ที่พี่เทพร่วมทำนี่ เหมือนยังไม่ใช่ Linux TLE นี่นา ที่เป็นพวกแพตช์ที่มันก่อน MaTEL ป่ะ?)

Thep said...

ก่อน MaTEL ก็มีบางส่วนครับ (คือโลแคลไทย ซึ่งเข้ามาสมทบกับงานของคนอื่นๆ เช่น พี่ฮุ้ย คุณพูลลาภ งานของเนคเทคร่วมกับ ETL ฯลฯ) และ MaTEL 6, TLE 6.01, 6.1 ก็ดูแลโดยอ๊อทมาทั้งสามรุ่น โดยยังรวม source จากเนคเทคและกลุ่มนักเรียนไทยในญี่ปุ่นอยู่เหมือนเดิม

ผมเริ่มมาจับ TLE ก็ตอนที่อ๊อทไปเรียนต่อ แล้วทีมที่เนคเทคถึงได้รับช่วง TLE มาทำ โดยนับรุ่นใหม่เป็น TLE 3 (นับ 6.01, 6.1 เป็น 1 และ 2) โดยยังสานต่อแนวทางเดิมของอ๊อท คือแยกแพกเกจไทยกับแพกเกจ RedHat ออกจากกันชัดเจน เพื่อให้คนที่ลง RedHat สามารถติดตั้ง Thai Extension เพิ่มได้ง่ายๆ เพียงแต่ว่า TLE 3 อาจจะเริ่ม patch source ของ XFree86 หรือ GTK+ บ้าง ซึ่งแพกเกจพวกนี้จะเติมเลข release ว่า "tle" แยกชัดเจน เพื่อมุ่งหวังให้ผู้ใช้ RedHat ลงเพิ่มได้ง่ายเช่นกัน

สำหรับ TLE 4 นั้น ผมขอแยกตัวออกมาทำงานกับ XFree86, GTK+ ให้ใกล้ชิดยิ่งขึ้น ด้านงาน distro ก็เลยตกเป็นภาระของพี่โดม (โดยการติดต่อของ อ.วิรัช) ระหว่างนี้ ผมได้ patch เพิ่มเติมพอสมควร ระหว่าง submit เข้า upstream ก็ส่งให้พี่โดมไปด้วย

จนกระทั่งเกิดปัญหาการตอบคำถาม TLE 4 เพราะคนทำกับคนตอบเป็นคนละกลุ่มกัน เลยตอบ/แก้ปัญหาไม่ถนัด ก็เลยประชุมกันว่าจะต้องรีบทำ TLE 4.1 ออกมาแก้ปัญหานี้ ซึ่งตอนนั้น ผมก็ได้กลับมาทำ package ต่างๆ ต่อจาก TLE 3 โดยยังยึดแนวทางเดิม คือ maintain compatibility กับ RedHat และแยกแพกเกจภาษาไทยให้ชัดเจน

ใน TLE 4.1 นี้ ได้ contribution จากเพื่อนๆ ใน TLWG ผ่าน mail ส่วนตัวมากมาย ทำให้ระบบภาษาไทยใน TLE 4.1 สมบูรณ์ขึ้นมาก ถึงแม้จะมี GNOME patch ใหญ่ๆ ที่ทำไปก่อนนั้น แต่ยังไม่ได้ใช้เพราะ GNOME 2 ยังไม่ออกก็ตาม และที่สำคัญ มีการใช้เครื่องมือใหม่ คือ apt-rpm ในรุ่นนี้

หลังจากนั้น ผมจึงได้ส่งต่อให้ทีมงานปัจจุบัน ซึ่งผลงานแรกของพวกเขาคือ TLE 5.0 ที่ใช้ GNOME 2 เรียบร้อย

ออกจะแปลกใจนิดๆ ด้วย ที่ได้ยินว่าจะมีการ "ทำดิสโทรเอง" ทั้งหมดใน TLE 5.5 เพราะเป็นการฉีกแนวการทำงานเดิมอย่างมาก จากปรัชญา "ที่สุดแห่งทะเลคือไร้ทะเล" กลายเป็นการสร้างทะเลให้ใหญ่โตขึ้น

ไม่ว่าจะอย่างไร ผมก็เคารพแนวทางเขานะครับ ผมพยายามไม่ก้าวก่ายอยู่แล้ว และตัวผมเองก็พยายามมุ่งสู่ความ "ไร้ทะเล" ด้วยการพุ่งสู่ต้นน้ำโดยตรงอยู่แล้ว ซึ่งถ้าทีมทะเลจะหันกลับมาร่วมอุดมการณ์กันแบบเต็มที่ ก็ย่อมยินดีครับ