Pages

1/09/2011

Learning A Red Gem Language



ในที่สุดก็ได้เริ่มเรียน Ruby ซะที
หลังจากที่ว่า จะเรียนๆ แล้วก็ขี้เกียจ ไม่อ่าน

พอวันก่อนมาเห็นมีคนเปรียบเทียบยุทธจักรโปรแกรมมิ่ง เป็นยุทธจักรบู้ลิ้มแล้ว (ref: http://www.howforge.com/programming-language-and-martial-art)


ความจริงในใจก็ชอบ Python นะ แต่ชอบเพลงเก้ากระบี่เดียวดายของเล่งฮู้ชงเหลือเกิน
พร้อมกับ motto เด็ด  "เพลงกระบี่ชุดนี้ มีแต่รุก ไม่มีรับ"  เพราะแค่รุกอย่างเดียวคู่ต่อสู้ก็จนตรอก แค่ต้านก็ไม่อยู่แล้ว รุกกลับมาคงไม่ไหว
เลยเริ่มน่าสนใจว่า ไหนลองดู Ruby ซะหน่อยซิ ว่ามันจะมีอะไรดี

มาถึงก็เริ่มต้นอ่านไอ้นี่ก่อนเลย
http://www.ruby-lang.org/en/documentation/quickstart/  Ruby in Twenty Minutes
แค่ชื่อก็น่าสนใจละ   แต่หลักๆจะเป็นแค่ hello world ที่มีการยกระดับเรื่อยจาก พิมพ์แค่ String บน interactive ruby คำว่า "Hello World" ไปจนถึงการสร้างคลาส ที่มี method และการใช้ array

แล้วก็เริ่มถูกใจ  เลยเข้าไปในเวปต่อเพื่อหา tutorial มานั่งดู
เลยเพิ่งรู้ว่า ruby-lang.org เป็นเวปต้นฉบับของ Ruby เองเลย แล้วก็มีtutorial สอนที่ไม่น่าเบื่อเท่าไหร่ด้วย เลยยังพออ่านต่อได้

เลยมาเจออันนี้
http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/to-ruby-from-java/ To Ruby From Java

อันนี้สำหรับคนที่เป็นJavaมาก่อนแล้วอยากเล่น Ruby ซึ่งก็ตรงกับตัวเองอยู่เลยนั่งอ่าน
อ่านไปๆจนจบ  ไม่ค่อยมีอะไรน่ารู้มากเท่าไหร่นัก

เลยถอยกลับออกมา หน้านึง มาอยู่ที่หน้า
http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/  Ruby From Other Languages
อันนี้แหละ รวมฮิตของทุกภาษาอยู่ในหน้าเดียว
เป็นหน้าที่รวม features ต่างๆของ Ruby ไว้ด้วยกันเลย
นั่งอ่านไป ก็เริ่มงงขึ้นๆเรื่อยๆ 555

พอเสร็จ ค่อยๆเริ่มเข้าใจแล้วล่ะว่าทำไม มันถึงเป็นเก้ากระบี่เดียวดาย

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

แล้วพอมาเห็น Ruby แล้ว... ถึงได้เห็นว่า ภาษานี้พลิกแพลงกันสุดๆเลยทีเดียว
นี่แค่อ่านไปได้หน่อยเดียว ยังเริ่มรู้สึกว่า ภาษานี้มันไม่มีกฎระเบียบ ไม่มีรูปแบบอะไรเท่าไหร่เลย
อยากจะพลิกแพลงยังไงก็ได้
เช่น ตัวแปรตัวนึง ไม่มีชนิดของข้อมูล
มันเป็นobjectหมด และเป็นobjectชนิดไหนก็ได้ (no type casting, no type specification)
เรียกใช้ตัวแปรที่ไหนก็ได้ไม่ต้องประกาศ (no type declaration)
หรือว่า  การประกาศคลาสขึ้นมาแล้ว  มาเปิดแก้ไขได้อีกทีหลัง จากจุดไหนก็ได้ของโปรแกรม  โดยไม่มีการ inheritซะด้วย  เล่นแก้originalเลย
พวก operator อย่าง +, -, *, / ก็แก้ได้หมด ว่าจะให้ทำอะไรบ้าง

ยังคงต้องศึกษาต่อ แล้วก็ทดลองแก้โจทย์ปัญหาซะหน่อย จะได้ชื่อว่าได้เรียน ruby ละ

รอให้นี่เสร็จแล้ว จะย้ายไปเรียน Python (ฝ่ามือสยบมังกรสิบแปดท่า) ต่อ

resource เพิ่มเติม (เก็บไว้ก่อน เดี๋ยวอ่านวันหลัง)
http://www.codenone.com/node/118
http://www.rubybox.net/category/lesson

No comments:

Post a Comment