Ruby ทำอะไรได้ถูกต้อง (หรือเป็น Rails) [ปิด]


13

ภาษาโปรแกรมส่วนใหญ่มีการตัดสินใจออกแบบที่มีผลต่อการใช้งานและการบังคับใช้

ตัวอย่างเช่น:

  • Python มุ่งเน้นไปที่การบำรุงรักษา / ความสามารถในการอ่านของรหัสและมีการเยื้องเป็นส่วนหนึ่งของภาษาเอง
  • ความตั้งใจของ Java คือการข้ามแพลตฟอร์ม OOP 'ง่ายขึ้น' และ 'เป็นมิตร' กว่า C ++
  • Objective-C ถูกสร้างขึ้นเพื่อเป็นตัวคลุม OO รอบ C ซึ่งไม่รู้อนาคตของ C ++ ในเวลานั้น
  • Erlang ได้รับการออกแบบสำหรับระบบที่ทนต่อความผิดพลาดสูงและเกิดขึ้นพร้อมกัน
  • PHP ออกแบบมาเพื่อจัดการการสร้างเว็บเพจแบบไดนามิก
  • CoffeeScript ออกแบบมาเพื่อให้เห็นส่วนที่ดีของ Javascript และเพิ่ม OOP syntactical sugar และซ่อนความแตกต่าง (กลม ฯลฯ ) ของ JS 'เบื้องหลัง' เป็นต้น

ภาษาการเขียนโปรแกรมแต่ละภาษาพยายามใช้ประโยชน์และใช้ประโยชน์จาก IMHO เฉพาะกลุ่ม ข้างต้นเป็นมุมมองของฉันเกี่ยวกับสิ่งที่เป็นหลักการก่อตั้งของภาษาการเขียนโปรแกรมและที่ควบคุมวิวัฒนาการของพวกเขาและการบังคับใช้อย่างกว้างขวาง แน่นอนว่ายังมีอีกมากมาย แต่รายการมีไว้เพื่อเป็นตัวอย่างเท่านั้น

อย่างไรก็ตามฉันพยายามดิ้นรนเพื่อทำความเข้าใจหลักการก่อตั้งซึ่งเป็นรากฐานของทับทิมและความนิยมที่เพิ่มขึ้น อะไรคือหลักการก่อตั้งของ Ruby ที่ทำให้ได้รับความนิยมในปัจจุบัน หรือเป็นอัจฉริยะของชายคนหนึ่งที่ออกแบบกรอบ Rails? ถ้าอย่างหลังนั่นคือ Ruby ทำให้การออกแบบของ Rails ดีขึ้น / ง่ายขึ้น / เร็วขึ้น? ในสิ่งที่รู้สึก?

เหตุผลที่อ้างถึงบ่อยที่สุดตามผู้สร้างคือ '... ต้องการความสนุกสนานในการเขียนโปรแกรมภาษาอ่อน ๆ ' - ฉันไม่เห็นว่าเป็นเหตุผลในการสร้างภาษาการเขียนโปรแกรมใหม่ทั้งหมด! การเขียนโปรแกรมสนุกยิ่งขึ้น IMHO โดยไม่คำนึงถึงภาษา (แต่ละภาษามีบางส่วนที่ไม่ดี แต่มีอยู่หนึ่งรอบหรืออยู่กับมัน)

ดังนั้นช่องใดที่ทำ (หรือไม่) รูบี้เอาเปรียบที่ไม่ใช้ประโยชน์จากภาษาปัจจุบัน? 'จุดแข็ง' (USP) ของทับทิมคืออะไรที่นำไปสู่การปรับใช้อย่างกว้างขวาง ทับทิมทำอะไรที่ไม่เคยทำมาก่อน (หรือยากมาก)

ฉันไม่ใช่โปรแกรมเมอร์ Ruby แต่เป็นเพียง Ruby noob และด้วยความสับสน

Disclaimer : นี่ไม่ใช่สงครามเปลวไฟและฉันไม่ได้มองหาคำตอบประเภทภาษา Ruby vs Programming ฉันกำลังมองหาการตัดสินใจในการออกแบบที่เป็นรากฐานของทับทิมซึ่งนำไปสู่การยอมรับอย่างกว้างขวาง ทับทิมมีช่องอะไรที่ทำให้ได้รับความนิยมหรือเป็นผลมาจาก Rails อย่างแท้จริง?

คำตอบ:


11

ฉันเดาว่า Ruby ถูกเอาออกด้วยเหตุผลหลายประการ:

  • กรอบ Rails Rails รวมรูปแบบที่มีประโยชน์มากมายไว้ด้วยกันเพื่อช่วยให้การพัฒนาเว็บแอปพลิเคชั่นง่ายขึ้นและช่วยเพิ่มผลผลิต เปรียบเทียบสิ่งนี้กับการพัฒนาเว็บอย่างละเอียดและน่าเบื่อของ Java และแพลตฟอร์ม "one man show" .NET การสร้างเว็บแอปพลิเคชันเว็บบล็อกในเวลาไม่กี่นาทีเป็นการทำขากรรไกร
    คุณสามารถเห็น "เอฟเฟกต์ทางรถไฟ" บนเฟรมเวิร์กเว็บ JVM ใหม่มากมายเช่น Grails, Play! และสปริงรู
  • เรื่องราวความสำเร็จเช่น Twitter และ Github สตาร์ทอัพจำเป็นต้องเข้าสู่ตลาดโดยเร็วที่สุดและด้วย Rails สิ่งนี้จึงเป็นไปได้ เรื่องราวความสำเร็จเป็นหลักฐาน
  • ภาษาโปรแกรมภาษา Ruby นั้นสวยงามมีประสิทธิภาพและแสดงออกได้ IMHO, Ruby เป็นซอสลับของความสำเร็จของ Rails
    ดูความงามของแตงกวาและซินาตร้าความงามของ DSL ทำได้ถูกต้อง
  • ชุมชนที่กระตือรือร้นและกล้าหาญที่ไม่กลัวที่จะทดสอบและสร้างสรรค์สิ่งใหม่ ๆ
  • (ความเห็นส่วนตัวและอาจไม่ใช่เหตุผลสำคัญ) มันถูกสร้างขึ้นในญี่ปุ่น ไม่มีอะไรเต้นภาพของ "Made in Japan"
    สำหรับฉันแล้วการเรียนรู้ภาษาโปรแกรมที่สร้างขึ้นในประเทศต่างๆนั้นเหมือนกับการพบปะผู้คนใหม่ มันสนุกและให้ความรู้
    Ruby / Japan, OCaml / France, Lua / Brazil, Lisp / Mars :)

5
อยากรู้ว่าคุณหมายถึงอะไรโดย " คนเดียวแสดง . NET แพลตฟอร์ม" มันไม่ใช่วลีที่ฉันเคยได้ยินมาก่อนหรือไม่
Carson63000

2
+1 สำหรับ Lisp / Mars Haskell อยู่ที่ไหน
Adam

2
Haskell มาจากส่วนลึกภายในโลกที่กองทัพของคนแคระตัวเล็ก ๆ อย่างผู้พัฒนาสร้างขึ้นด้วยความตั้งใจที่จะทำให้โปรแกรมเมอร์ OO สับสน
Daniel Gratzer

1
@ Adam "อารยธรรมแอตแลนติส"
Chiron

13

นี่ไม่ใช่คำตอบสำหรับคำถามชื่อโดยตรง แต่เน้นที่การยกประเด็น (เช่นทำไม Ruby จึงถูกสร้างขึ้น)

คำพูดจาก Yukihiro 'Matz' Matsumoto ผู้สร้าง Ruby ซึ่งอาจช่วยอธิบายสิ่งที่เป็นแรงบันดาลใจในการสร้าง:

  • "ฉันต้องการภาษาสคริปต์ที่มีประสิทธิภาพมากกว่า Perl และเชิงวัตถุมากกว่า Python"
  • "ฉันหวังว่าการได้เห็น Ruby ช่วยโปรแกรมเมอร์ทุกคนในโลกให้มีประสิทธิผลและเพลิดเพลินกับการเขียนโปรแกรมและมีความสุขนั่นคือจุดประสงค์หลักของภาษารูบี"

ดังนั้นโดยทั่วไป Matz ต้องการภาษาเชิงวัตถุที่ออกแบบมาเพื่อความสุขของโปรแกรมเมอร์


1
เป็นวัตถุที่มุ่งเน้นอย่างมาก ผมหมายถึง+ในการ1+1เป็นวิธีการที่
bpromas

5

Ruby (togehter with rails) ทำให้การประชุมเรื่องการกำหนดค่าเป็นที่นิยม

วิธีเก่า (ไม่ใช่ทับทิมบนราง) คือ

  • กำหนดตารางฐานข้อมูล "บุคคล" ด้วยฟิลด์ชื่อ "วันเกิด"
  • กำหนด "บุคคล" ระดับธุรกิจด้วยคุณสมบัติ "วันเกิด"
  • เขียนตัวช่วยสำหรับการถ่ายโอนข้อมูลระหว่างฐานข้อมูลและชั้นธุรกิจ
  • สร้างกุยว่าบุคคลในรายการเป็นอย่างไร
  • สร้าง gui เพื่อแก้ไขคุณสมบัติของบุคคลหนึ่งคน

ด้วยการประชุมมากกว่าการกำหนดค่างานพื้นฐานสำหรับสิ่งนี้จะทำโดยอัตโนมัติ:

  • คุณกำหนดบุคคลในรหัส
  • ตารางฐานข้อมูลการแมปองค์ประกอบ gui ถูกสร้างขึ้นโดยอัตโนมัติสำหรับคุณโดยล่ามที่มีประสิทธิภาพหรือ codegenerator

ข้อโต้แย้ง: คุณต้องเรียนรู้เหตุการณ์ทั้งหมดดังนั้นการเรียนรู้ทับทิมบนรางรถไฟในการวิ่งครั้งแรกนั้นยากกว่า

ข้อดี: เมื่อคุณรู้ว่าการประชุมมันค่อนข้างง่ายที่จะเข้าใจรหัสของทับทิมอื่น ๆ ในผู้พัฒนารางเพราะทุกคนถูกบังคับให้ทำตามอนุสัญญาเดียวกัน

ในขณะเดียวกันการประชุมเกี่ยวกับการกำหนดค่าได้เข้าสู่การเข้ารหัสระบบนิเวศจำนวนมาก


4

อันดับแรกทับทิมคือ "ภาษาปัจจุบัน" บางทีคุณอาจหมายถึง "ภาษาที่เป็นที่นิยมเมื่อสร้างทับทิมในปี 1995"

ฉันชอบ Ruby ด้วยเหตุผลเดียวกันกับที่ฉันชอบ Perl:

  1. มันทรงพลังและแสดงออก ฉันสามารถเขียนโค้ด Ruby หนึ่งบรรทัดแทน Java หรือ C ++ ห้าบรรทัด ไม่มีการทำซ้ำที่ไม่สามารถแยกออกได้ด้วยเอะอะน้อยที่สุด

  2. มันเป็นแบบไดนามิก วิธีการและคุณสมบัติสามารถสร้างขึ้นได้ในเวลาทำงานดังนั้นฉันสามารถล้อมวัตถุรอบสิ่งต่าง ๆ ที่กำหนดไว้ภายนอกเช่นตารางฐานข้อมูลโดยไม่ทำซ้ำคำจำกัดความของสิ่งเหล่านั้นและไม่สร้างแอปพลิเคชันขึ้นมาใหม่

  3. มีหนังสือที่ยอดเยี่ยมเกี่ยวกับภาษา ( Programming Ruby ) ที่สามารถอ่านได้และครอบคลุม

  4. มีที่เก็บเดียวสำหรับแพ็คเกจโดเมนสาธารณะและอินเตอร์เฟสบรรทัดคำสั่งที่สะดวกไปยังที่เก็บ

แต่ฉันชอบ Ruby ดีกว่า Perl เพราะสามารถอ่านได้มากกว่า

มีหลายหน้าเปรียบเทียบ Ruby กับ Python ฉันชอบพวกเขาทั้งสอง ฉันชอบ Ruby แต่ฉันมีประสบการณ์ จำกัด กับ Python


ฉันจำได้ว่าการอ่านมันเป็นความหวังว่า (สิ่งที่จะกลายเป็นทับทิม) จะดีพอที่จะแทนที่ Perl ในคำนำของการเขียนโปรแกรมทับทิม
Rig

@kevin: นั่นคือคุณสมบัติบางอย่างของภาษาและฉันก็รู้ตัวดีอยู่แล้ว อย่างไรก็ตามฉันต้องการทราบ 'เหตุผลในการสร้าง Ruby' นอกเหนือจาก "ฉันต้องการภาษาที่สนุก / พิมพ์อย่างอ่อนแอ" (หรือเป็นเหตุผลที่ตัวเองมีขนาดใหญ่พอหรือไม่
ปริญญาเอก

1
@Nupul: สิ่งเหล่านี้ไม่ได้ทำโดยคณะกรรมการ Matz ใช้ความคิดและเขียน Ruby เขาแสดงให้คนอื่นเห็นหลังจากนั้นไม่นานและบางคนชอบมัน นั่นคือวิธีที่ LISP, Smalltalk, C, C ++, Pascal, Perl, Ruby และ Python ถูกสร้างขึ้น ฉันคิดว่ามันเหมือนกันสำหรับภาษาโปรแกรมส่วนใหญ่ มีเพียงไม่กี่คนเท่านั้นที่ถูกสร้างขึ้นโดยคณะกรรมการหรือความคิดริเริ่มขององค์กร
วินไคลน์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.