fbpx
วิกิพีเดีย

ภาษารูบี

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

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

ประวัติ

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

รุ่นล่าสุดคือรูบีคือ 2.2.1

ปรัชญา

ประเด็นหลักในการออกแบบภาษารูบีของ 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' 

อ้างอิง

2. http://thairuby.wordpress.com/

ดูเพิ่ม

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

  • เว็บไซต์ของภาษารูบี
  • Full Ruby on Rails Tutorial

ภาษาร, ruby, เป, นภาษาโปรแกรมเช, งว, ตถ, ได, บอ, ทธ, พลของโครงสร, างภาษามาจาก, ภาษาเพ, ลก, บภาษาเอดา, ความสามารถในเช, งว, ตถ, แบบเด, ยวก, บภาษาสมอลทอล, และม, ความสามารถหลายอย, างจากภาษาไพทอน, ภาษาล, สป, ภาษา, dylan, และภาษา, วแปลต, วหล, กเป, นซอฟต, แวร, เสร, แ. phasarubi Ruby epnphasaopraekrmechingwtthu thiidrbxiththiphlkhxngokhrngsrangphasamacak phasaephirlkbphasaexda mikhwamsamarthinechingwtthuaebbediywkbphasasmxlthxlkh aelamikhwamsamarthhlayxyangcakphasaiphthxn phasalisp phasa Dylan aelaphasa CLU twaeplphasarubitwhlkepnsxftaewresri aelaepntwaeplaebbxinetxrphrietxreriminpi ph s 2538xxkaebbody Yukihiro Matsumotophthnaody Yukihiro Matsumoto aelakhnarunlasud 2 2 1runlasudxxkemux 25 thnwakhm ph s 2550idrbxiththiphlcak exda ephirl smxllthxlk iphthxn lisp Dylan aela CLUrabbptibtikar khamrabbptibtikarlikhsiththi Ruby License aela GPLewbist www ruby lang org enuxha 1 prawti 2 prchya 3 twxyang 3 1 karekbrwbrwm 4 xangxing 5 duephim 6 aehlngkhxmulxunprawti aekikhphasarubisrangody Yukihiro Matsumoto hrux Matz sungerimphthnaemux 24 kumphaphnth kh s 1993 aelaxxkrunaerksusatharnain kh s 1995 chux rubi thiaeplwa thbthim nnepnhinpracaeduxnekidkhxngephuxnrwmngankhxng Matsumoto odyrubiimidtngictngchuxlxkb Perl aeplwa ikhmuk sungepnhinpracaeduxnmithunayn inkhnathithbthimepnhinkhxngeduxnkrkdakhmrunlasudkhuxrubikhux 2 2 1 1 prchya aekikhpraednhlkinkarxxkaebbphasarubikhxng Matz khuxkarthaihopraekrmemxrmikhwamsukhodykarldnganthiimtxngichthksaxxkip odyepniptamhlkkarkhxngkarxxkaebbswntxprasankbphuichthidi 1 Matz ennwakarxxkaebbrabbkhwrihkhwamsakhykbkhwamcaepnkhxngmnusymakkwakhwamcaepnkhxngekhruxngkhxmphiwetxrbxykhrngthiphukhnodyechphaawiswkrkhxmphiwetxr ephngkhwamsnicipthiekhruxngckr phwkekhakhidwa odykarkrathanithaihekhruxngckrthanganiderwkhun odykarkrathaniekhruxngckrcathanganxyangmiprasiththiphaphmakkhun odykarkrathaniekhruxngcathabangxyang phwkekhaphungkhwamsnicipthiekhruxngckr aetaeththicringaelw eracaepnthicatxngphungkhwamsnicipthimnusy idaek karsnicwamnusyekhiynopraekrmxyangir hruxichnganekhruxngckrxyangir eraepnnay ekhruxngckrthiepnthasklawknwaphasarubithatamhlkkarthaihprahladicnxythisud principle of least surprise POLS sunghmaykhwamwaphasapktiaelwkhwrmilksnathisxdkhlxngkbsychatyanhruxepniptamsmmutithanthiopraekrmemxridkhadiw wliniimidmithimacak Matz aetphudknthwip withithangkhxngphasarubixaccaiklekhiyngkbwliwa karthaih Matz prahladicnxythisud xyangirktamopraekrmemxrhlaykhnphbwakarthaih Matz prahladicnxythisudkiklekhiyngkbtwaebbkhxngcitickhxngphwkekhadwyinkarihsmphasn Matz niyamwa thukkhnmiphumihlngkhxngtnexng bangkhnxaccaekhyichphasaiphthxn bangkhnxaccaekhyichphasaephirl phwkekhaxacprahladicodymisaehtucakaengmumtang knkhxngphasa caknnphwkekhamahachnaelaphudwa chnprahladicenuxngcaklksnaphiessnikhxngphasa dngemuxmiehtukarechnniphasarubicunglaemidhlkkarthaihprahladicnxythisud chakxn hlkkarthaihprahladicnxythisudimichsahrbthukkhn hlkkarthaihprahladicnxythisudhmaythunghlkkarthaih chn prahladicnxythisud aelacaepnhlkkarthaihprahladicnxythisudktxemuxkhunidsuksaphasarubimaaelwxyangdi twxyangechn chnekhyepnopraekrmemxrphasasiphlsphlsma kxnthixxkaebbphasarubi chnidekhiynopraekrmphasasiphlsphlsephiyngphasaediywmasxnghruxsampi aelahlngcaksxngpinnphasasiphlsphlskyngthaihchnprahladicxyu twxyang aekikhtwxyangopraekrmphasarubiphunthan thukxyangsungrwmthngtwxksrepn wtthu xikthngkareriykichemthxdimcaepntxngmiwngelbtamhlng dngnnopraekrmehlanicungthanganid 199 abs 199 ruby is cool length 12 Rick index c 2 Nice Day Isn t It split uniq sort join DINaceinsty source thairubykarekbrwbrwm aekikh karekbrwbrwmodyichaethwladb 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 karekbrwbrwmodyichaehch hash water gt wet fire gt hot puts hash fire Prints hot hash each pair do key value puts key is value end phimph water is wet fire is hot hash delete if key value key water lb water gt wet xangxing aekikh http www ruby lang org en downloads 2 http thairuby wordpress com duephim aekikhRuby on Railsaehlngkhxmulxun aekikhewbistkhxngphasarubi Full Ruby on Rails Tutorial bthkhwamekiywkbkarekhiynopraekrm hrux phasaopraekrmniyngepnokhrng khunsamarthchwywikiphiediyidodyephimkhxmulekhathungcak https th wikipedia org w index php title phasarubi amp oldid 9347888, wikipedia, วิกิ หนังสือ, หนังสือ, ห้องสมุด,

บทความ

, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม