See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
ภาษารูบี้ - วิกิพีเดีย

ภาษารูบี้

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

เริ่มในปี: พ.ศ. 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'

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

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

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


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -