ภาษารูบี้
จากวิกิพีเดีย สารานุกรมเสรี
เริ่มในปี: | พ.ศ. 2538 |
---|---|
ออกแบบโดย: | Yukihiro Matsumoto |
พัฒนาโดย: | Yukihiro Matsumoto และคณะ |
รุ่นล่าสุด: | 1.9.0 |
รุ่นล่าสุดออกเมื่อ: | 25 ธันวาคม, พ.ศ. 2550 |
ได้รับอิทธิพลจาก: | เอดา, เพิร์ล, สมอลล์ทอล์ก, ไพทอน, ลิสป์, Dylan และ CLU |
ระบบปฏิบัติการ: | ข้ามระบบปฏิบัติการ |
ลิขสิทธิ: | Ruby License และ GPL |
เว็บไซต์: | www.ruby-lang.org |
ภาษารูบี้ (Ruby) เป็นภาษาโปรแกรมเชิงวัตถุ ที่ได้รับอิทธิพลของโครงสร้างภาษามาจาก ภาษาเพิร์ลกับภาษาเอดา มีความสามารถในเชิงวัตถุแบบเดียวกับภาษาสมอลทอล์ค และมีความสามารถหลายอย่างจากภาษาไพทอน, ภาษาลิสป์, ภาษา Dylan และภาษา CLU ตัวแปลภาษารูบีตัวหลักเป็นซอฟต์แวร์เสรี และเป็นตัวแปลแบบอินเตอร์พรีเตอร์
เนื้อหา |
[แก้] ประวัติ
ภาษารูบี้สร้างโดย Yukihiro Matsumoto หรือ "Matz" ซึ่งเริ่มพัฒนาเมื่อ 24 กุมภาพันธ์ ค.ศ. 1993 และออกรุ่นแรกสู่สาธารณะใน ค.ศ.1995 ชื่อ "รูบี้" ที่แปลว่า ทับทิม นั้นเป็นหินประจำเดือนเกิดของเพื่อนร่วมงานของ Matsumoto โดยรูบี้ไม่ได้ตั้งใจตั้งชื่อล้อกับ Perl (แปลว่า ไข่มุก) ซึ่งเป็นหินประจำเดือนมิถุนายน ในขณะที่ทับทิมเป็นหินของเดือนกรกฎาคม
รุ่นล่าสุดคือรูบี้คือ 1.9.0 แต่ปัจจุบันในหน้าดาวน์โหลดของรูบี้นั้นยังคงระบุว่ารุ่น 1.8.6 นั้นคือรุ่นที่เสถียรที่สุด[1]
[แก้] ปรัชญา
ประเด็นหลักในการออกแบบภาษารูบี้ของ Matz คือการทำให้โปรแกรมเมอร์มีความสุขโดยการลดงานที่ไม่ต้องใช้ทักษะออกไป โดยเป็นไปตามหลักการของการออกแบบส่วนต่อประสานกับผู้ใช้ที่ดี[2] Matz เน้นว่าการออกแบบระบบควรให้ความสำคัญกับความจำเป็นของมนุษย์มากกว่าความจำเป็นของเครื่องคอมพิวเตอร์
- บ่อยครั้งที่ผู้คนโดยเฉพาะวิศวกรคอมพิวเตอร์ เพ่งความสนใจไปที่เครื่องจักร พวกเขาคิดว่า "โดยการกระทำนี้ทำให้เครื่องจักรทำงานได้เร็วขึ้น โดยการกระทำนี้เครื่องจักรจะทำงานอย่างมีประสิทธิภาพมากขึ้น โดยการกระทำนี้เครื่องจะทำบางอย่างๆๆ" พวกเขาพุ่งความสนใจไปที่เครื่องจักร แต่แท้ที่จริงแล้ว เราจำเป็นที่จะต้องพุ่งความสนใจไปที่มนุษย์ ได้แก่ การสนใจว่ามนุษย์เขียนโปรแกรมอย่างไร หรือใช้งานเครื่องจักรอย่างไร เราเป็นนาย เครื่องจักรที่เป็นทาส
กล่าวกันว่าภาษารูบี้ทำตามหลักการทำให้ประหลาดใจน้อยที่สุด (principle of least surprise; POLS) ซึ่งหมายความว่าภาษาปกติแล้วควรมีลักษณะที่สอดคล้องกับสัญชาตญาณหรือเป็นไปตามสมมุติฐานที่โปรแกรมเมอร์ได้คาดไว้ วลีนี้ไม่ได้มีที่มาจาก Matz แต่พูดกันทั่วไป วิถีทางของภาษารูบี้อาจจะใกล้เคียงกับวลีว่า "การทำให้ Matz ประหลาดใจน้อยที่สุด" อย่างไรก็ตามโปรแกรมเมอร์หลายคนพบว่าการทำให้ Matz ประหลาดใจน้อยที่สุดก็ใกล้เคียงกับตัวแบบของจิตใจของพวกเขาด้วย
ในการให้สัมภาษณ์ Matz นิยามว่า "ทุกคนมีภูมิหลังของตนเอง บางคนอาจจะเคยใช้ภาษาไพธอน บางคนอาจจะเคยใช้ภาษาเพิร์ล พวกเขาอาจประหลาดใจโดยมีสาเหตุจากแง่มุมต่างๆ กันของภาษา จากนั้นพวกเขามาหาฉันและพูดว่า 'ฉันประหลาดใจเนื่องจากลักษณะพิเศษนี้ของภาษา ดังเมื่อมีเหตุการเช่นนี้ภาษารูบี้จึงละเมิดหลักการทำให้ประหลาดใจน้อยที่สุด' ช้าก่อนๆ หลักการทำให้ประหลาดใจน้อยที่สุดไม่ใช่สำหรับทุกคน หลักการทำให้ประหลาดใจน้อยที่สุดหมายถึงหลักการทำให้ "ฉัน" ประหลาดใจน้อยที่สุด และจะเป็นหลักการทำให้ประหลาดใจน้อยที่สุดก็ต่อเมื่อคุณได้ศึกษาภาษารูบี้มาแล้วอย่างดี ตัวอย่างเช่น ฉันเคยเป็นโปรแกรมเมอร์ภาษาซีพลัสพลัสมา ก่อนที่ออกแบบภาษารูบี้ ฉันได้เขียนโปรแกรมภาษาซีพลัสพลัสเพียงภาษาเดียวมาสองหรือสามปี และหลังจากสองปีนั้นภาษาซีพลัสพลัสก็ยังทำให้ฉันประหลาดใจอยู่"
[แก้] ตัวอย่าง
ตัวอย่างโปรแกรมภาษารูบี้พื้นฐาน:
# ทุกอย่างซึ่งรวมทั้งตัวอักษรเป็น[วัตถุ] อีกทั้งการเรียกใช้เมธอดไม่จำเป็นต้องมีวงเล็บตามหลัง # ดังนั้นโปรแกรมเหล่านี้จึงทำงานได้: -199.abs # 199 "ruby is cool".length # 12 "Rick".index ("c") # 2 "Nice Day Isn't It?".split (//).uniq.sort.join # " '?DINaceinsty"
[แก้] การเก็บรวบรวม
การเก็บรวบรวมโดยใช้แถวลำดับ:
a = [1, 'hi', 3.14, 1, 2, [[4, 5]] a[2] # 3.14 a.reverse # [[4, 5]], 2, 1, 3.14, 'hi', 1] a.flatten.uniq # [1, 'hi', 3.14, 2, 4, 5]
การเก็บรวบรวมโดยใช้แฮช:
hash = {'water' => 'wet', 'fire' => 'hot'} puts hash['fire'] # Prints: hot hash.each_pair do |key, value| puts "#{key} is #{value}" end # พิมพ์: water is wet # fire is hot hash.delete_if {|key, value| key == 'water'} # ลบ 'water' => 'wet'
[แก้] ดูเพิ่ม
[แก้] แหล่งข้อมูลอื่น
|
|
---|---|
ธุรกิจ | โคบอล • จาวา • จาวาสคริปต์ • เจชาร์ป • บอร์นเชลล์ • ซี • ซีชาร์ป • ซีพลัสพลัส • ทีซีแอล • พีเอชพี • พีแอล • เพิร์ล • ไพทอน • ฟอร์แทรน • รูบี้ • ลิสป์ • วิชวลเบสิก • อ็อบเจกทีฟ-ซี • อ็อบเจกต์ปาสกาล • อาบัพ • อาร์พีจี • เอดับเบิลยูเค • เอดา • เอสคิวแอล • เอสเอเอส • แอสเซมบลี • ไอเฟล • |
การศึกษา | ปาสกาล • โปรล็อก • โลโก • สกีม • สมอลล์ทอล์ก • เอฟชาร์ป • เอ็มแอล • แฮสเคลล์ • |
อื่น ๆ | คลิปเปอร์ • ซิมูล่า • เบสิก • พีแอลวัน • มัมปส์ • อัลกอล • เอพีแอล |
ภาษารูบี้ เป็นบทความเกี่ยวกับ ซอฟต์แวร์ หรือ โปรแกรมคอมพิวเตอร์ ที่ยังไม่สมบูรณ์ ต้องการตรวจสอบ เพิ่มเนื้อหา หรือเพิ่มแหล่งอ้างอิง คุณสามารถช่วยเพิ่มเติมหรือแก้ไข เพื่อให้สมบูรณ์มากขึ้น ข้อมูลเกี่ยวกับ ภาษารูบี้ ในภาษาอื่น อาจสามารถหาอ่านได้จากเมนู ภาษาอื่น ด้านซ้ายมือ |