Tuesday, January 1, 2008

คำนิยามของ "ซอฟต์แวร์โอเพ่นซอร์ส"

  • ซอฟต์แวร์โอเพนซอร์ส

แนวคิดของโอเพนซอร์สนั้นง่ายมาก ผู้พัฒนาเจ้าของลิขสิทธิ์ของซอฟต์แวร์ให้สิทธิในการใช้งาน copy แก้ไข และเผยแพร่ซอฟต์แวร์ แก่สาธารณะโดยไม่คิดมูลค่า ภายใต้สัญญาอนุญาตหรือ license ที่เป็นแบบโอเพนซอร์ส เพราะฉะนั้นคุณจึงสามารถใช้งานซอฟต์แวร์เหล่านี้ได้อย่างอิสระ สามารถ copy ซอฟต์แวร์ให้กับผู้อื่น หรือเผยแพร่ซอฟต์แวร์ต่อไปได้

ซอฟต์แวร์โอเพนซอร์สเป็นซอฟต์แวร์ที่มีลิขสิทธิ์ ไม่ต่างไปจากซอฟต์แวร์ปิดเชิงพาณิชย์ทั่วไป เพียงแต่ว่าเจ้าของลิขสิทธิ์คือนักพัฒนาซอฟต์แวร์โอเพนซอร์สตัวนั้น ได้เผยแพร่ซอฟต์แวร์ด้วยสัญญาอนุญาตแบบโอเพนซอร์สซึ่งมีอยู่ด้วยกันหลายฉบับ เช่น GPL, LGPL หรือ MPL ฯลฯ ซึ่งอนุญาตให้ทุกคนสามารถใช้งาน copy แก้ไขและเผยแพร่ซอฟต์แวร์นั้น (ไม่ว่าจะแก้ไขหรือไม่) ได้อย่างอิสระภายใต้เงื่อนไขของสัญญาซึ่งมีรายละเอียดต่าง ๆ กัน

การใช้งานได้อย่างอิสระหมายความว่า คุณสามารถติดตั้งซอฟต์แวร์ลงบนเครื่องคอมพิวเตอร์กี่เครื่องก็ได้ ไม่ว่าจะบนเครื่องที่บ้านหรือที่ทำงาน คุณสามารถใช้มันในงานส่วนตัวหรือใช้เพื่อธุรกิจ นอกจากนี้คุณยังสามารถ copy ซอฟต์แวร์โอเพนซอร์สอย่างไรก็ได้ คุณสามารถมอบ copy ของซอฟต์แวร์ให้กับผู้อื่นได้อย่างถูกต้องตามกฏหมาย หรือแม้แต่เผยแพร่ซอฟต์แวร์นั้นสู่สาธารณะต่อไป ไม่ว่าจะแจกฟรีหรือในเชิงการค้าก็ตาม ทั้งหมดนี้ไม่ว่าคุณจะได้ซอฟต์แวร์นั้นมาฟรีหรือซื้อมาก็ตาม

ซอฟต์แวร์โอเพนซอร์สจะถูกเผยแพร่ออกมาพร้อมซอร์สโค้ดซึ่งเป็นเสมือนต้นฉบับของซอฟต์แวร์นั้นเสมอ เพื่อให้คนอื่นสามารถตรวจสอบการทำงานของโปรแกรม ศึกษาว่ามันทำงานอะไรอย่างไร และสามารถแก้ไขมันให้ตรงกับความต้องการ หรือเพิ่มเติมความสามารถใหม่ได้ สัญญาอนุญาตบางฉบับเช่น GPL จะบังคับให้ผู้ที่แก้ไขต้องเผยแพร่สิ่งที่ตนแก้ไขออกสู่สาธารณะ แต่ไม่ว่าสัญญาจะบังคับหรือไม่ เราก็ควรจะเผยแพร่สิ่งที่เราแก้ไขออกมาอยู่แล้ว เพื่อให้สิ่งที่เราพัฒนาเป็นประโยชน์แก่สาธารณะ เช่นเดียวกับที่เราได้รับประโยชน์จากซอฟต์แวร์โอเพนซอร์ส

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

  • การใช้ซอฟต์แวร์โอเพนซอร์ส

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

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

สำหรับ Chantra คุณสามารถเข้าร่วมเป็นส่วนหนึ่งในประชาคมผู้ใช้ Chantra ได้โดยเข้าไปที่เว็บบอร์ดของ thaiopensource.org Chantra เป็นโครงการโอเพนซอร์ส คุณสามารถถามปัญหาในการใช้งานหรือช่วยเหลือผู้ใช้คนอื่น คุณสามารถแนะนำซอฟต์แวร์โอเพนซอร์สที่น่าสนใจหรือมีส่วนร่วมในการพัฒนา Chantra เวอร์ชันต่อไป ทั้งหมดเป็นสิ่งที่คุณควรจะทำเพราะคุณก็เป็นส่วนหนึ่งในประชาคม โอเพนซอร์สของ Chantra เหมือนกัน

No comments: