Oz’s Blog

พฤศจิกายน 18, 2006

Open Source Software กับ ชีวิตของผม : Part I

Filed under: Expinion — siroz @ 1:27 pm

ณ วันนี้ สำหรับคนในวงการคอมพิวเตอร์ โดยเฉพาะในวงการ software development ประเด็นที่ hot ที่สุด คงหนีไม่พ้น การกล่าวถึง open source Software ของรัฐมนตรีกระทรวง ICT คนปัจจุบัน
อันที่จริงแล้ว หากคำกล่าวนี้ ออกมาจากปากของนายมีนางมา ตาสีตาสา หรือ ไอ้เบื๊อกอย่างผม ก็คงจะไม่มีใครสนใจอะไร
แต่บังเอิญว่า ออกมาจากปากของรัฐมนตรี ICT ในคณะรัฐบาลที่มีคนจับตามอง (รวมทั้งจ้องจับผิด) อย่างมาก เลยกลายเป็นประเด็นใหญ่โตมโหฬารไปซะ
มีกาีรพูดถึง และแสดงความคิดเห็นในเชิงไม่เห็นด้วย (รวมทั้งโจมตี) อย่างมาก โดยเฉพาะบน Internet … หลายๆ ความเห็นค่อนข้างรุนแรง เหมือนโกรธแค้นกันมาแต่ชาติปางไหน (เช่น ด่าว่าเป็นวัวเป็นควาย)

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


open source software นั้น มันมีมาตั้งแต่เมื่อไหร่ ผมก็ไม่รู้ แต่ผมเริ่มที่จะได้ยินได้ฟังได้สัมผัสกับมัน ก็ตอนที่ได้รู้จัก Apache ในฐานะ open source web server ซึ่งในขณะนั้น มีจำนวน Install base สูงที่สุด ซึ่งนั่นมันก็สิบกว่าปีมาแล้ว (เวลาผ่านไปเร็วจริงๆ)
ซึ่งแสดงให้เห็นว่า open source software นั้น ก็ได้รับความนิยมมานานมากแล้ว
ผมคิดว่า หลายๆ คนมีประสบการณ์กับ open source software ต่างๆ กันไป
และหลายๆ คน ก็มีประสบการณ์กับ open source software ต่างๆ กันไป ในขณะที่ใส่ “หมวก” ต่างใบกัน

หมวก “end user” หรือ ผู้ใช้งานในลักษณะทั่วๆ ไปนั้น คงจะเป็นหมวกที่ คนที่ใช้คอมพิวเตอร์ในปัจจุบันมักมีโอกาสได้ใส่กัน
ต้องยอมรับว่า ทุกวันนี้ เราใช้ open source software กันแทบจะเป็นเรื่องปกติไปแล้ว
ไม่ว่าจะเป็นระดับ OS อย่าง distribution ต่างๆ ของ Linux
application software อย่าง FireFox ที่เป็น web browser .. หรือ FileZilla ที่เป็น FTP client
หรือ แม้แต่ tool เล็กๆ น้อยๆ อย่างล่าสุด ผมเพิ่งเจอ GnuWin32 ซึ่งเป็น port ของ tool ต่างๆ ที่เป็น open source มาที่ Windows platform
ผมมัวไปงมโข่งอยู่ที่ไหนมานะ ถึงเพิ่งมาเจอเนี่ย … ในที่สุด ผมก็มี grep ใช้บน Windows ซะที (พยายาม install Cygwin แต่ก็ใช้ไม่ได้ซะที .. บื้อจริงๆ ผม)

ต้องยอมรับว่าในฐานะ end user แล้ว เรามักจะมอง open source software ในมุมของ free software กัน
ซึ่งจริงๆ แล้ว สองอย่างนี้ ไม่เหมือนกัน!!! เพราะ free software อาจจะไม่ได้เปิดเผย source code ก็ได้
ซึ่งส่วนใหญ่แล้ว end user (อย่างผม) ก็คงไม่สนใจหรอกว่าสิ่งที่ผมใช้ มันจะ open source หรือไม่ (ทั้งที่จริงๆ แล้ว การ open source หรือไม่ มีผลต่อ อนาคตของ software ตัวนั้นๆ มาก)

หมวกอีกใบหนึ่งที่ ผมได้มีโอกาสใส่ค่อยข้างบ่อย คือ “software developer
ตลอดอายุการทำงานเกือบๆ 8 ปีของผม ถึงแม้ ผมจะไม่เคยมีตำแหน่งเป็น developer หรือ programmer เลย แต่ผมมักจะมีโอกาสได้ใส่ “หมวก” ใบนี้อยู่เรื่อยๆ
ปฏิเสธไม่ได้เลยว่า open source software มีผลอย่างมากต่อชีวิตของนักพัฒนา software เพราะ มี tool/utility/framework ที่เป็น open source software หลากหลายมากมายให้เราเลือกใช้เต็มไปหมด
และหลายๆ ตัวนั้น ต้องเรียกได้ว่า มีความสามารถไม่แพ้ commercial software ที่ขายกันอยู่ในตลาดเลย

สำหรับผมแล้ว ข้อแตกต่างของการใช้ tool/utility/framework ที่เป็น open source กับการใช้พวก commercial product นั้น คือ เรื่องของเอกสาร (document) และการ support
ต้องยอมรับว่า ส่วนใหญ่ของ project open source นั้น มักจะมุ่งเน้นไปที่การสร้างตัว software นั้นๆ .. เรื่องของการทำเอกสาร ไม่ว่าจะเป็นเอกสารอธิบายการใช้งาน tutorial หรือ reference มักจะเป็นเรื่องรองลงมา (ถ้าใครเคยใช้ JBoss สมัยก่อนๆ คงเข้าใจประเด็นนี้ดี)
เรื่อง support ก็เป็นอีกประเ็ด็นที่ developer ที่ใช้ open source software มักจะมีปัญหา เพราะ ส่วนใหญ่แล้ว การขอความช่วยเหลือเกี่ยวกับ software ตัวนั้นๆ มักจะอยู่ในรูปแบบของ การถามตอบผ่าน forum หรือ mailing list ซึ่งก็แล้วแต่ว่า จะีมีคนที่พร้อมจะช่วยเหลือเราหรือไม่ (รู้ในเรื่องที่เราถาม)
และในหลายๆ ครั้ง กว่าจะสื่อสารกันเข้าใจปัญหา ก็ต้องใช้เวลาถามตอบกันหลายวัน
ซึ่งก็ถือว่า ดีมากแล้ว ที่มีคนมาช่วยเหลือเรา

ถ้าเปรียบเทียบกับการใช้งาน commercial product (ซึ่งมักจะไม่เปิดเผย source code .. จัดว่าเป็น proprietary software) .. เรื่องของเอกสารมักจะไม่เป็นปัญหา เพราะ บริษัทที่ทำ software ขายกันจริงๆ จังๆ มักจะมีการกำหนดงบประมาณ สำหรับการทำเอกสารอยู่แล้ว (ก็มาจากเงินที่เราจ่ายค่า software ไปนั่นแหละ)
ซึ่งในสำหรับ software หลายๆ ตัวที่ผมเคยเจอมา ต้องบอกว่าทำเอกสารได้ละเอียดและชัดเจนมาก
ที่พูดอย่างนี้ ไม่ได้หมายความว่า open source software project จะมีเอกสารที่ไม่ดีเสมอไป
หลายๆ project นั้น มีเอกสารที่ดี ไม่แพ้ commercial software เลย แต่ส่วนใหญ่แล้ว กว่าที่ project เหล่านั้น จะมาถึงจุดที่พร้อมทั้งทางด้าน ตัว software และ เอกสาร นั้น มักจะใช้เวลาค่อนข้างนาน (นี่เลยเป็นเหตุผลว่า open source project ใหม่ๆ มีแนวโน้มที่จะได้รับความนิยม และยอมรับค่อนข้างน้อยกว่า project ที่อยู่มานานกว่า และ mature กว่า ถึงแม้ว่า project ใหม่ๆ นั้นจะมีความสามารถที่ดีกว่าก็ตาม)

ด้าน support นั้น commercial software ส่วนใหญ่ จะมี forum หรือ mailing list สำหรับให้ถามตอบเกี่ยวกับ software product ตัวนั้นๆ
ซึ่งสำหรับหลายๆ product ก็จะมี คนจากแผนก support มาคอยตอบคำถามให้ (ถึงแม้ว่า คนที่มาถามจะไม่ได้แสดงตัวว่า เป็น “ลูกค้า” หรือไม่ก็ตาม)
นอกจากนั้น บาง product ก็จะมี channel พิเศษสำหรับให้ลูกค้า (ที่จ่ายเงินซื้อ support package) เข้ามาถามปัญหาได้ ซึ่ง ต้องยอมรับว่า เท่าที่ผมเคยใช้บริการตรงนี้ ค่อนข้างประทับใจ ในความรวดเร็วในการรับปัญหาและตอบกลับ (แน่นอนล่ะ ก็จ่ายตังค์ไปให้แล้วนี่)

แต่ support ที่ดีนั้น ไม่ได้เป็นของที่อยู่คู่กับ commercial software หรือ proprietary software เสมอไป
บางครั้ง ปัญหาเกี่ยวกับการใช้ software ที่เป็น utility/tool/framework ตัวใดตัวหนึ่ง เกิดจากข้อผิดพลาดในตัว software นั้นๆ เอง
ซึ่งหมายความว่า ต้องมีการแก้ไข software ตัวนั้นๆ
ในกรณีของ proprietary software ก็คงต้องพึ่งบริษัท หรือองค์กรที่เป็นเจ้าของ source code ของ software ตัวนั้น ให้แก้ไขให้
ซึ่งหลายๆ บริษัทจะรวมบริการนี้ ลงไปในบริการหลังการขายด้วย (คือ รับผิดชอบแก้ไข ในกรณีที่ใน software เกิดข้อผิดพลาดร้ายแรง ทำให้เราไม่สามารถใช้งาน software นั้นไ้ด้)
แต่ก็ไม่ทุกกรณีที่ เราจะได้รับบริการแบบนี้ (เช่น เราต้องการ feature บางอย่าง ที่ software นั้นไม่มีให้) … ซึ่งถ้าเป็นอย่างนั้น เราก็คงทำได้แค่รอ หรือพยายามจะเจาะ (ไม่อยากใช้คำว่า hack เลยจริงๆ) หาช่องทาง เพื่อเ้ข้าไปแก้ไข หรือดัดแปลงบางส่วนของ software นั้นๆ ใ้ห้เป็นอย่างที่เราต้องการ (ซึ่งการทำแบบนี้ ส่วนใหญ่จะเป็นการละเมิด license ของ product ซึ่งมีข้อห้ามในการ reverse engineering หรือดัดแปลงแก้ไข)
ซึ่งตรงนี้เป็นข้อได้เปรียบของ open source software เพราะว่า เราสามารถเข้าไปแก้ไขดัดแปลง source code เพื่อใข้งาน ได้ทันทีตามที่เราต้องการ
นอกจากนั้น สำหรับ developer บางคน การได้อ่าน source code ก็ช่วยทำให้เข้าใจตัว software นั้นๆ ได้ดีขึ้นอีกด้วย

หมวกอีกใบหนึ่ง ที่ผมได้ใส่ ในตอนที่ใช้งาน open source software คือ “software architect
เแต่ว่า วันนี้ เขียนยาวแล้ว … เหนื่อยจริงๆ ไว้มาเขียนต่อตอนหน้านะครับ

13:13 นาฬิกา
18 พฤศจิกายน 2549

2 ความเห็น »

  1. นั่งอ่านทรรศนะคติของท่าน รมว.ICT แล้วคิดออกมาได้ว่าท่านคงเข้าใจเรื่อง Opensource ผิด ในโลกของ Opensource software นั้นมันก็เหมือนกับภูเขาน้ำแข็ง ซึ่งสิ่งที่ท่านมองนั้นมามันคือส่วนที่ลอยอยู่บนผิวน้ำซึ่งมันเป็นส่วนน้อยนิด ซึ่งถ้าเมื่อใดท่าน รมว. ใช้ Internet ทำอะไรซักอย่าง ท่านก็มีส่วนในการใช้ Opensource ไปแล้วไม่ว่าจะเป็น http, database system, FTP ฯลฯ แล้วถ้าท่านมองว่า Opensource มันทำเงินไม่ได้ท่านคงจะไม่เคยรู้จัก google หรือ MySQL ถ้าท่านต้องการผลักดันเรื่อง Animation กว่า 60% ของหนัง Hollywood ก็ใช้ software opensource เช่น pov-ray ในการสร้างหนัง ซึ่งส่วนใหญ่ความสำคัญของ Opensource มันจะเป็นส่วนของ Backend ที่เป็นส่วนที่อยู่ในน้ำของภูเขาน้ำแข็งทั้งลูก เรื่องนี้ผมมองแล้วก็สรุปได้ว่าท่านเป็น “คนแก่ที่สายตาสั้น” ส่วนเรื่อง Embedded software นั้นผมก็เห็นด้วยกับท่าน

    ความเห็น โดย thitipat — พฤศจิกายน 24, 2006 @ 10:11 pm

  2. 🙂

    ความเห็น โดย siroz — พฤศจิกายน 29, 2006 @ 10:03 am


RSS feed for comments on this post. TrackBack URI

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

บลอกที่ WordPress.com .

%d bloggers like this: