วันพฤหัสบดีที่ 27 พฤศจิกายน พ.ศ. 2551

Linux ไม่ใช่ Windows

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


ปัญหาข้อที่ ๑ : ลินุกซ์ไม่เหมือนวินโดวส์ซะทีเดียว

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

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

ซึ่งนั่นก็ก่อให้เกิดปัญหา

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

หลาย ๆ คนก็มองข้ามข้อเท็จจริงนี้ไป และเชื่อว่า ความแตกต่างระหว่างสองระบบปฏิบัติการ เป็นความผิดพลาดของลินุกซ์

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

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

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

มันประสบความสำเร็จเพราะว่ามันดีกว่า IE และที่มันดีกว่าได้ก็เพราะว่ามันแตกต่าง
มันมี tab, live bookmarks, searchbar ในตัว, สนับสนุน PNG, adblock extensions, และสิ่งที่ยอดเยี่ยมอื่น ๆ อีก
ฟังก์ชั่น "การค้นหา" ที่มี toolbar ปรากฎด้านล่าง และมองหาคำที่ตรงกันในขณะที่คุณพิมพ์ อีกทั้งเปลี่ยนเป็นสีแดงหากไม่พบคำที่คุณค้นหา
IE ไม่มีแท๊บ, ไม่มีฟังก์ชั่น RSS, searchbar extension มีของ third-party เท่านั้น และไดอะล๊อกการค้นหาที่ต้องกดปุ่ม OK เพิ่มเริ่มทำการค้นหา และต้องกดปุ่ม OK อีกครั้งเมื่อไม่พบคำค้นหา

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

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

--------------------------------------------------------------------------------

ปัญหาข้อที่ ๒ : ลินุกซ์แตกต่างจากวินโดวส์มากเกินไป

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

ในขณะที่วินโดวส์แบบแกะจากกล่อง ทางผู้ใช้จะได้หน้าตาเดสก์ทอปแบบคลาสสิค หรือแบบ XP
พร้อมทั้งโปรแกรม Wordpad, Internet Explorer, และ Outlook Express ติดตั้งมาให้แล้ว

สำหรับลินุกซ์แบบแกะจากกล่อง ผู้ใช้จะมีดิสโทรฯเป็นร้อย ๆ ให้เลือก อีกทั้งเลือกได้ระหว่าง Gnome หรือ KDE หรือ Fluxbox หรืออะไรก็แล้วแต่
พร้อมด้วยโปรแกรม Vi หรือ Emacs หรือ Kate โปรแกรม Konqueror หรือ Opera หรือ Firefox หรือ Mozilla และอีกมากมายหลายอย่าง

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

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

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

นั่นมันก็จริง
....แต่ คุณไม่เห็นหรือว่า บางคนก็ไม่ได้ขับรถ แต่พวกเขาขี่มอเตอร์ไซค์

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

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

แต่พวกมันใช้รากฐานที่ต่างกันเพื่อจะทำเช่นนั้น

วินโดวส์ (รถยนต์) ไม่ปลอดภัยจากเหล่าไวรัส (โจรลักรถ) นอกเสียจากคุณทำการติดตั้งโปรแกรม Antivirus (ล๊อกประตู)
ลินุกซ์ (มอเตอร์ไซค์) ไม่มีไวรัส (ประตู) ดังนั้นมันจึงปลอดภัยโดยที่คุณไม่จำเป็นต้องทำการติดตั้งโปรแกรม Antivirus (ล๊อกประตู)

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

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

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

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

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

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

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

--------------------------------------------------------------------------------

ปัญหาข้อที่ ๓ : วัฒนธรรมที่แตกต่าง

ปัญหาย่อยข้อที่ ๓ ก : วัฒนธรรมที่ว่า มันมีอยู่จริง

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

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

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

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

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

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


ปัญหาย่อยข้อที่ ๓ ข : ใหม่เจอเก่า

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

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

และไม่แปลกที่จะเกิดความไม่ลงรอยระหว่างสองฝ่าย สิ่งสำคัญคือต้องระลึกไว้เสมอว่า ทั้งสองฝ่ายไม่ได้มีเจตนามุ่งร้ายแก่กัน แต่การขาดความเข้าใจต่อกันต่างหาก ที่ก่อให้เกิดปัญหา

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

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

เพื่อจะให้เห็นตัวอย่างได้ง่าย ลองนึกถึงเรื่องของเล่นตัวต่อ Lego

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

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

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

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

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

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

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

--------------------------------------------------------------------------------

ปัญหาข้อที่ ๔ : ออกแบบมาเพื่อผู้ออกแบบ

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

และเช่นเดียวกัน ในวงการอุตสาหกรรมซอฟต์แวร์ ส่วนติดต่อกับผู้ใช้ - user interface (UI) นั้น มักจะไม่ได้ถูกสร้างมาโดยผู้ที่เขียนซอฟต์แวร์

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

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

อย่างไรก็ตาม มันมีความแตกต่างสำคัญอยู่ ระหว่างผู้เขียน FOSS (Free and Open Source Software) และผู้เขียนซอฟต์แวร์เชิงพาณิชย์

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

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

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

และหากคุณกำลังใช้ซอฟต์แวร์ที่อยู่ในช่วงแรกๆ ของการสร้างแล้วล่ะก็ การปรับปรุง interface ให้เป็นมิตรกับผู้ใช้ จะเป็นสิ่งที่คุณจะเห็นแค่ในลิสต์ "ToDo" เท่านั้น เพราะการใช้งานได้จริงต้องมาก่อน
ไม่มีใครที่ออกแบบ interface ให้หน้าตาสุดยอดก่อน แล้วค่อยเพิ่มฟังก์ชั่นการทำงานเข้าไปทีล่ะนิด ๆ หรอก
พวกเขาสร้างฟังก์ชั่นการทำงานก่อน และจากนั้นค่อยพัฒนา interface ทีละนิด ในภายหลังกันทั้งนั้น

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

--------------------------------------------------------------------------------

ปัญหาข้อที่ ๕ : ปริศนาแห่ง "การเป็นมิตรต่อผู้ใช้"

เรื่องนี้เป็นเรื่องใหญ่เลย "การเป็นมิตรต่อผู้ใช้" เป็นคำที่มีความสำคัญเป็นอย่างมากในโลกคอมพิวเตอร์ มันเป็นชื่อของ webcomic ที่ค่อนข้างดี แต่มันเป็นคำที่แย่

แนวคิดโดยพื้นฐานนั้นดี ในการที่ซอฟต์แวร์ถูกออกแบบมาโดยคำนึงถึงความต้องการของผู้ใช้ แต่มันมักจะถูกตีความในความหมายเดียว ซึ่งไม่ถูกต้อง

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

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

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

คำตอบอย่างง่าย ๆ ก็คือ คำว่า "เป็นมิตรต่อผู้ใช้" นั้น เป็นชื่อที่ไม่เหมาะสม

"เป็นมิตรต่อผู้ใช้" หมายความว่าอย่างไรกันแน่ ?

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


ปัญหาย่อยข้อที่ ๕ ก : คุ้นเคยคือเป็นมิตร

ในโปรแกรม text editor และ word processor ที่ "เป็นมิตรต่อผู้ใช้" ส่วนมาก คุณจะ Cut และ Paste โดยการกด Ctrl-X และ Ctrl-V
ในความจริงแล้ว มันไม่เป็นธรรมชาติเสียเลย แต่ทุกคนก็เคยชินกับการกดแบบนี้ ดังนั้นพวกเขาถึงนับว่ามันเป็นคีย์ลัดที่ "เป็นมิตร"

ดังนั้นเมื่อตอนที่ใครสักคนมาใช้โปรแกรม vi และพบว่าปุ่ม "d" คือการ Cut และ "p" คือการ Paste มันไม่ถือว่าเป็นมิตร มันไม่ใช่สิ่งที่ทุกคนคุ้นเคย
มันดีกว่าหรือ? อันที่จริงคงต้องตอบว่าใช่

ด้วยวิธีการกด Ctrl-X คุณจะทำการ Cut คำได้อย่างไรจากเอกสารที่คุณทำอยู่ โดยไม่ต้องใช้เมาส์ ?
จากจุดเริ่มต้นของคำ
1. กด Ctrl-Shift-Right เพื่อเลือกคำ
2. จากนั้นก็กด Ctrl-X เพื่อทำการ Cut

วิธีในแบบของโปรแกรม vi น่ะหรือ ?
1. กด "dw" เพื่อลบคำ

แล้วถ้าหากทำการ Cut คำสักห้าคำ ด้วยวิธีในแบบ Ctrl-X ล่ะ ?
1. จากจุดเริ่มต้นของกลุ่มคำ กด Ctrl-Shift-Right
2. Ctrl-Shift-Right
3. Ctrl-Shift-Right
4. Ctrl-Shift-Right
5. Ctrl-Shift-Right
6. Ctrl-X

แล้วหากทำในแบบ vi ล่ะ?
1. กด "d5w"

เห็นได้เลยว่า วิธีในแบบของ vi นั้นปรับตัวได้ง่ายกว่า และเป็นธรรมชาติมากกว่า
"X" และ "V" ไม่ได้เป็นที่ชัดแจ้ง หรือสื่อความหมายถึงคำสั่ง "Cut" และ "Paste"
ในขณะที่ "dw" นั้นเข้าใจได้ง่าย ว่าสำหรับทำการลบคำ (delete a word) ส่วน "p" เพื่อทำการ Paste ก็ค่อนข้างตรงตัว

แต่ "X" และ "V" เป็นสิ่งที่เรารู้จักกันดีกว่า
ดังนั้นในขณะที่ vi เหนือกว่าเห็น ๆ มันกลับไม่เป็นที่คุ้นเคย มันจึงถูกหาว่าไม่เป็นมิตร

หากไม่ยึดตามพื้นฐานใดเลย ความคุ้นเคยทั้งมวล ทำให้ interface ที่เหมือนวินโดวส์ดูเหมือนจะเป็นมิตร และดั่งที่เราได้เรียนรู้กันไปในปัญหาข้อที่ ๑ แล้ว
ลินุกซ์มีความจำเป็นที่จะต้องแตกต่างจากวินโดวส์ และอย่างหลีกเลี่ยงไม่ได้
ลินุกซ์จึงมักจะกลายเป็นดู "เป็นมิตรต่อผู้ใช้" น้อยกว่าวินโดวส์

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


ปัญหาย่อยข้อที่ ๕ ข : ไร้ประสิทธิภาพคือเป็นมิตร

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

หากว่าผู้ที่เป็นมือใหม่ทางด้านคอมพิวเตอร์ถูกจับมานั่งหน้า word processor แบบ WYSIWYG และขอให้เขาลองทำให้ข้อความเป็นตัวหนาดู มันจะออกมาประมาณว่า
• เขาจะเดาว่าการกด Ctrl-B เป็นมาตรฐานโดยทั่วไป
• เขาจะมองหาคำใบ้ และพยายามคลิกที่เมนู "Edit" ไม่สำเร็จ แล้วเขาก็จะพยายามในเมนูถัดไปที่น่าจะใช่ เมนู "Format" เมนูนี้มีออปชั่น "Font" ซึ่งดูว่าน่าจะใช่ และนั่นไง! ออปชั่น "Bold" ที่ตามหา ประสบความสำเร็จ!

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

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

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

นี่อาจจะดูเหมือนเป็นข้ออ้าง แต่ท้ายที่สุด โปรแกรม MS Word มีทั้งเมนูที่เป็นมิตร มีปุ่ม toolbar และมีคีย์ลัด
นั่นดีที่สุดแล้วจริงไหม ทั้งเป็นมิตร และทั้งมีประสิทธิภาพ

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

ลำดับที่สอง มันยังไม่ถือว่าอยู่ในสารบบของ power-users
นักเขียนมืออาชีพน้อยคนที่จะใช้ MS Word เคยเห็นโปรแกรมเมอร์ที่ใช้ MS Word ไหม เปรียบกับจำนวนที่ใช้ Emacs และ vi

ทำไมจึงเป็นเช่นนี้ ?
ลำดับแรก เพราะพฤติกรรมที่ "เป็นมิตร" บางอย่าง ทำให้พฤติกรรมเพื่อประสิทธิภาพหายไป ดั่งตัวอย่าง "Cut&Copy" ด้านบน
ลำดับที่สอง เพราะฟังก์ชั่นการทำงานของโปรแกรม Word ส่วนใหญ่ถูกฝังอยู่ภายใต้เมนู
เฉพาะฟังก์ชั่นการทำงานทั่ว ๆ ไปเท่านั้นที่จะมีปุ่มเล็ก ๆ อยู่บน toolbar
ฟังก์ชั่นการทำงานที่ถูกใช้ไม่บ่อยเท่า แต่ก็ยังสำคัญสำหรับผู้ใช้อย่างจริงจังนั้นใช้เวลามากเกินไปในการจะเข้าถึงผ่านเมนู

อย่างไรก็ตาม สิ่งที่ควรทราบเอาไว้ก็คือ "ล้อกันล้ม" นั้นมักจะมีเป็น "ออปชั่นพิเศษ" สำหรับซอฟต์แวร์ลินุกซ์
มันอาจจะไม่โจ่งแจ้ง แต่ส่วนมากแล้วมันจะมีอยู่ ดูโปรแกรม mplayer เป็นตัวอย่าง
คุณสามารถเล่นไฟล์วิดีโอด้วยการพิมพ์ mplayer ตามด้วยชื่อไฟล์ใน terminal คุณสามารถเร่งเดินหน้า หรือถอยหลังด้วยปุ่มลูกศร และปุ่ม PageUp และ PageDown นี่เรียกว่า "เป็นมิตรต่อผู้ใช้" ไม่มากนัก
อย่างไรก็ตาม หากคุณพิมพ์ gmplayer ตามด้วยชื่อไฟล์แทน คุณก็จะได้ graphical frontend พร้อมกับปุ่มต่าง ๆ ที่เป็นมิตรและคุ้นเคยมากกว่า

จะลองยกการ rip CD ไปเป็น MP3 (หรือ Ogg) เป็นตัวอย่างก็ได้
หากใช้ command-line คุณต้องใช้ cdparanoia เพื่อ rip ไฟล์จากแผ่นดิสก์ แล้วคุณก็ยังต้องใช้ encoder อีกด้วย
มันยุ่งยาก ต่อให้คุณรู้ว่าจะใช้แพคเกจอย่างไรก็เถอะ ดังนั้นลองดาวน์โหลด และติดตั้งโปรแกรมอย่างเช่น Grip ซึ่งเป็น graphical frontend ที่ใช้งานง่าย
ซึ่งใช้ cdparanoia และเหล่า encoders ทำงานให้ อยู่เบื้องหลัง เพื่อให้ง่ายต่อการ rip CDs มันมีแม้กระทั่งการสนับสนุน CDDB เพื่อสร้างชื่อไฟล์ให้คุณโดยอัตโนมัติ

เช่นเดียวกับการ rip DVDs ที่จำนวนของออปชั่นที่ต้องใช้กับ transcode นั้นราวกับฝันร้าย
แต่การใช้ dvd::rip เพื่อติดต่อกับ transocde ให้กับคุณ ทำให้เรื่องทั้งหมดเป็นเรื่องง่าย ด้วยการทำงานผ่าน GUI ที่ใคร ๆ ก็ทำได้

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

--------------------------------------------------------------------------------

ปัญหาข้อที่ ๖ : การเลียนแบบ กับ การมาบรรจบกัน

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

1. ลินุกซ์เปลี่ยนจาก command-line มาเป็น interface แบบ graphics-based เป็นความพยายามอย่างเห็นได้ชัดในการจะเลียนแบบวินโดวส์

เป็นทฤษฎีที่ดี แต่ผิดถนัด
ระบบ X window ดั้งเดิมถูกนำมาใช้เมื่อปี ค.ศ. 1984 เพื่อทดแทนระบบ W window และถูกนำไปใช้ใน Unix ในปี ค.ศ. 1983
วินโดวส์ 1.0 ถูกวางตลาดในปี ค.ศ. 1985 วินโดวส์ยังไม่ประสบความสำเร็จจนกระทั่งในเวอร์ชั่น 3 ซึ่งวางตลาดในปี ค.ศ. 1990
ในช่วงเวลานั้น X windows มีมาก่อนหลายปีแล้ว และถูกปรับปรุงมาเป็น X11 ที่เราใช้กันทุกวันนี้ ส่วนตัวลินุกซ์เอง ก็เพิ่งเริ่มในปี ค.ศ. 1991
ดังนั้นลินุกซ์ไม่ได้สร้าง GUI มาเพื่อเลียนแบบวินโดวส์ มันแค่ใช้ GUI ที่มีอยู่แล้ว ก่อนการกำเนิดของวินโดวส์เสียอีก


2. วินโดวส์ 3 ปูทางให้กับวินโดวส์ 95 มีการเปลี่ยนแปลงครั้งใหญ่ในเรื่องของ UI ซึ่งทำให้ไมโครซอฟต์ไม่มีใครเทียบได้นับตั้งแต่นั้น มันมีคุณลักษณะใหม่ที่สร้างสรรค์ ฟังก์ชั่นการทำงานแบบ Drag & Drop, taskbars และอื่น ๆ แน่นอน ทั้งหมดนี้ซึ่งถูกเลียน

แบบโดยลินุกซ์

อันที่จริงแล้วผิด ที่กล่าวมาด้านบนนี้มีมาก่อนที่ไมโครซอฟต์จะทำมันเสียอีก โดยเฉพาะ NeXTSTeP ซึ่งเป็น GUI ที่ก้าวหน้าเป็นอย่างมากในขณะนั้น
และมันก็มีมาก่อน Win95 อย่างแน่นอน เวอร์ชั่น 1 ถูกปล่อยออกมาในปี ค.ศ. 1989 และเวอร์ชั่นสุดท้ายในปี ค.ศ. 1995


3. เอาล่ะ เอาล่ะ สรุปว่าไมโครซอฟต์ไม่ได้เป็นคนคิดคุณลักษณะที่เราคิดว่ามันเป็นรูปลักษณ์ และความรู้สึกของวินโดวส์ แต่ยังไงมันก็ยังเป็นคนสร้างรูปลักษณ์ และความรู้สึก และลินุกซ์พยายามจะเลียนแบบมันตั้งแต่นั้นเป็นต้นมา

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

เช่นเดียวกัน มันเป็นความจริงโดยแท้ หากดูที่เดสก์ทอปลินุกซ์ยุคแรก ๆ แล้วจะเห็น FVWM และ TWM และ GUI แบบง่าย ๆ อื่น ๆ
และก็มาดูที่เดสก์ทอปลินุกซ์สมัยใหม่ และจะได้เห็น Gnome และ KDE พร้อม taskbars และเมนู และเหล่าลูกเล่นต่าง ๆ
และก็ใช่ มันจริงที่จะพูดว่ามันดูเหมือนวินโดวส์มากกว่าที่มันเคยเป็นมาก่อน
แต่ก็นั่นแหละ เช่นเดียวกับวินโดวส์ ในวินโดวส์ 3.0 เท่าที่ผมจำได้มันไม่มี taskbar และก็ Start menu เหมือนกัน

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

--------------------------------------------------------------------------------

ปัญหาข้อที่ ๗ : เรื่องของ FOSS

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

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

และก็มาถึง FOSS ซึ่งแม้แต่ทุกวันนี้เกือบทั้งหมดนั้นไม่ใช่เชิงพาณิชย์
ก่อนที่คุณจะเริ่มเข้าโปรแกรมอีเมลไคลเอนท์ของคุณ และเริ่มส่งเมลล์ มาบอกผมเกี่ยวกับ Red Hat, Suse, Linspire และโปรแกรมเชิงพาณิชย์อื่น ๆ
คำตอบคือ ใช่ ผมรู้ว่าพวกเขา "ขาย" ลินุกซ์
ผมรู้ว่าพวกเขาคงชอบที่จะเห็นลินุกซ์ถูกใช้งานอย่างแพร่หลาย โดยเฉพาะอันที่เป็นของพวกเขาเอง
แต่อย่าสับสนระหว่างผู้ค้า กับผู้ผลิต
เคอร์เนลลินุกซ์ไม่ได้ถูกสร้างมาโดยบริษัท และไม่ได้ถูกดูแลโดยกลุ่มบุคคลที่แสวงหาผลกำไรจากมัน
หรือระบบ X11 windowing system หรือที่รู้จักกันในนาม xorg ในปัจจุบัน ตรงส่วนของ ".org" คงบอกสิ่งที่คุณต้องการจะรู้ได้เป็นอย่างดี
ส่วนของเดสก์ทอปซอฟต์แวร์ คุณอาจจะยกกรณีของ KDE เป็นเชิงพาณิชย์ได้ เนื่องจากมันเป็น Qt-based (แต่ ณ ปัจจุบันที่แปลบทความนี้ Qt เป็นโอเพ่นซอร์สมาได้เป็นเวลาพอสมควรแล้ว)
แต่อย่าง Gnome, Fluxbox, Enlightment, ฯลฯ ล้วนเป็นซอฟต์แวร์ไม่แสวงหาผลกำไร

มันมีคนที่ขายลินุกซ์เหมือนกัน แต่นั่นก็เป็นส่วนน้อย

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

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

ผู้ใช้ลินุกซ์หน้าใหม่ ๆ เปลี่ยนมาใช้ลินุกซ์หลังจากที่ใช้ชีวิตอยู่กับระบบปฏิบัติการที่ความต้องการของผู้ใช้คืออำนาจสูงสุด คำว่า "เป็นมิตรต่อผู้ใช้" และ "ลูกค้าคือพระเจ้า" เป็นเหมือนจอกศักดิ์สิทธิ์
จู่ ๆ ก็พบว่าพวกเขาใช้ระบบปฏิบัติการที่ยังคงพึ่ง ไฟล์ 'man', เหล่า command-line, การปรับแต่งไฟล์ด้วยมือ, และ Google
เมื่อพวกเขาบ่น พวกเขาก็ไม่ได้รับการประคบประหงม หรือคำมั่นสัญญาในสิ่งที่ดีกว่า พวกเขาได้การขับไสไล่ส่ง

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

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

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

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

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

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

มันเป็นเรื่องที่ดี แต่มันไม่ใช่จุดประสงค์
จุดประสงค์คือการทำให้ลินุกซ์เป็นระบบปฏิบัติการที่ดีที่สุด ที่ชุมชนจะสามารถทำได้ ไม่ใช่สำหรับคนอื่น แต่สำหรับตัวชุมชนเอง

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

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

หากว่าคุณต้องการแค่วินโดวส์ที่ไม่มีเหล่ามัลแวร์ และปัญหาทางด้านความปลอดภัย
หาอ่านบทความเรื่องความปลอดภัย ติดตั้งไฟร์วอลล์ดี ๆ ตัวตรวจจับมัลแวร์ และโปรแกรม anti-virus เปลี่ยนจาก IE เป็นบราวเซอร์ที่มีความปลอดภัยมากกว่า
และพยายามติดตามการอัพเดทด้านความปลอดภัย มันมีคน (ซึ่งรวมถึงตัวผมเอง) ที่ใช้วินโดวส์มาตั้งแต่เวอร์ชั่น 3.1 จนมาถึง XP โดยไม่เคยติดไวรัสหรือมัลแวร์เลย คุณก็สามารถทำได้เช่นกัน
อย่าใช้ลินุกซ์ มันจะล้มเหลวโดยสิ้นเชิงในการจะเป็นสิ่งที่คุณต้องการให้มันเป็น

หากว่าคุณต้องการความปลอดภัย และประสิทธิภาพของระบบปฏิบัติการแบบ Unix-base จริง ๆ แต่มีการให้ความสำคัญกับลูกค้า และ interface ที่เป็นที่รู้จัก
ซื้อ Apple Mac ซะ OS X นั้นดีเยี่ยม แต่อย่าใช้ลินุกซ์ มันจะไม่ทำในสิ่งที่คุณต้องการให้มันทำ

ไม่ใช่เพียงแค่ "ทำไมฉันควรจะต้องการลินุกซ์?" มันยังเป็นเรื่องของ "ทำไมลินุกซ์ควรจะต้องการฉัน?" ด้วย



เรียบเรียงใหม่ จากผลงานการแปลจากบทความดั้งเดิม Linux is NOT Windows (
http://linux.oneandoneis2.org/LNW.htm)
แปลไทยจาก http://sleekslack.com/node/20

วันอังคารที่ 25 พฤศจิกายน พ.ศ. 2551

คำสั่ง และการใช้งานโปรแกรม VI - Editor

วันนี้ พยายามหัดใช้ vi แล้วค้นๆไปในเครื่องเจอไฟล์เก่าๆอันนึง ก๊อปมาจากไหนไม่รู้ เลยเอามาโพสต์เก็บไว้ จะได้ไว้เปิดดูเวลาอยู่นอกบ้าน

เอาล่ะ เข้าบทความได้แล้ว

...

ในระบบยูนิกซ์ทั่วไปจะต้องมีเครื่องมือสำหรับเอาไว้ตกแต่งแก้ไขไฟล์เอกสาร ประจำไว้อยู่ตัวหนึ่ง ซึ่งก็คือ vi (อ่านว่า วี-ไอ) ในตอนเริ่มแรกของการ ใช้งาน vi แทบทุกคนจะบอกว่า การใช้งานและการทำความเข้าใจนั้นยาก กว่า Editor ที่เป็นพวก Pulldown Menu Driven บนดอส เช่นพวก เวิร์ด จุฬาฯ หรือ Q-Editor มาก (ในยูนิกซ์จะเป็นพวก Emacs หรือ pico)

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

วิธีการใช้งานอย่างคร่าวๆ

vi จะมีรูปแบบการใช้งาน (mode) อยู่สามแบบคือ
Command mode
Insert mode
Last line mode




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

h เลื่อน cursor ไปทางซ้ายทีละตัวอักษร
j เลื่อน cursor ลง 1 บรรทัด
k เลื่อน cursor ขึ้น 1 บรรทัด
l (แอล) เลื่อน cursor ไปทางฃวาทีละตัวอักษร
w เลื่อน cursor ไปทางฃวาทีละคำ
b เลื่อน cursor ไปทางซ้ายทีละคำ
$ เลื่อน cursor ไปท้ายบรรทัด
0 (ศูนย์) เลื่อน cursor ไปต้นบรรทัด
nG ไปยังบรรทัดที่ n หากไม่ใส่ n จะไปบรรทัดสุดท้าย
Ctrl+f เลื่อนหน้าจอไปข้างหน้า (เลื่อนลง) ทีละหน้า
Ctrl+b เลื่อนหน้าจอถอยหลัง (เลื่อนขึ้น) ทีละหน้า
Ctrl+d เลื่อนหน้าจอไปข้างหน้า (เลื่อนลง) ทีละครึ่งหน้าจอ
Ctrl+u เลื่อนหน้าจอถอยหลัง (เลื่อนขึ้น) ทีละครึ่งหน้าจอ
Ctrl+L Refresh หน้าจอ
[[ ไปยังต้นไฟล์
]] ไปยังท้ายไฟล์
yy Copy ข้อความทั้งบรรทัด
yw Copy ข้อความทั้งคำ
yG Copy ถึงท้ายไฟล์
y$ Copy ถึงท้ายบรรทัด
p (เล็ก) Paste หลัง cursor
P (ใหญ่) Paste หน้า cursor
cw พิมพ์ทับทีละ word
c$ พิมพ์ทับจนถึงท้ายบรรทัด
cG พิมพ์ทับจนถึงท้ายไฟล์
r พิมพ์ทับทีละ 1 ตัว
R พิมพ์ทับจนกว่าจะกด Esc
u Undo การกระทำครั้งล่าสุด
x (เล็ก) ลบตรง cursor
X (ใหญ่) ลบหน้า cursor
dw ลบคำ
dd ลบทั้งบรรทัด
d$ ลบจากตำแหน่ง cursor จนท้ายบรรทัด
d0 (ดีศูนย์) ลบจากตำแหน่ง cursor จนต้นบรรทัด
dG ลบจากตำแหน่ง cursor จนท้ายไฟล์




Insert mode
ในโหมดนี้เป็นโหมดที่ทำให้คุณสามารถทำการแก้ไขข้อความหรือพิมพ์ ข้อความลงไปได้ คุณสามารถเปลี่ยนจาก Command mode เข้ามาอยู่ ใน Insert mode ได้โดยการกดปุ่ม " i " หรือปุ่มอื่นๆ ที่ใช้ได้ (ดูด้าน ล่าง) และคุณก็จะสามารถพิมพ์ข้อความต่างๆ ได้ และเมื่อคุณต้องการจะกลับไป ยัง Command mode อีกที คุณก็สามารถทำได้โดยการ กดปุ่ม " Esc " ตัวอักษรที่ ใช้ใน mode นี้ที่สำคัญได้แก่

Key ความหมาย / ผลการใช้
a เพิ่มข้อมูลต่อจาก cursor
A เพิ่มข้อมูลต่อจากท้ายบรรทัด
i เพิ่มข้อมูลหน้า cursor
I (ไอใหญ่) เพิ่มข้อมูลที่ต้นบรรทัด
o (โอเล็ก) แทรกบรรทัดด้านล่าง cursor
O (โอใหญ่) แทรกบรรทัดด้านบน cursor




Last line mode
จะเป็นโหมดที่อนุญาตให้คุณสามารถ ใช้คำสั่งเพิ่มเติมของ vi ได้ โดย คุณจะต้องกดปุ่ม " : " (โค-ลอน) ซึ่ง vi จะแสดงเป็นพร้อมต์ รอรับคำสั่งอยู่ ด้านล่างสุด ของจอภาพ คุณสามารถทำการสั่งโดยการพิมพ์คำว่า " wq " แล้ว กด Enter เพื่อทำการบันทึกข้อความลงไฟล์ แล้วออกจาก โปรแกรม vi เป็นต้น นอกจากนี้ยังมี คำสั่งอื่นๆ อีก ดังนี้..

Key ความหมาย / ผลการใช้
:q ออกจากโปรแกรม
:w บันทึก
:wq บันทึกแล้วออกจากโปรแกรม
:w! filename บันทึกไฟล์ทับ filename
:e! filename open filename
:/string ค้นหาข้อความที่ต้องการ โดย string คือข้อความที่ต้องการ
:help ดูคำสั่งต่างๆ
:set nu แสดงหมายเลขบรรทัด
:set nonu ไม่แสดงหมายเลขบรรทัด
:set window=20 กำหนดขนาดหน้าต่างของ vi กรณีนี้กำหนดเป็น 20 บรรทัด
:set all ตรวจสอบค่าของ option หลังคำสั่ง set ทั้งหมดที่มีอยู่




การเริ่มใช้งาน vi
คุณสามารถเริ่มต้นการใช้งาน vi ได้โดยใช้คำสั่ง

vi (filename)

โดยที่ filename คือชื่อไฟล์ที่คุณต้องการจะบันทึกข้อความ ตัวอย่างเช่น

vi lab2a.c

จะเป็นการสร้างไฟล์ที่ชื่อ lab2a.c ขึ้นมา แต่หากมีไฟล์นี้อยู่แล้วก็จะทำ การอ่านข้อความที่มีอยู่ในไฟล์นี้ขึ้นมา ในตัวอย่างนี้เราจะถือว่าเป็นการ สร้างไฟล์ใหม่ขึ้นมา และสำหรับในระบบ Unix นี้คุณสามารถสร้างไฟล์ ที่ไม่มี นามสกุลได้เช่น

vi out_test

ก็จะได้ไฟล์ชื่อว่า out_test


การคอมไพล์

เมื่อคุณเขียนโปรแกรมใน vi แล้วต้องการดูผลของโปรแกรมก็สามารถ คอมไพล์ ได้โดยการใช้คำสั่ง

gcc -o File Source

โดย File หมายถึงชื่อไฟล์ที่คุณต้องการหลังจากคอมไพล์แล้ว ส่วน Source ก็ คือไฟล์ .c ที่เขียนไว้ ... หลังจากใช้คำสั่งนี้แล้ว คุณจะได้ไฟล์ เพิ่ม มา ลองดูตัวอย่าง

gcc -o program lab2a.c

ตัวอย่างนี้ คุณจะได้ไฟล์ program* เพิ่มขึ้นมา และคุณสามารถรันโปรแกรมที่ได้มานี้โดยการพิมพ์ว่า

./program (จุด + สแลซ + ชื่อไฟล์)

...

จบบทความแล้วนะคร๊าบ บะบาย

สวัสดี,ชาวโลก!

ตามธรรมเนียมเด็กเล่นคอมฝึกหัดก็ต้องเริ่มด้วยการ

สวัสดี,ชาวโลก!

มันเหมือนเป็นคาถามหามงคลหรือยังไงไม่ทราบ

ถ้าเปิดครั้งแรกไม่กล่าวประโยคนี้ เหมือนขาดอะไรบางอย่าง


เอ้า! นอกเรื่องใหญ่ละ เข้าเรื่องเข้าเรื่อง

บล็อกเนี้ย ตั้งขึ้นมาก็ไม่มีไรหรอก ก็กะว่า จะเอาไว้ติดตามความคืบหน้าของตัวข้าพเจ้าเอง

ในการหัดใช้ OS สายพันธุ์ Unix

(แต่น่าจะใช้เป็นพวกลูกหลานในสาย Linux ซะมากกว่า แหะๆ)


เอ้อ! เกือบลืม เดี๋ยวจะมีใครสงสัยว่าทำไมตั้งชื่อ บล็อกว่า UN9KuNG

ก็จะบอกง่ายๆ ว่า UN9 ก็มาจากคำว่า UNIX น่ะแหละครับ แต่ IX ในภาษาโรมัน คือ เลข 9

ส่วน KuNG ก็แค่ใส่ให้ดูน่ารักๆ แค่นั้นแหละ แหะๆ



ไงก็เป็นกำลังใจให้ข้าพเจ้ใช้ UNIX คล่องวันคล่องคืน นะคร๊าบบบบบบบ ^ ^