ภาษารูบี้

จากวิกิพีเดีย สารานุกรมเสรี

เริ่มในปี: พ.ศ. 2538
ออกแบบโดย: Yukihiro Matsumoto
พัฒนาโดย: Yukihiro Matsumoto และคณะ
รุ่นล่าสุด: 1.8.4
รุ่นล่าสุดออกเมื่อ: 24 ธันวาคม, พ.ศ. 2548
ได้รับอิทธิพลจาก: Ada, ภาษาเพิร์ล, Smalltalk, ภาษาไพทอน, Lisp, Dylan, and CLU
ระบบปฏิบัติการ: ข้ามระบบปฏิบัติการ
ลิขสิทธิ: Ruby License และ GPL
เว็บไซต์: www.ruby-lang.org

ภาษารูบี้ (Ruby) เป็นภาษาโปรแกรมเชิงวัตถุ ที่ได้รับอิทธิพลของโครงสร้างภาษามาจาก ภาษาเพิร์ลกับภาษา Ada มีความสามารถในเชิงวัตถุแบบเดียวกับ Smalltalk และมีความสามารถหลายอย่างจากภาษาไพธอน, Lisp, Dylan และCLU ตัวแปลภาษารูบีตัวหลักเป็นซอฟต์แวร์เสรี และเป็นตัวแปลแบบอินเตอร์พรีเตอร์

สารบัญ

[แก้] ประวัติ

ภาษารูบี้สร้างโดย Yukihiro Matsumoto หรือ "Matz" ซึ่งเริ่มพัฒนาเมื่อ 24 กุมภาพันธ์ ค.ศ. 1993 และออกรุ่นแรกสู่สาธารณะใน ค.ศ.​1995 ชื่อ "รูบี้" ที่แปลว่า ทับทิม นั้นเป็นหินประจำเดือนเกิดของเพื่อนร่วมงานของ Matsumoto โดยรูบี้ไม่ได้ตั้งใจตั้งชื่อล้อกับ Perl (แปลว่า ไข่มุก) ซึ่งเป็นหินประจำเดือนมิถุนายน ในขณะที่ทับทิมเป็นหินของเดือนกรกฎาคม

รุ่นล่าสุดคือรูบี้คือ 1.8.4 ส่วน 1.9 นั้นกำลังอยู่ในช่วงพัฒนา

[แก้] ปรัชญา

ประเด็นหลักในการออกแบบภาษารูบี้ของ Matz คือการทำให้โปรแกรมเมอร์มีความสุขโดยการลดงานที่ไม่ต้องใช้ทักษะออกไป โดยเป็นไปตามหลักการของการออกแบบส่วนต่อประสานกับผู้ใช้ที่ดี [1]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'


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

[แก้] ดูเพิ่ม

[แก้] แหล่งข้อมูลอื่น

ภาษาโปรแกรมที่สำคัญ (แก้ )

ธุรกิจ: โคบอล | จาวา | จาวาสคริปต์ | เจชาร์ป | เจเอสพี | เชลสคริปต์ | ซี | ซีชาร์ป | ซีพลัสพลัส | ทีซีแอล | พีเอชพี | พีแอล | เพิร์ล | ไพทอน | ฟอร์แทรน | รูบี | ลิสป์ | วิชวลเบสิก | อ็อบเจกต์ซี | อ็อบเจกต์ปาสกาล | อาบัพ | อาร์พีจี | เอดับเบิลยูเค | เอด้า | เอเอสพี | เอสคิวแอล | เอสเอเอส | แอสเซมบลี | ไอเฟล

การศึกษา: ปาสกาล | โปรล็อก | โลโก | สกีม | สมอลทอล์ก | เอฟชาร์ป | เอ็มแอล | แฮสเคลล์

อื่นๆ: คลิปเปอร์ | ซิมูล่า | เบสิก | พีแอลวัน | มัมปส์ | อัลกอล | เอพีแอล