วันอาทิตย์ที่ 11 กรกฎาคม พ.ศ. 2553

อาหารต้องห้าม3อย่างของสุนัข

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



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

กระดูกไก่ ปลา
หากไม่จำเป็นคุณไม่ควรให้กระดูกไก่ ปลา ให้เจ้าสุนัขของคุณกินโดยเด็ดขาด แม้ว่าเจ้าสุนัขของคุณจะชื่นชอบอาหารเหล่านี้เพียงใด เพราะ กระดูกไก่ ก้างปลา อาจแตกหักระหว่างที่สุนัขขบเคี้ยวสร้างมุมแหลม และความแหลมนี่เองอาจทิ่มแทงทำอันตรายสุนัขของคุณได้ ผู้เลี้ยงหลายคนให้เหตุผลในการให้อาหารเหล่านี้แก่สุ นัขว่า ต้องการให้แคลเซียมแก่สุนัข ซึ่งความจริงแล้วผู้เลี้ยงสามารถให้เม็ดแคลเซียม หรือนมอุ่นๆแก่สุนัขแทนได้
ทั้งนี้หมายรวมถึงอาหารที่มีลักษณะเป็นของมีคมขนาดเล ็กอื่นๆ เช่น ส่วนหางของกุ้ง เพื่อนของผู้เขียนเคยสูญเสียสุนัขจากกรณีดังกล่าวมาแ ล้ว เนื่องจากไปเที่ยวทะเลซื้ออาหารทะเลมารับประทานที่บ้ าน พอเหลือก็นำมาให้สุนัขกินอย่างไม่รู้เท่าทัน ผลปรากฏว่าสุนัขกินส่วนหางของกุ้งเข้าไปติดคอเสียชีวิต
หัวหอมและกระเทียม
ไม่ควรให้สุนัขรับประทานในปริมาณมาก เพราะหัวหอมและกระเทียม มีส่วนประกอบของกำมะถันอยู่มาก เพราะฉะนั้นไม่เหมาะแก่การผสมในอาหารให้กับเจ้าตูบ เนื่องจากว่า สารกำมะถันนี้จะทำลายเซลล์เม็ดเลือดแดงของเจ้าสุนัข จะทำให้โรคโลหิตจาง และโรคเลือดไหลไม่หยุดได้
ช็อคโกแลต
หลายคนเคยให้ช็อคโกแลตกับสัตว์เลี้ยงของท่าน โดยไม่รู้ว่าช็อคโกแลตเหล่านี้ส่งผลร้ายต่อสุนัข สาเหตุเพราะช็อคโกแลตมีส่วนประกอบของสารชนิดหนึ่งชื่ อว่า theobromine ซึ่งเป็นกลุ่มเดียวกับ สารพวก caffeine(ซึ่งมีในพวกกาแฟ โกโก้) สาร theobromine นี้เมื่ออยู่ในร่างกายมันจะมีฤทธิ์หลายอย่าง แต่ที่เห็นเด่นๆชัด คือ จะกระตุ้นให้มีการหลั่งสารที่เรียกกันว่า adrenaline ซึ่งสารตัวนี้จะมีผลทำให้หัวใจเต้นเร็ว เหงื่อออกมาก ถ้ากินมากๆอาจถึงขั้นเป็นพิษได้จะทำให้เกิด อาการ อาเจียน ท้องเสีย หายใจถี่ ฉี่บ่อย กระวนกระวาย และในที่สุดก็ถึงตายได้ มีรายงานในสุนัขบอกว่า ในสุนัขที่น้ำหนักไม่เกิน 5 กก. กินเข้าไปแค่ 400 มก. ก็สามารถแสดงความเป็นพิษได้ การที่สุนัขค่อนข้างจะไวต่อความเป็นพิษของ theobromine นั้นเป็นเพราะว่าร่างกายของมันไม่สามารถที่จะกำจัด theobromine ออกจากร่างกายได้รวดเร็วเหมือนกับสัตว์ชนิดอื่น ตามปกติช็อคโกแลตที่ขายในท้องตลาด ถ้าเป็นแบบหวานจะมี theobromine อยู่ประมาณ 1.5 มก ต่อ ซีซี แต่ถ้าเป็นแบบไม่หวานจะมีประมาณ 13 มก. ต่อ ซีซี


ที่มา : www.bloggang.com

วันพุธที่ 7 กรกฎาคม พ.ศ. 2553

เทคนิคเปิดพัดลม-แอร์ให้ประหยัดพลังงาน



desk-fan.jpg

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

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


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


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

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


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

หากต้องการความรู้ เรื่องอนุรักษ์พลังงาน พลังงานทดแทนเพิ่มเติม สามารถสอบถามได้ที่
สถาบันวิจัยและพัฒนาพลังงาน ม.เชียงใหม่
โทร. 0-5394-2007 ในวันเวลาราชการ
www.erdi.or.th

ที่มา www.dailynews.co.th
ภาพ
www.mysolarshop.co.uk
http://img2.timeinc.net
www.best-air-conditioner-reviews.com

เราใช้น้ำมากแค่ไหนในการผลิตสิ่งของรอบตัวเรา?


water.jpg

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

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

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

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

เราใช้ น้ำ…..แกลลอนเพื่อผลิต…..

รถยนต์ 1 คัน

เราต้องใช้ราว ๆ 39,090 แกลลอนในการผลิตรถยนต์หนึ่งคัน ไม่เป็นที่สรุปแน่ชัดว่าในจำนวนสามหมื่นกว่าแกลลอนนั้นรวมอีกราว 2,000 แกลลอนที่ต้องใช้ในการผลิตยางรถยนต์อีก 4 เส้นหรือไม่

กางเกงยีนส์ 1 ตัว

เราจะต้องใช้น้ำราว 1,800 แกลลอนในการปลูกฝ้ายเพื่อให้ได้จำนวนฝ้ายเพียงพอในการผลิตยีนส์ 1 ตัว

เสื้อเชิ้ต(ผ้าฝ้าย) 1 ตัว

ไม่ ได้ใช้น้ำเลวร้ายกว่ายีนส์แต่ก็ใช้ไม่น้อยเช่นกัน กว่าจะได้ฝ้ายพอที่จะผลิตเสื้อเชิ้ตซักตัว เราต้องใช้น้ำถึง 400 แกลลอน

แผ่นไม้ธรรมดา 1 แผ่น

แผ่น ไม้เล็ก ๆ ธรรมดาจะใช้น้ำ 5.4 แกลลอนเพื่อเลี้ยงต้นไม้ให้โตพอจะทำเป็นแผ่นไม้ได้

เบียร์ 1 ถัง

ในการผลิต เบียร์ 1 ถัง (ราว ๆ 32 แกลลอน) หมดน้ำไปแค่ 1,500 แกลลอนเท่านั้น

กาแฟ 1 แก้ว

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

สีน้ำมัน 1 แกลลอน

หมดน้ำไป 13 แกลลอนในการผลิต

น้ำดื่ม 1 ขวด

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

1 ตันของ….

เหล็ก: 62,000 แกลลอน
ปูนซีเมนต์: 1,360 แกลลอน

1 ปอนด์ของ….

ขนแกะ: 101 แกลลอน
ฝ้าย: 101 แกลลอน
พลาสติก: 24 แกลลอน
ยางสังเคราะห์: 55 แกลลอน

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


ถอดความและเรียบเรียงจาก: http://www.treehugger.com/files/2009/06/how-many-gallons-
ที่มา http://green.in.th/blog/lifestyle/2131

วันอังคารที่ 6 กรกฎาคม พ.ศ. 2553

ความฝันของ VI

โลกในมุมมองของ Value Investor 26 มิถุนายน 53

ดร. นิเวศน์ เหมวชิรวรากร

Value Investor หนุ่มสาวหลายคน โดยเฉพาะที่เริ่มประสบความสำเร็จจากการลงทุนอย่างงดงามนั้น มักจะมีความฝันที่บรรเจิด พวกเขามักจะคำนวณตัวเลขความมั่งคั่งที่เขาจะมีในอนาคตโดยอิงจากผลตอบแทนที่ ผ่านมาในช่วง 3-4 ปี ซึ่งสูงมากเช่นเฉลี่ยปีละ 40-50% และบางคนมากยิ่งกว่านั้น

พวกเขารู้ว่าการทำกำไรจากตลาดหุ้นปีละ 40-50% ในระยะยาวนั้นยากมาก โดยเฉพาะเมื่อภาวะตลาดไม่อำนวยและพอร์ตลงทุนมีขนาดใหญ่ขึ้น ดังนั้นเขาก็จะลดประมาณการผลตอบแทนลง อย่างไรก็ตาม เขาคิดว่าการทำผลตอบแทนปีละ 20-25% นั้นไม่ใช่เรื่องยาก ว่าที่จริงบางทีผ่านไป 2-3 เดือนเขาก็ได้กำไรมาแล้วทั้ง ๆ ที่ภาวะตลาดหุ้นก็ไม่ได้ดีนัก

การตั้งเป้าผลตอบแทนที่ 25% ต่อปีในระยะยาวนั้นแปลว่าเขาอาจจะสามารถ มี “อิสรภาพทางการเงิน” หรือเลิกทำงานประจำได้ภายในอาจจะ 10-15 ปี สำหรับ VI ที่ไม่ได้มีพ่อแม่ที่ร่ำรวย และอาจจะทำให้เขามีเงินเป็นหลายสิบหรือร้อยล้านในกรณีที่ทางบ้านมีฐานะดีและ เขาเริ่มลงทุนด้วยเงินเป็นหลักหลายล้านบาท

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

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

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

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

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

แต่ประสบการณ์ของผมก็คือ ความฝันนั้นเรามักจะ “ไปไม่ถึง” สาเหตุก็คือ บางครั้งเราตั้งความฝันไว้สูงเกินไป ผลตอบแทนที่เราคาดหวังนั้น เราตั้งไว้สูงยิ่งกว่าสิ่งที่ วอเร็น บัฟเฟตต์ ทำได้ เราคิดว่าเราทำได้ใน 4-5 ปี ดังนั้นเราน่าจะทำได้ในอีก10-20 ปีหรือมากกว่านั้น ซึ่งเป็นไปได้ยากมาก

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

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

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

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

ที่มา http://www.thaivi.com/2010/06/529/

การเลือกภาษา : In the eyes of the beholder

สองคนยลตามช่อง

คนหนึ่งมองเห็นโคลนตม

อีกคนพอได้ชม

เห็นดวงดาวอยู่พราวพราย

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

ผมขอพูดถึงภาษาที่ได้รับความนิยมสูงเท่านั้นนะครับ

ภาษา Assembly

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

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

จุดอ่อนหลักอีกข้อของภาษา Assembly ก็คือ CPU แต่ละตัวจะมีภาษาไม่ เหมือนกัน คุณต้องศึกษาภาษา Assembly หลายตัวเพื่อให้รองรับการทำงานกับเครื่องที่ต่างกันครับ

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

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

ภาษา C

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

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

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

จุดเด่นที่สุดของภาษา C คือการรองรับ pointer นั้นอาจจะมองได้ว่าคือจุดอ่อนที่สุดของภาษา C ทำไมถึงเป็นเช่นนั้น

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

อีกปัญหาหนึ่ง ก็คือตัวของภาษา C ไม่มีตัวจัดการจองหน่วยความจำในตัวเอง เมื่อเวลาเราต้องการจองหน่วยความจำแบบ Dynamic ภาษา C ทำ wrapper เพื่อติดต่อกับ OS เพื่อขอจองหน่วยความจำโดยตรง ปัญหาก็คือ การติดต่อกันระหว่างโปรแกรมของเรากับ OS เป็นไป อย่างหลวมๆ ถ้าโปรแกรมลืมบอก OS ว่าเลิกจองหน่วยความจำดังกล่าว หน่วยความจำนั้นก็จะถูกจองไปเรื่อยๆ เราจะเห็นเครื่องคอมพิวเตอร์ทำงานได้เร็วในตอนเช้า แต่พอตกบ่ายก็ช้าลงจนทำงานไม่ไหว จนสุดท้ายต้อง boot ใหม่ สาเหตุหลักของปัญหานี้คือ สิ่งที่เรียกว่าหน่วยความจำรั่ว หรือ Memory Leak ก็เรื่องจองแล้วลืมเอาคืนนั่นแหละครับ

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

เห็นผมบ่นภาษา C แต่คงต้องบอกก่อนว่า ผมรักภาษา C มากที่สุด ก็ผมโตมากับมันนี่ครับ วันนี้ภาษา C ก็เสื่อมความนิยมไปมากแล้ว ตั้งแต่ GUI OS อย่าง Windows เข้ามามีบทบาท ภาษา C ปรับตัวเองเข้ากับการเขียนโปรแกรมแบบ GUI ไม่ค่อย ได้ จึงเสื่อมความนิยมไปเกือบหมด คงเหลือแต่การใช้งานบน UNIX เท่านั้นครับ ที่ยังคงพอใช้ภาษา C กันอยู่

จุดเด่นของภาษา C อีกข้อก็คือ เรามีหนังสือ Algorithms ดีๆ ที่ใช้ภาษา C อ้างอิงอยู่มากครับ ถ้าคุณต้องการศึกษา Algorithm คุณจะไม่ผิดหวังครับจากหนังสือภาษา C

ภาษา C++

ภาษา C++ เป็นลูกผสมระหว่างภาษา Simula และ ภาษา C นั่นเอง ภาษา C++ รับเอาแนวคิดของ ภาษา C มากว่า 95% ประยุกต์เข้ากับแนวคิดเชิงวัตถุของ Simula ทำให้ ภาษา C++ เป็นลูกผสมระหว่าง Procedural Language และ Object Oriented Language เราไม่สามารถบอกได้ ว่า C++ เป็น OOP 100% มันไม่ใช่ครับ คุณเลือกแบบภาษา C ก็ยังได้

ในยุคหนึ่งภาษา C++ เป็นภาษาที่ถูกพิจารณาว่าทำงานช้า ก็เล่นไปเปรียบเทียบกับภาษา C หรือ Assembly นี่ครับ ภาษา C++ อิงกับการใช้งาน Indirect pointer อยู่ มาก แต่ยุคนี้ภาษา C++ ถูกพิจารณาว่าเป็นภาษาที่ทำงานบน GUI OS ได้เร็วที่สุด (2 ภาษาข้างต้นยุ่งยากเกินไป) ดังนั้น โปรแกรมเมอร์ที่แท้กลับมาอีกแล้วครับ โปรแกรมเมอร์ที่แท้ต้องเขียน C++ ได้ ผมว่ามันไปกันใหญ่แล้วครับ

ภาษา C++ เป็นภาษาที่ละโมบพอสมควรครับ การออกแบบเน้นให้เป็นภาษา Superman มีโครงสร้างครบถ้วนที่สุด ปรับแต่งได้แทบทุกจุด ทำให้ Syntax ของภาษา C++ มีความซับซ้อน มาก โดยเฉพาะอย่างยิ่ง ความต้องการที่รองรับ Generic Programming และ Multiple Inheritance ทำให้ ภาษา C++ ตั้งปรับโครงสร้างของภาษา เพื่อให้รองรับได้ แต่มีโปรแกรมน้อยกว่า 1% ครับที่ดึงเอาความสามารถเหล่านั้นมาใช้งานจริงๆ แต่โปรแกรมอีก 99% ต้องรองรับความยุ่งยากของ Syntax มีหลายคนว่าไม่คุ้มครับ

ถ้าจะกล่าวไปแล้ว ภาษา C++ รองรับ OOP ค่อนข้างเต็มรูป แต่นั่นแหละครับ มันเหมือนกับการตายน้ำตื้น ที่ภาษา C++ ยังยอมรับ pointer และการจอง Memory จาก OS ทำให้เกิดปัญหาเดียวกับภาษา C ซึ่งยังแก้ไม่ตกในยุคปัจจุบัน ทุกวันนี้ เรายังเห็นโปรแกรมจากบริษัทใหญ่ๆ เขียนจากโปรแกรมเมอร์ระดับโลก มีปัญหาเรื่อง Memory Leak อยู่ และ Pointer ชี้ออกนอกลู่นอกทางก็ยังเห็นอยู่ทั่วไปครับ

ถ้าใครคิดจะศึกษา OOP ให้ลึก แต่ไม่สามารถอ่านภาษา C++ รู้เรื่อง ผมว่ายากครับ หนังสือเกี่ยวกับ OOP ดีๆ ส่วนมาก จะอิงกับภาษา C++ ครับ

JAVA

บริษัท Sun ถูกมรสุมทางการค้าค่อนข้างหนัก ทั้งในเรื่องของ Hardware มาในยุคหลังๆ ก็ถูก Hardware ถูกๆ แบบ PC ตีค่อนข้างหนัก ทำให้ยอดขายไม่ดีอย่างที่หวังไว้ เท่านั้นยังไม่พอ Windows NT ที่ OS ระดับ Server ราคาถูกจาก Microsoft ก็ตีปราการอันแข็งแกร่งของ Solaris ลงได้ ทำให้ ในที่สุด Sun ต้องกลืนน้ำลายตัวเอง ประกาศสนับสนุน OS อย่าง Linux กะว่าจะอาศัยความฟรี สยบ Microsoft จะทำได้หรือไม่ได้ต้องดูต่อไป

เท่านั้นยังไม่พอ Sun ต้องการเครื่องมือในการพัฒนาโปรแกรมที่ค่อนข้างสมบูรณ์ เพราะการสั่งซื้อ Hardware ต่างๆ จำนวนไม่น้อย ขึ้นอยู่กับฝ่าย IT ของบริษัทนั้นๆ ถ้ากุมใจของฝ่าย IT ของบริษัทได้ การค้าขายก็จะเกิดขึ้น Sun จึงสนับสนุนเครื่องมือในการเขียนโปรแกรม ในยุคแรก Sun สนับสนุนภาษา PERL ครับ แต่ไปไม่ค่อยรอด มาในยุคปัจจุบัน Sun สนับสนุนภาษา JAVA ครับ

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

Sun ทำตัวเหมือนค่ายเพลงเมืองไทยครับ ลดแลกแจกแถม JAVA นี้แจกกันฟรีๆ ไปเลย เนื้อหาของภาษา นั้นเอาภาษา C++ มาปรับปรุง ตัดเอา pointer ทิ้งหมด ทำให้กลายเป็นภาษา ระดับสูงโดยสมบูรณ์ พร้อมกันนั้น ตัดเอาการรองรับ procedural language แบบ C ออก คงเหลือแต่ OOP เท่านั้น และก็ได้ตัด เอา Multiple Inheritance และ Generic Programming ออกด้วย ทำให้ Syntax ดูง่ายขึ้น

แนวคิดของการตัดออก ผมไม่แปลกใจเลยครับ Sun ยึดหลักเอาเฉพาะที่จำเป็น อย่างที่เคยกล่าวในเมื่อพัฒนา Hot Java ว่า ผู้ใช้ส่วนมากแล้ว ไม่ได้ต้องการ ความสามารถอะไรมากหรอก Web Browser คือ Web Browser เราตัดขนาดได้ลงเยอะ มาเน้นเฉพาะสิ่งที่ผู้ใช้ต้องการใช้จริงๆ ดีกว่า สุดท้าย ผู้ใช้ก็สวดส่งครับ Star Office เหมือนกันที่ Sun ยึดเอาหลักนี้มาใช้ ก็เช่นเคยครับ ไปไม่ค่อยรอด

แต่ JAVA ไม่เป็นเช่นนั้นครับ ถึงแม้จะตัดอะไรออกไปมาก จนผมอึดอัด แต่ก็โชคดีของ JAVA ครับ คือตีตลาดถูกจุด คือรองรับ Web นั่นเอง Web Client Script และ Applet เป็นสิ่งที่ Java ผูกขาดความเป็นเจ้าของได้เลย ผมคิดนะครับ ถ้า JAVA ไม่ได้สัมปทาน ของสิ่งสองสิ่งนี้ ผมว่ามันตายไปนานแล้วครับ

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

มีจุดเด่นอีกข้อหนึ่ง ซึ่งก็คงรู้ๆ กันอยู่ ก็คือ โปรแกรมสามารถทำงานได้บนทุกเครื่อง เพราะ JAVA ได้สร้าง Platform ของตัวเอง ซึ่งเป็นแบบเฉพาะ (แม้ว่า Sun จะอ้างว่าเป็นมาตรฐานก็ตาม) โปรแกรมต่างๆ ต้องทำงานบน Platform เฉพาะนั้น ถึงจะทำงานได้ Java เน้นจุดนี้ มากกว่าความเร็วครับ ทำให้โปรแกรม Java ทำงานค่อนข้างช้าเมื่อเทียบกับภาษาอื่น

มีสิ่งหนึ่งที่ผมไม่ค่อยชอบ Sun ก็คือ Sun ชอบใช้หลักจิตวิทยา โดยเฉพาะอย่างยิ่งกับ Microsoft บริษัท Sun พยายามทุกวิถีทางที่จะกล่าวร้าย Microsoft ว่าพยายามผูกขาด (แต่มันก็จริง) และพยายามจะเปรียบเทียบ Java กับ VB มีเอกสารมากมาย ที่ Sun เขียนขึ้นเพื่อเปรียบเทียบ (ไม่ค่อยเป็นธรรมนัก) ออกทำนองว่า Java ดีกว่าเยอะ ทำให้ คนใช้ Java บางคนก็เคลิ้มไป คิดว่าตัวเองเหนือกว่า เที่ยวไปโจมตี VB, Com, J++ แถมด้วย Windows อีกต่างหาก แบบนี้ไม่ดี

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

C#

คงไม่ต้องกล่าวอะไรมากนักสำหรับภาษา C# เราศึกษากันมาพอสมควรแล้ว ผมแค่อยากกล่าวว่า C# นั้นลอก Java มาครับ Microsoft มีจุดไม่ดีมากๆ ก็เรื่องชอบลอกนี่แหละครับ Windows ก็ลอก Apple LISA และ Macintosh มา IDE ของการเขียนโปรแกรมก็ลอก Borland มา และอื่นๆ อีกมาก รวมทั้ง .NET Framework ก็ลอก JAVA Platform มาไม่น้อยกว่า 80% แต่ก็นั่นแหละครับ Microsoft เป็นจอมลอกที่มีพรสวรรค์ครับ ลอกแล้ว ถ้าใครไม่ใช่แฟนพันธุ์แท้ จะดูไม่รู้เลยครับ

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

แล้วทำไมผมถึงให้ความสนใจ C# ที่ผมสนใจนั้น ไม่ใช่เป็นเพราะคำว่า Microsoft หรอกครับ แต่หากเป็นเพราะชื่อ Anders Heijsberg ต่างหาก ผมโตมาผลงานของเขาครับ ผมชื่นชมตั้งแต่ เมื่อตอนหัดใช้งาน Turbo Pascal 2.0 บน CP/M มา ถึง J++ และ .NET ในปัจจุบัน ผมมีความรู้สึกเองว่าครั้งนี้ Microsoft เอาจริง สร้าง .NET Framework ให้คนที่เป็นนักวิทยาศาสตร์ คอมพิวเตอร์ มือเซียนๆ ร่วมกันออกแบบ ผมเลยชอบครับ

ยิ่งรู้ว่า สิ่งที่ Sun ตัดออกจาก JAVA หลายอย่างที่ดีๆ เช่น enum, pass by reference และกลิ่นอายของภาษา C ที่ผมรัก จะได้คืนมา ผมก็สนใจเต็มที่ครับ

ถ้าจะพูดถึงข้อดีแต่ของ C# โดยไม่พูดถึง .NET Framework ก็คง ไม่ได้ ถ้าพิจารณาถึง .NET Framework ผมพูดได้คำเดียวว่า ใช่เลย!

แต่สิ่งหนึ่งที่คนทั่วไป ไม่ค่อยเข้าใจว่าทำไม C# จึงเอา Pointer กลับมาอีก ผมเองก็พูดยากครับ ว่าเห็นด้วยหรือไม่เห็นด้วย ถ้า pointer กลับมาแบบภาษา C หรือ C++ ผมคงรับไม่ได้ แต่ pointer แบบ C# นั้นต้องตั้งใจจริงๆ ถึงจะใช้งานได้ ต้องเพิ่ม Syntax และ เวลา คอมไพล์ต้องระบุให้ชัดเจนว่ายอมรับ pointer จึงจะใช้ได้ Microsoft ให้เหตุผลหลักในการคงไว้ซึ่ง pointer ก็คือ การเชื่อมต่อกับ ภายนอก .NET เช่น COM Component เป็นต้น ผมว่า มันก็ฟังขึ้นเหมือนกัน

ตอนนี้ก็วัดใจ Microsoft ครับ ว่าจะแจก .NET Framework ฟรี หรือไม่ ถ้าฟรี Java ก็คงต้องเหนื่อยอีกเยอะครับ และระยะหลังมานี้ Microsoft ตัด Java ออกจาก Windows XP แล้ว Microsoft เวลานี้ มี C# ที่เหนือกว่า JAVA Script หลายขุม และ .dll ที่สามารถใช้งานได้เหมือนกับ Applet ครั้งนี้ ผมว่า Microsoft ชักธงรบแล้วครับ

ใครบอกว่า JAVA หยั่งรากลึก ยากที่จะถูกล้ม ผมอยู่วงการนี้มาเกือบยี่สิบปีแล้ว ผมว่าผมไม่เห็นด้วยนะ คำแบบนี้ผมได้ยินมาเยอะครับ ตั้งแต่ Apple ][ มีโปรแกรมกว่า 40,000 โปรแกรม IBM PC จะมาล้มได้อย่างไร หรือ Windows จะ มาแทน DOS ได้อย่างไร ในเมื่อโปรแกรมที่เราใช้ทุกวันนี้ เป็น DOS ทั้งหมด จะเลิกใช้ได้อย่างไร ผมว่าไม่มีใครสนหรอกครับ ถ้าดีกว่า คนก็พร้อมที่จะเปลี่ยนครับ

Visual Basic & Visual Basic .NET

ภาษา VB ถูกดูถูกจาก โปรแกรมเมอร์ภาษาตระกูล C ครับ ทั้งนี้ก็เพราะการค้าด้วยส่วนหนึ่ง คนส่วนมากเข้าใจคลาดเคลื่อนมาก ตั้งแต่ที่มาของชื่อภาษาแล้วครับ คำว่า BASIC แค่ชื่อก็บอกถึงความไร้เดียงสาแล้ว ยิ่งผู้ที่รู้จักภาษา BASIC มาก่อนยิ่งแล้วใหญ่ คนจำนวนมากโดยเฉพาะอาจารย์มหาวิทยาลัย มองภาษา BASIC เป็นสิ่งที่ผิดพลาดอย่างร้ายแรงที่คิดค้นภาษานี้มา จริงหรือไม่จริง ไม่ใช่ประเด็นที่ผมจะคุยวันนี้ ผมอยากบอกว่า VB กับ ภาษา BASIC ต้นแบบนั้น มันคนละเรื่อง ทุกวันนี้ VB กับ BASIC ต้นแบบ แทบจะไม่เหมือนกันเลย ภาษา VB นั้นเป็นภาษา ที่ถูกออกแบบมาค่อนข้างดี รูปประโยคสวยงาม VB บังคับให้คุณเขียนคำสั่งละบรรทัด ทำให้โปรแกรมอ่านง่าย การใช้งานไม่ต้องมีบล็อก ทำให้ไม่สับสนว่า เปิดบล็อกแล้วลืมปิด มีรวมตัวเข้ากับ Visual Studio ทำให้การเขียนโปรแกรมนี่อย่างกับสวรรค์เลยครับ มี IntelliSense ให้ใช้ (เดี๋ยวนี้เลียนแบบกันมาก ครับ)

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

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

จุดเด่นอีกข้อหนึ่งของ VB คือการครอบคลุมตลาด ตั้งแต่ RAD ไปกระทั่ง VB Script สำหรับเขียน ASP บน Web หรือแม้กระทั่ง Application ต่างๆ เช่น Office VISIO ก็ล้วนแล้วแต่รองรับการเพิ่มความ สามารถด้วย VBA และในปัจจุบัน Microsoft ได้ขยายสังเวียนการต่อไปไปถึง Pocket PC อีกด้วย สำหรับ VB นัยว่า Store procedure ของ SQL Server Microsoft จะรองรับภาษา VB ด้วย

มีจุดหนึ่งที่ทำให้ VB ดูดีกว่าภาษาตระกูล C ก็คือ Case Insensitive ผมคงไม่ปฏิเสธว่า Case Sensitive มันก็มีความยืดหยุ่นสูง แต่มันก็ทำให้เขียนโปรแกรมแล้วหลงได้ง่าย บางคนเลือก VB เพราะเหตุผลนี้เป็นหลักครับ

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

อีกข้อก็คือ VB ไม่ใช่เป็นภาษาที่เป็น OOP เต็มรูป แบบ ไม่สามารถทำ Implementation Inheritance ได้

มาถึง VB.NET อันนี้ก็เป็นรุ่นใหม่ของ VB มารุ่น นี้ VB ทำลายกำแพงเรื่องความเร็วไป แล้ว โปรแกรมที่เขียนด้วย VB.NET และ C# ความเร็วพอ กันครับ เร็วกว่า VB เดิมมาก และ VB รุ่น นี้ รองรับ Implementation Inheritance เป็นที่เรียบ ร้อยแล้ว แต่ผมอยากจะติง VB.NET ไว้นะครับ ผมว่ามันเป็นการตัดสินใจที่ผิดพลาด แน่นอนครับ ทุกคนยอมรับว่า C++ เป็นภาษาที่ใช้งานยาก ดังนั้น Microsoft จึงออกแบบ VB มาเพื่อให้ง่าย ทำให้ทุกคนสามารถเข้าถึงได้ VB จึงได้รับความนิยมสูงมาก เพื่อเป็นการทำให้ C++ ง่ายลง Microsoft จึงออก C# มา ซึ่งผมก็เห็นว่าเป็นความคิดที่ถูก แต่มา VB.NET Microsoft กลับต้องการทำให้ รองรับ OOP เต็มรูปแบบ จึงปรับโครงสร้างของภาษาใหม่ให้หมด มันจึงยากขึ้น ระดับความยากของมัน พอๆ กับ C# เลย ด้วยเหตุนี้ ทำให้เราสามารถแปลง Code จากภาษา C# เป็น VB ได้แทบบรรทัดต่อบรรทัด ซึ่งเรื่องนี้ ผมไม่เห็นด้วยครับ มันทำให้ VB.NET เสียความง่ายลงไป ซึ่งความง่ายนี้เอง เป็นจุดแข็งที่สุดที่ VB มี ผมว่า VB ควรง่ายกว่านี้ครับ

ในช่วงเวลาที่เขียนเรื่องนี้ ผมกำลังรอ Vote ในการเลือกภาษา VB.NET หรือ C# เพื่อมาใช้เป็นสื่อการสอน ASP.NET ผมว่าไม่น่าจะใส่ ใจมาก ว่าจะเป็น C# หรือ VB.NET มันสามารถแปลงได้บรรทัดต่อบรรทัดอยู่แล้ว

Delphi

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

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

Delphi เป็นภาษาที่มี productivity สูงครับ ไม่แตกต่างจาก VB มากนั้น เป็น Case Insensitive แถมยังเร็วไม่ห่างกับพวก C++ อีก ดังนั้น Dephi จึงเป็นภาษาที่เป็นตัวเลือกที่ดี ครับ

ยิ่งไปกว่านั้น Delphi ยัง สามารถ เชื่อมต่อทั้ง COM และ CORBA คือรองรับทั้ง 2 โลก ทำให้ Delphi เป็นภาษาที่ไม่เลวเลยครับ แล้ว ทุกวันนี้ Delphi ก็ข้ามฟากไปใช้งานได้บน Linux ก็ยิ่งดีเข้าไปอีก

Delphi มาจาก Borland ผู้ซึ่งมีความเชี่ยวชาญทางภาษา Assembly จึงไม่น่าแปลกใจเลยว่า Compiler ที่มาจากค่าย Borland นั้น ส่วนมากสามารถแทรกภาษา Assembly เข้าไปในภาษาโปรแกรมได้

อาจเพิ่งรีบสรุปว่า Delphi ดี นักนะครับ จุดอ่อนที่สำคัญคือ Delphi เก่งเฉพาะงาน RAD แต่บน Web และอื่นๆ นั้นยังห่างไกลกับคู่แข่งมากนัก และวันนี้สังเวียนมันเปลี่ยนจาก Windows และ Linux กลายเป็น Pocket PC หรือ มือถือ ซึ่ง Delphi ไม่ค่อยมี Solution ทางด้านนี้เท่าไหร่

เลือกภาษาไหนดี

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

ยิ่งถ้าคุณเลือกจากเขียนโปรแกรมบน .NET แล้วละก็ .NET Framework มันเป็นอิสระต่อภาษาครับ คุณสามารถทำงานข้ามภาษาได้ โอกาสที่คุณจะเจอ Source Code ที่มาจากภาษาอื่นๆ มีมากครับ ถ้าคุณไม่รู้เรื่องเสียเลย คุณก็จะอ่านไม่รู้เรื่องครับ

ที่มา http://www.twoguru.com/playground/article/languages.htm

โค้งคำนับโปรแกรมเมอร์คนแรก

เมื่อคืนวาน (9.. 02) ผมเข้า Internet ไปเจอข่าวหนึ่ง ที่ทำให้ผมสงบไปพักหนึ่ง Edsger Wybe Dijkstra ตายแล้วด้วยโรคมะเร็งเมื่อวันที่ 6 .. 02 รวมอายุได้ 72 ปี เช้านี้ ผมเลยจับ keyboard กดเป็นเรื่องนี้ให้อ่านกัน

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

ต่อมาเมื่อผมเรียนรู้เรื่อง Object Oriented Programming คำว่า Dijkstra ก็โผล่มาให้เห็นอยู่เรื่อยๆ ทำให้ผมสนใจ ผมลองไปค้นประวัติดู ปรากฏว่าไม่ธรรมดาจริงๆ ครับ เรามาลองดูประวัติคร่าวๆ ของเขากันดีกว่า

Dijkstra เกิดเมื่อปี 1930 ที่เนเธอร์แลนด์ รู้จักคอมพิวเตอร์เป็นครั้งแรกเมื่อเรียนจบปริญญาตรี แกมีโอกาสไปศึกษาที่อังกฤษด้าน Programming อยู่ 3 เดือน จากนั้นก็กลับมาเรียนต่อ จนจบ Doctor Degree ที่ University of Amsterdam เมื่อปี 1959 ทางด้านคณิตศาสตร์และฟิสิกส์ ชีวิตส่วนใหญ่หลังจากจบแล้วก็เป็นศาสตราจารย์อยู่ที่ Uninversity of Texas at Austin ประเทศอเมริกา จนถึงปี 2000 ก็เกษียรกลับมาอยู่ที่เนเธอร์แลนด์ และเสียชีวิตในที่สุด

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

Dijkstra เท่าที่ผมรู้ไม่เคยมีอาชีพเป็นโปรแกรมเมอร์จริง นักเขียนโปรแกรมในมุมของของ Dijkstra คือนักคิดค้น Algorithm หรือที่เราเรียกกันว่า Computer Scientist ไม่ใช่โปรแกรมเมอร์แบบเราๆ

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

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

เรามาดูผลงานเด่นของ Dijkstra (บางส่วน) กันบ้าง แล้วจะได้รู้ว่า ทำไมผมถึงให้ความสนใจคนๆ นี้นัก

50: ภาษา ALGOL

ภาษา ALGOL เป็นภาษาต้นแบบ ที่เป็น Structure Programming ภาษานี้ถือได้ว่าเป็นภาษาหลัก ที่ภาษาคอมพิวเตอร์ส่วนใหญ่ยึดเป็นต้นแบบ ลองดูตัวอย่างนี้ครับ

begin
integer i;
for i:= 1 step 1 until 10 do
begin
Print Integer(i);
end
end

Dijkstra เป็นผู้หนึ่งที่ให้แนว คิด Structured Programming และอื่นๆ กับภาษา ALGOL

50: Shortest Path Algorithm

Algorithm ตัวนี้คงไม่ต้องพูดกันมาก มันเป็น Algorithm ตัว แรกๆ ที่มีการคิดค้นขึ้น และจนในยุคปัจจุบันก็ยังคงเป็น Algorithm ที่มีประสิทธิภาพสูงมากตัวหนึ่ง ในยุคปัจจุบัน มีการใช้ Algorithm ตัวนี้กันอย่างแพร่หลายมาก ใน เรื่องของ IP Routing ที่เราใช้กันใน Router ของ Internet ต่างๆ ก็ยังใช้ Algorithm ตัวนี้ ถ้าใครสนใจ Algorithm ตัวนี้ ลองดู Applet ตัวนี้ ครับ http://www.cs.uwa.edu.au/undergraduate/courses/230.300/readings/graphapplet/dijkstra.htm

Algorithm ตัวนี้แท้ที่จริงแล้วเป็นผลพลอยได้จากการที่ Dijkstra วิจัยพัฒนาภาษา ALGOL จึงไม่น่าแปลกใจเลยว่าทำไมภาษานี้ถึงมีชื่อว่า ALGOL

ปี 1968: บทความในวรสาร ACM เรื่อง "Go To Statement Considered Harmfull"

ภาษา ALGOL ไม่เคยดัง ตัวที่ดังจริงๆ กลับเป็นภาษา FORTRAN COBOL และ น้องใหม่คือ BASIC ตัวที่มีปัญหามาก ที่สุดคือ BASIC มันใช้ Goto เป็นว่าเล่น ซึ่ง Dijkstra เห็นว่าการใช้คำสั่ง Goto เป็นสิ่งที่ไม่ดี บทความนี้ดีครับและดังมากในยุคนั้น เป็นการปลุกกระแสต่อต้านคำสั่ง Goto ซึ่งส่งผลให้ภาษาที่เกิดขึ้นมาในยุคใหม่ๆ ลดบทบาทของคำสั่ง Goto ลง หรือไม่มีเลย ถ้าสนใจตัวบทความจริงๆ ดูที่นี่ครับ http://www.acm.org/classics/oct95/

แต่ก็ไม่ใช่ทุกคนเห็นดีเห็นงามไปหมดนะครับ บางคนก็ไม่เห็นด้วย หรือไม่อาจทำใจยอมรับได้ Dijkstra ก็โดนพอสมควรสำหรับบทความนี้ แต่แกก็ยังวิจารณ์ต่อไป แต่ก็บ่นน้อยใจบ้างในบทความต่อๆ มา ลองดูบทความนี้ครับ http://www.cs.virginia.edu/~evans/cs655/readings/ewd498.html

ปี 1968: บทความในวรสาร ACM เรื่อง "The Structured of "THE" Multiprogramming System"

หลังจากบทความเรื่อง Goto ลงตีพิมพ์ อีก 2 เดือนถัดมา Dijkstra ก็ส่งบทความอีกเรื่องหนึ่งที่ดังไม่แพ้กันออกมา บทความนี้พูดถึง OS ตัวหนึ่งครับที่ชื่อว่า THE (Technische Hoogeschool Eindhoven) ลองแปลเล่นๆ ดู อาจจะผิดก็ได้ Technische คือ Technology ส่วน Hoogeschool น่าจะมาจาก Huge School โรงเรียนใหญ่ในภาษาจีนนั่นก็คือ University นั่นเอง ส่วน Einhoven น่าจะ เป็น Holland รวมความแล้วมันคือชื่อมหาวิทยาลัยที่ Dijkstra ทำงานเป็นศาสตราจารย์ทางคณิตศาสตร์ อยู่ก่อนที่จะไปอเมริกานั่นเอง (อีกที Hoogeschool รวมกับ Technische อาจจะเป็นแค่ โปลีเทคนิคก็ได้)

(21-OCT-04 กรุณาอ่านปรับปรุงท้ายบทความครับ)

ที่มหาวิทยาลัยนี้ Dijkstra สร้าง OS ขึ้นมาตัวหนึ่งที่ชื่อ THE เป็น multiprogramming OS ทำงานได้หลายงานพร้อมๆ กัน OS ตัวนี้อาจถือได้ว่าเป็น OS แบบ multiprogramming ตัวแรกๆ ของโลก มันเกิดมาระยะเวลาไล่เลี่ยกับ Multics ซึ่งเป็น ต้นแบบของ UNIX ในทุกวันนี้

ในบทความนี้มีการพูดถึงปัญหาที่ผู้ออกแบบ OS ต้องประสบ ก็คือการที่บังคับให้ Process ใด Process ใช้ Resource จนเสร็จสิ้น ไม่สามารถแทรกได้ เช่นการพิมพ์ออก Printer คงไม่ดีแน่ถ้าให้ Process 2 ตัวแย่งกันพิมพ์คนละบรรทัด Dijkstra เสนอคำว่า Mutual Exclusion และหนทางแก้ไขปัญหาโดยใช้สิ่ง ที่ Dijkstra เรียกว่า Semaphore ศัพท์เหล่านี้เป็นศัพท์ที่คุ้นเคยกันในหมู่นักเรียนคอมพิวเตอร์อยู่แล้ว

ทุกวันนี้ OS ในยุคปัจจุบันก็ยังใช้แนวคิดของ 'THE' ของ Dijkstra อยู่ในหลายส่วนของ OS ครับ ใครสนใจบทความตัวนั้น อ่านได้จาก http://www.cs.utexas.edu/users/dahlin/Classes/GradOS/papers/p341-dijkstra.pdf

ปี 1997: หนังสือ A Discipline of Programming

เป็นหนังสือที่ Dijkstra เขียนรวบรวม Algorithms ที่ตนเองคิดค้นมา เป็นหนังสือ Classic เล่มหนึ่งในวงการ แต่ผมไม่เคยอ่าน เลยไม่กล้าวิจารณ์

ยังไม่หมด

Dijkstra ยังเป็นผู้บุกเบิกเรื่องต่างๆ ของคอมพิวเตอร์อีกหลายเรื่องเช่น Distributed Computing, Compiler Writing, Heuristics, stream, Computer Hardware Design, Dining Philosopher, Software Configuration Management, Sorting Algorithms, Fast Fourier Transform, Deadlock, Concurrent Programming, Garbage Collection, Memory Design, AI: Pattern Matching, Graph Theory, Scope of Variables, Transaction และอื่นๆ อีกมากมายครับ มากกว่า 1,000 บทความ

ลอง Search ใน yahoo เอาคำเหล่านี้ แล้วลองต่อด้วยคำว่า Dijkstra ดูครับ เห็นแล้วทึ่งจริงๆ ครับ

ความสำเร็จในชีวิต

Dijkstra ได้รับเกียรติมากมาย ดังนี้

  • Member of the Bataafse Genootschap De Proefondervindelijke Wijsbegeerte, Rotterdam, 1964.

  • Member of the Royal Netherlands Academy of Arts and Sciences, 1971.

  • Distinguished Fellow of the British Computer Society, 1971.

  • Programming Systems and Languages Paper Award, 1971.

  • ACM Turing Award, 1972.

  • AFIPS Harry Goode Memorial Award, 1974.

  • Foreign Honorary Member of the American Academy of Arts and Sciences, 1975.

  • Doctor of Science Honoris Causa, The Queen's University of Belfast, 1976.

  • Computer Pioneer Award, IEEE Computer Society, 1982.

  • ACM/SIGCSE Award for outstanding contributions to Computer Science Education, 1989.

  • ACM Fellow, 1994

  • Doctor of Science Honoris Causa University of Athens, Department of Informatics, 2002.

  • PODC 2002 Influential Paper Award. ACM Conferences on Principles of distributed Computing Influential Paper Award Committee.

ผมคิดเอาเองว่า รางวัลที่สำคัญที่สุดก็คือ ACM Turing Award, ซึ่งตั้งให้เป็นเกียรติกับ Alan Turing (ถ้ามีโอกาสผมจะนำเสนอประวัติของ Turing สนุกราวกับนิยายเลยครับ) มีผู้กล่าวว่า Dijkstra เป็น 1 ใน 15 นักวิทยาศาสตร์คอมพิวเตอร์ที่ยิ่งใหญ่ที่สุดในโลกครับ

ก่อนจบขอทิ้งท้ายด้วยคำคมที่ Dijkstra กล่าวไว้เมื่อไม่นานนี้

"Do not try to change the world. Give the world the opportunity to change itself"

ไปไม่กลับ

วันนี้ วันที่ 10 สิงหา 02 เป็นวันที่กำหนดทำพิธีศพของ Dijkstra ที่ เนเธอร์แลนด์ ผมขอน้อมคารวะปรมาจารย์ผู้นี้ด้วยคนครับ

--------
Supoj
http://www.twoguru.com
10-AUG-02

ปรับปรุง

จาก คุณบุญ - - boon_brpd@hotmail.com

อ.สุพจน์ ได้พูดถึง Technische Hoogeschool Eindhoven ว่า Eindhoven หมายถึงฮอลแลนด์ และ Technische Hoogeschool เอาจริง ๆ แล้วจะเหมือนโปลีเทคนิค ขอเรียนว่า ไม่น่าจะใช่นะครับ เพราะเขาสอนถึงระดับปริญญาเอก เน้นด้านเทคโนโลยี เกรดระดับมหาวิทยาลัยแนวหน้าของประเทศ ถ้าจะเทียบกับบ้านเราก็คงเป็น (มหาวิทยาลัย) สถาบันเทคโนโลยี..... ทำนองนั้นแหละ

และ Eindhoven ไม่ได้หมายถึงฮอลแลนด์ แต่เป็นเมืองใหญ่ที่มีชื่อเสียง(มีทีมฟุตบอลชื่อดังด้วยนา) อยู่ทางตะวันออกเฉียงใต้ ห่างประมาณ 100 กม. จาก Amsterdam เมืองหลวงของเนเธอร์แลนด์ (หรือฮอลแลนด์) มีสนามบินนานาชาติด้วย

ที่มา http://www.twoguru.com/playground/article/dijkstra.htm