open source

3 โอเพ่นซอร์สความหมาย โปรแกรมมีอะไรบ้าง?

Open Source คือ

ทำไมต้อง Open Source

มันก็เหมือนกับเวลาที่คุณอยากจะอ่านหนังสือสักเล่มหนึ่ง ถ้าคุณได้มันมาฟรี ๆ ก็ดี แต่คุณก็ทำได้แค่อ่านมันตามที่เขาพิมพ์มาเท่านั้น ถ้าคุณสามารถถ่ายเอกสารแจกเพื่อนได้โดยไม่ผิดกฎหมายก็ยิ่งดีขึ้นไปอีก แต่ถ้าคุณได้ไฟล์ต้นฉบับมาเลยล่ะก็ดีที่สุด เพราะคุณอยากจะพิมพ์มันออกมาเท่าไหร่ก็ได้ จะจัดหน้ามันอย่างไรก็ได้ และอยากจะแก้ไขหน้าตาหรือเนื้อหามันอย่างไรก็ได้ แนวคิดอย่างนั้นแหละคือ open source

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

ทำไมบริษัทใหญ่ ๆ ต้องหันมา open source ทั้ง ๆ ที่ซอร์สโค้ดน่าจะเป็นเพชรในมงกุฎของบริษัทเลยทีเดียว การเปิดซอร์สออกมาไม่เป็นการทุบหม้อข้าวของบริษัทไปเลยหรือ เมื่อมองในแง่มุมนี้แล้ว open source จะต้องมีคุณค่ามากกว่าที่เราคิดแน่ ๆ

open source คือ

หลักการของ open-source นั้นง่ายมาก

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

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

แล้วมันจะมีประโยชน์อะไรถ้าคุณไม่ได้คิดที่จะแก้ไขโปรแกรมนั้น

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

คุณไม่มีสิทธิที่จะกุมชะตาชีวิตของคุณเลย ทั้ง ๆ ที่มันเป็นซอฟต์แวร์ของคุณ

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

เรียกว่าซอฟต์แวร์ open-source จะมีวิวัฒนาการของตัวมันเองไปเรื่อย ๆ

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

แต่ทำไมเขาต้องแบ่งปันเวอร์ชันใหม่ของเขาให้คุณด้วย

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

แล้วฉันจะได้ประโยชน์อะไร

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

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

คุณเป็นอาชญากรไปแล้วหรือ

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

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

ซึ่งความจริงมันก็ควรจะเป็นเรื่องของคุณจริง ๆ แหละ

คุณภาพของซอฟต์แวร์ก็จะดีขึ้นด้วย

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

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

    1. คนใช้เป็นคนละคนกับคนเขียน
    2. คนที่เห็นซอร์สโค้ดมีจำนวนจำกัด
    3. เวลาที่ใช้พัฒนามีจำกัด

ถ้าเป็นซอฟต์แวร์ open-source ความสามารถที่เพิ่มเข้าไปในซอฟต์แวร์เป็นสิ่งที่มาจากผู้ใช้จริง ๆ เพราะผู้ใช้นั่นแหละเป็นผู้พัฒนาโปรแกรม ไม่มีโอกาสที่ฟีเจอร์ที่แฟนซีแต่ไม่มีประโยชน์จะได้ย่างเข้าไปในโปรแกรมเพราะไม่มีใครต้องการฟีเจอร์นั้น ผิดกับบริษัทซอฟต์แวร์ปิดที่ฟีเจอร์ในโปรแกรมเกิดจากสิ่งที่ฝ่ายการตลาดคิดว่าน่าจะทำให้โปรแกรมขายดี

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

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

เพราะฉะนั้นซอฟต์แวร์ open-source จะสามารถพัฒนาไปได้เร็วกว่า มีความสามารถที่ตรงความต้องการมากกว่า มีบั๊กน้อยกว่า น่าเชื่อถือมากกว่า นั่นคือมีคุณภาพมากกว่า

แล้วต่างคนต่างทำมันไม่เละไปเลยหรือ

มีคนอยู่คนหนึ่งหรือกลุ่มหนึ่งที่มีหน้าที่จัดการดูแลการทำงานของโครงการ open-source โครงการหนึ่ง บางทีเราก็เรียกเขาว่าเจ้าของโครงการ แต่ถ้าจะเรียกอย่างถ่อมตัวก็จะเรียกว่าผู้ดูแล ปรกติแล้วคนอื่น ๆ ที่แก้ไขซอฟต์แวร์ open-source จะไม่รีลีสซอฟต์แวรที่เขาปรับปรุงออกไปเอง แต่จะติดต่อกับผู้ดูแลเพื่อให้พิจารณาว่าสิ่งที่เขาแก้ไขนั้น เหมาะสมที่จะรวมเข้าไปในรีลีสอย่างเป็นทางการของโครงการหรือเปล่า กระบวนการพิจารณานี้อาจจะเป็นแบบกึ่งเผด็จการไปเลยก็ได้ถ้าเป็นโครงการเล็ก ๆ หรือผู้ดูแลได้รับการยอมรับมากพออย่าง Linus Torvald เจ้าของ Linux แต่บางทีก็อาจจะเป็นขั้นตอนประชาธิปไตยอย่างใน Apache Foundation

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

เพราะฉะนั้นโอกาสที่จะมีคนที่สองขึ้นมาแข่งก็เกิดขึ้นได้ยาก เพราะมันเป็นการยากที่โครงการใหม่ที่ทำซอฟต์แวร์เดิมจะสร้างชื่อเสียงจนได้รับความยอมรับจากผู้ใช้ได้มากเท่ากับผู้ที่ทำมาก่อน เหมือนกับที่ผู้ใช้ที่ต้องการ Linux ก็คงจะหาจากผู้เผยแพร่ที่มีชื่อเสียงอย่าง RedHat, Slackware, Debian หรืออื่น ๆ มากกว่าผู้เผยแพร่ที่ไม่มีใครรู้จัก ระบบนี้เป็นวิธีกันประกันคุณภาพขั้นหนึ่งของซอฟต์แวร์ open-source แต่แน่นอนผู้ดูแลจะต้องมีวิสัยทัศน์ มนุษย์สัมพันธ์ และความสามารถในการจัดการที่ดีพอ จึงจะสามารถประสานงานโปรแกรมเมอร์ฝูงใหญ่จากอินเทอร์เน็ตให้มีความกระตือรือร้นที่จะสร้างผลงานไปในทิศทางที่เป็นประโยชน์ต่อผู้ใช้มากที่สุด

ซอฟต์แวร์ open source ที่ไหนมี

ถ้าคุณคิดอย่างนั้นล่ะก็คิดใหม่ได้เลยเพราะถ้าคุณใช้อินเทอร์เน็ต สิ่งที่คุณใช้บ่อยที่สุดก็คือซอฟต์แวร์ open-source ในอินเทอร์เน็ต open-source อยู่ทุกหนทุกแห่ง จริง ๆ แล้วอินเทอร์เน็ตเป็นตัวอย่างที่สำคัญที่สุดของ open-source โครงสร้างพื้นฐานทั้งหมดของอินเทอร์เน็ตเกิดจาก open-source ไม่ว่าจะเป็นตัวเซิร์ฟเวอร์เองซึ่งมักจะเป็นยูนิกซ์ (BSD, Linux) หรือโปรแกรมเซิร์ฟเวอร์ต่าง ๆ ทุกครั้งที่คุณส่งเมล์ เมล์ของคุณต้องผ่านโปรแกรมที่สำคัญที่สุดคือ SendMail ซึ่งเป็นซอฟต์แวร์ open-source ทุกครั้งที่คุณท่องเว็บ กว่าห้าสิบเปอร์เซ็นต์ คุณกำลังใช้เว็บเซิร์ฟเวอร์ชื่อ Apache ซึ่งเป็นซอฟต์แวร์ open-source นอกจากนี้ยังรวมถึงโครงสร้างพื้นฐานอย่าง TCP/IP, DNS และภาษาที่คนทำเว็บชอบใช้อย่าง Perl ด้วย

ทำไมอินเทอร์เน็ตถึงใช้ open source

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

เพราะฉะนั้นซอฟต์แวร์สำหรับอินเทอร์เน็ตจะพังไม่ได้เลย ซึ่งไม่มีซอฟต์แวร์ตัวใดในโลกที่มีคุณสมบัติเช่นนี้นอกจากซอฟต์แวร์ open-source ยิ่งเป็นซอฟต์แวร์ที่มีอายุมากเพียงไรก็จะยิ่งทนขึ้นเท่านั้นเพราะบั๊กได้ถูกแก้ไปจนหมดแล้ว อินเทอร์เน็ตเป็นอาณาบริเวณที่ซอฟต์แวร์ปิดไม่มีวันแข่งขันกับ open-source ได้เลยเพราะความต้องการความทนทานอย่างสูงนี้เอง ตัวอย่างที่เห็นได้ชัดอีกอันหนึ่งก็คือระบบปฏิบัติการที่เป็นที่นิยมสำหรับอินเทอร์เน็ตเซิร์ฟเวอร์ก็คือยูนิกซ์ โดยเฉพาะยูนิกซ์ที่ open- source อย่าง BSD และ Linux บางคนเล่าว่าเขาสามารถเปิดเซิร์ฟเวอร์ที่ใช้ BSD ทิ้งไว้เป็นเดือน ๆ ปี ๆ โดยที่ไม่ต้องบูตใหม่เลย ซึ่งเป็นสิ่งที่เป็นไปไม่ได้เลยสำหรับระบบปฏิบัติการบางตัวที่ทิ้งไว้ไม่เท่าไหร่ก็แฮงเสียแล้ว

จะทำยังไงถ้าไม่มีไมโครซอฟท์อีกต่อไป

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

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

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

คราวนี้มาลองนึกกันดูว่าจะเป็นอย่างไรถ้าผู้พัฒนารายนั้นได้ให้ซอร์สโค้ดกับร้านค้าเอาไว้ (เช่นเป็นการตกลงซื้อซอฟต์แวร์ทั้งหมดรวมทั้งซอร์สโค้ดด้วย) ร้านค้าจะมีทางเลือกที่จะจ้างผู้พัฒนารายอื่นเพื่อพัฒนาโปรแกรมนั้นต่อไป โดยที่ยังรักษาข้อมูลของร้านไว้ได้ นี่เป็นตัวอย่างที่แสดงให้เห็นถึงมูลค่าของซอร์สโค้ดว่ามีมากกว่าคุณค่าที่เราใช้ตัวโปรแกรมของมันเท่านั้น ถ้าเอกสารทั้งหมดของคุณเก็บด้วยไมโครซอฟท์เวิร์ดแล้วไม่มีไมโครซอฟท์เวิร์ดอีกต่อไป (เช่นไมโครซอฟท์เลิกพัฒนาเวิร์ด) ชีวิตคุณจะเป็นอย่างไร? ถ้าพิจารณาดูจะเห็นว่าชีวิตของเราทุกวันนี้ขึ้นอยู่กับซอฟต์แวร์ปิดมากแค่ไหน ทางออกของเราก็คือหันมาใช้ซอฟต์แวร์ open-source ให้มากขึ้น

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

open source ความเคลื่อนไหวที่ใกล้เข้ามา

open-source เป็นแนวทางที่วงการคอมพิวเตอร์ดำเนินกันมานานแล้ว และจะยังคงรักษาเส้นทางนี้อีกต่อไป ในระยะสั้น คุณจะเห็นคำว่า open-source บ่อยขึ้น คุณจะได้สัมผัสกับซอฟต์แวร์ open-source ในเครื่องของคุณอย่าง Netscape Communicator 5.0, Linux, X Windows หรือ KOffice ที่ผ่านมาคุณได้เห็นบริษัทใหญ่ ๆ อย่าง IBM, Sun หรือ Netscape หันมา open-source และแจกฟรีโปรแกรมของตน ต่อไปคุณจะได้เห็นบริษัทใหญ่ ๆ ทำอย่างนี้มากขึ้น ไม่ว่าจะเป็น Intel, HP หรือแม้แต่ไมโครซอฟท์เองก็ตาม คุณจะมีซอฟต์แวร์ open-source ใช้มากขึ้น และคุณจะไม่ต้องตกอยู่ในวังวนของซอฟต์แวร์ปิดเช่นเดิมอีกต่อไป²

²http://ccs.sut.ac.th/2012/index.php/helpdesk/helpdesk-faqs/244-help-191105

อ่านบทความทั้งหมด >>> pangpond.com