ทำไม Ruby จึงเหมาะกับ Rails มากกว่า Python? [ปิด]


90

ปกติแล้วงูหลามและรูบี้ถือเป็นลูกพี่ลูกน้องที่ใกล้ชิดกัน (แม้ว่าจะมีสัมภาระในอดีตที่แตกต่างกันมากก็ตาม) ด้วยการแสดงออกและพลังที่คล้ายคลึงกัน แต่มีบางคนแย้งว่าความสำเร็จอันยิ่งใหญ่ของเฟรมเวิร์ก Rails นั้นมีส่วนเกี่ยวข้องอย่างมากกับภาษาที่สร้างขึ้น: Ruby เอง เหตุใด Ruby จึงเหมาะกับกรอบงานดังกล่าวมากกว่า Python?


44
สัมผัสอักษร. _
Jimmy

75
"Python on Pails" ก็ไม่ได้มีความรู้สึกเหมือนกัน ...
ephemient

105
@Ephemient: ฉันเชื่อว่ามันน่าจะเป็น Python บนเครื่องบิน
Jimmy

37
@ จิมมี่: ใครต้องการเครื่องบิน? นำเข้า antigravity ;-) xkcd.com/353
Vinay Sajip

157
มี Java ในคุกหรือไม่?
Nosredna

คำตอบ:


170

อาจมีความแตกต่างที่สำคัญสองประการ:

Ruby มีการปิดที่สวยงามและไม่ระบุชื่อ

Rails ใช้ให้เกิดผลดี นี่คือตัวอย่าง:

class WeblogController < ActionController::Base
  def index
    @posts = Post.find :all
    respond_to do |format|
      format.html
      format.xml { render :xml => @posts.to_xml }
      format.rss { render :action => "feed.rxml" }
    end
  end
end

การปิด / lambdas แบบไม่ระบุตัวตนทำให้ง่ายต่อการเลียนแบบคุณลักษณะภาษาใหม่ที่จะบล็อก ใน Python มีการปิดอยู่ แต่ต้องตั้งชื่อจึงจะใช้งานได้ ดังนั้นแทนที่จะใช้การปิดเพื่อเลียนแบบคุณลักษณะภาษาใหม่ ๆ ได้คุณจะต้องเปิดเผยอย่างชัดเจนเกี่ยวกับข้อเท็จจริงที่ว่าคุณกำลังใช้การปิด

Ruby มี metaprogramming ที่สะอาดและใช้งานง่ายกว่า

สิ่งนี้ถูกใช้อย่างกว้างขวางใน Rails ส่วนใหญ่เป็นเพราะความง่ายในการใช้งาน เพื่อให้เฉพาะเจาะจงใน Ruby คุณสามารถรันโค้ดโดยอำเภอใจในบริบทของคลาสได้ ตัวอย่างต่อไปนี้เทียบเท่า:

class Foo
  def self.make_hello_method
    class_eval do
      def hello
        puts "HELLO"
      end
    end
  end
end

class Bar < Foo # snippet 1
  make_hello_method
end

class Bar < Foo; end # snippet 2
Bar.make_hello_method

ในทั้งสองกรณีคุณสามารถทำได้:

Bar.new.hello  

ซึ่งจะพิมพ์คำว่า "HELLO" class_evalวิธีการยังใช้สตริงดังนั้นจึงเป็นไปได้ที่จะสร้างวิธีการในการบินเป็นชั้นจะถูกสร้างขึ้นที่มีความหมายที่แตกต่างกันขึ้นอยู่กับพารามิเตอร์ที่จะถูกส่งผ่านใน

ในความเป็นจริงเป็นไปได้ที่จะทำ metaprogramming ประเภทนี้ใน Python (และภาษาอื่น ๆ ด้วย) แต่ Ruby มีข้อได้เปรียบเนื่องจาก metaprogramming ไม่ใช่รูปแบบพิเศษของการเขียนโปรแกรม มันมาจากข้อเท็จจริงที่ว่าใน Ruby ทุกอย่างเป็นวัตถุและโค้ดทุกบรรทัดจะถูกเรียกใช้โดยตรง ด้วยเหตุนี้Classes ก็คือวัตถุในตัวมันเองส่วนของคลาสมีการselfชี้ไปที่คลาสและคุณสามารถเรียกใช้เมธอดในคลาสได้ในขณะที่คุณกำลังสร้าง

นี่เป็นความรับผิดชอบระดับใหญ่สำหรับระดับของการประกาศที่เป็นไปได้ใน Rails และความสะดวกที่เราสามารถใช้คุณสมบัติการประกาศใหม่ที่มีลักษณะเหมือนคำหลักหรือคุณลักษณะภาษาบล็อกใหม่


40
ใน Python ทุกอย่างเป็นวัตถุและโค้ดทุกบรรทัดจะถูกเรียกใช้โดยตรงเช่นกัน ;) แต่คุณไม่มี "ตัวเอง" ที่ชี้ไปที่คลาสในเนื้อหาของคลาสซึ่งไม่ได้ถูกสร้างขึ้นจนกว่าจะถึงกำหนดคลาสดังนั้นคุณต้องใส่โค้ดนั้นใน Python ในภายหลังซึ่งเป็นที่ยอมรับว่ามีความสง่างามน้อยกว่า แต่เทียบเท่ากับการทำงาน
Lennart Regebro

31
@lennart นั่นคือประเด็น Python ช่วยให้คุณทำสิ่งต่างๆเช่นเดียวกับ lambdas ที่มีชื่อผู้ตกแต่งและการใส่โค้ดหลังจากสร้างคลาสแล้ว แต่การสูญเสียความสง่างามจะเพิ่มขึ้นอย่างรวดเร็วและทำให้บางสิ่งบางอย่างเช่น Rails ใช้งานได้ยากขึ้นอย่างเห็นได้ชัดหรือเห็นได้ชัดว่ามีความสง่างามสำหรับผู้ใช้
Yehuda Katz

9
พวกเขาดูไม่เหมือนความแตกต่างที่สำคัญสำหรับฉัน
Dietrich Epp

10
@lennart ฉันสับสนนิดหน่อย ฉันบอกว่าคุณไม่ต้องการมันใน Python - แต่การไม่มีมันทำให้โค้ดยากต่อการใช้งานหรือไม่หรูหราสำหรับผู้ใช้ปลายทาง (อย่างใดอย่างหนึ่ง) ภาษากำลังสมบูรณ์ - คุณสามารถเขียน Rails เป็น C ได้หากต้องการ
Yehuda Katz

5
@lennart ตอนนี้เรากำลังเข้าสู่ดินแดนส่วนตัว แต่คุณลักษณะทั้งสองที่ฉันพูดถึงนั้นค่อนข้างสะดวกเมื่อสร้างเฟรมเวิร์กที่ผสมผสานระหว่างการเขียนโปรแกรมแบบเปิดเผยและขั้นตอน โดยเฉพาะอย่างยิ่งการไม่มี lambdas ที่ไม่ระบุชื่อเป็นข้อ จำกัด ในการแสดงออกของ Python การขาดความสม่ำเสมอ (จำเป็นต้องทำงานกับคลาสที่สร้างขึ้นหลังจากสร้างคลาสเท่านั้น) ก็ค่อนข้าง จำกัด เช่นกัน
Yehuda Katz

58

ผู้ที่มีความเห็นแย้งนั้น

ความสำเร็จอันยิ่งใหญ่ของเฟรมเวิร์ก Rails นั้นมีผลอย่างมากกับภาษาที่สร้างขึ้น

(IMO) ผิดพลาด ความสำเร็จนั้นอาจเกิดจากการตลาดที่ชาญฉลาดและยั่งยืนมากกว่าความสามารถทางเทคนิคใด ๆ Djangoทำงานได้ดีกว่าในหลาย ๆ ด้าน (เช่นผู้ดูแลระบบ kick-ass ในตัว) โดยไม่จำเป็นต้องใช้คุณสมบัติใด ๆ ของ Ruby ฉันไม่ได้รังเกียจ Ruby เลยแค่ยืนหยัดเพื่อ Python!


10
เรากำลังเข้าสู่ดินแดนส่วนตัวที่นี่ หากคุณคิดว่าผู้ดูแลระบบเป็น "เท่านั้น" อาจเป็นเพราะคุณไม่ได้รับสิทธิประโยชน์ในการประหยัดเวลาที่มอบให้ มีพื้นที่ใดบ้างที่คุณคิดว่า Django ทำได้แย่กว่า Rails เนื่องจากฟีเจอร์ที่ Ruby มีและ Python ไม่มี? ประเด็นไม่ได้เกี่ยวกับว่าเฟรมเวิร์กใดดีกว่า - ไม่ว่า (ตามที่ระบุไว้ในที่อื่นในคำถามนี้) มีสิ่งใดที่ขาดใน Python ซึ่งทำให้ความสามารถในการพัฒนาเฟรมเวิร์คเตะตูดน้อยลง ตามหลักฐานไม่มีขาด
Vinay Sajip

18
@To downvoters นี้ผมไม่ทราบ แต่ผมอยากรู้ว่าทำไมคุณคิดว่าคำตอบของฉันคือช่วยเหลือ ฉันไม่ทราบว่ามีการโหวตลงคะแนนเพราะมีคนไม่เห็นด้วยกับตำแหน่งของใครบางคน - โดยทั่วไปแล้วฉันจะลงคะแนนเฉพาะที่ที่ฉันรู้สึกว่าคำถามหรือคำตอบทำให้สิ่งต่างๆแย่ลง
Vinay Sajip

5
ฉันสามารถเขียนส่วนผู้ดูแลระบบของตัวเองได้ฉันไม่จำเป็นต้องอยู่ในกรอบ ฉันชอบวิธีอื่นในการทำให้แอปพลิเคชันของฉันเขียนได้ง่ายขึ้น
nitecoder

8
@railsninja: ดีสำหรับคุณ ฉันไม่ต้องการที่จะต้องเขียนหน้าสำเร็จรูปสำหรับงานดูแลทำความสะอาดของผู้ดูแลระบบที่ระบบส่วนใหญ่ต้องการ เมื่อเร็ว ๆ นี้ฉันทำงาน pro-bono ให้กับเว็บไซต์การกุศลในท้องถิ่นและจะไม่มีทางเป็นไปได้ที่จะทำไซต์นั้นเลยถ้าผู้ดูแลระบบ Django ไม่ได้เป็นส่วนหนึ่งของสมการ ตามที่เคยเป็นมาฉันได้จัดเตรียมเว็บไซต์ที่มี Ajaxified UI ที่ปรับแต่งอย่างเป็นธรรมสำหรับผู้ใช้ แต่ผู้ดูแลระบบส่วนหลังทำงานร่วมกับผู้ดูแลระบบและเพียงพอสำหรับความต้องการของพวกเขา
Vinay Sajip

6
@ แมท: คำถามของเขาคือทำไม Ruby จึงเหมาะสมกว่า Python .. และคำตอบที่ถูกต้องก็คือมันไม่ใช่
Lennart Regebro

54

ชุมชนงูใหญ่เชื่อว่าการทำสิ่งต่างๆอย่างเรียบง่ายและตรงไปตรงมาที่สุดเท่าที่จะเป็นไปได้คือความสง่างามสูงสุด ชุมชนทับทิมเชื่อว่าการทำสิ่งต่างๆด้วยวิธีการที่ชาญฉลาดซึ่งอนุญาตให้ใช้รหัสเย็นเป็นรูปแบบที่สง่างามสูงสุด

Rails เป็นข้อมูลเกี่ยวกับหากคุณปฏิบัติตามอนุสัญญาบางอย่างสิ่งอื่น ๆ อีกมากมายจะเกิดขึ้นกับคุณอย่างน่าอัศจรรย์ สิ่งนี้เข้ากันได้ดีกับวิธีการมองโลกของทับทิม แต่ไม่ได้เป็นไปตามวิถีหลาม


4
แน่นอน แต่มีการสูญเสียชาว Perl (อาจจะไม่มาก ) ที่คิดว่าหนึ่งสมุทรที่เป็นความลับนั้นเจ๋งและคน Lisp หลายคนที่สาบานว่าเป็นภาษาที่แท้จริง แน่นอนว่าเราอยู่ในอาณาเขตเรือของคุณ
Vinay Sajip

4
Rails มีเวทมนตร์เป็นศูนย์อยู่ตรงนั้นในแหล่งที่มา ถ้าคุณอยากรู้ว่าจะทำอย่างไรให้เลิกลาและหาคำตอบ
nitecoder

21
"เทคโนโลยีขั้นสูงใด ๆ ที่เพียงพอจะแยกไม่ออกจากเวทมนตร์" - Arthur
C.Clarke

1
"มายากล" หมายถึงกรอบงานทำสิ่งต่างๆมากมายให้คุณโดยไม่ต้องถามโดยตรง อีกอย่างฉันไม่ได้ตัดสินคุณค่ามันเป็นรูปแบบหนึ่งของการทำสิ่งที่มีทั้งด้านดีและด้านไม่ดี โดยส่วนตัวแล้วฉันคิดว่ามันทำงานได้อย่างยอดเยี่ยมในราง
Matt Briggs

2
ความสง่างามและการประชุมไม่ได้หมายถึงเวทมนตร์
BJ Clark

26

การอภิปรายนี้เป็นการอภิปราย "กลุ่มกับอีแมค" ใหม่หรือไม่?

ฉันเป็นโปรแกรมเมอร์ Python / Django และจนถึงตอนนี้ฉันไม่เคยพบปัญหาในภาษา / เฟรมเวิร์กที่จะทำให้ฉันเปลี่ยนไปใช้ Ruby / Rails

ฉันสามารถจินตนาการได้ว่ามันจะเหมือนกันถ้าฉันมีประสบการณ์กับ Ruby / Rails

ทั้งสองมีปรัชญาที่คล้ายกันและทำงานได้อย่างรวดเร็วและสง่างาม ทางเลือกที่ดีกว่าคือสิ่งที่คุณรู้อยู่แล้ว


25

โดยส่วนตัวแล้วฉันพบว่าทับทิมเหนือกว่าหลามในหลาย ๆ ด้านซึ่งประกอบด้วยสิ่งที่ฉันเรียกว่า 'การแสดงออกที่สม่ำเสมอ' ตัวอย่างเช่นใน Ruby การเข้าร่วมคือวิธีการบนวัตถุอาร์เรย์ที่ส่งออกสตริงดังนั้นคุณจะได้รับสิ่งนี้:

numlist = [1,2,3,4]
#=> [1, 2, 3, 4]
numlist.join(',')
#=> "1,2,3,4"

ใน python การเข้าร่วมเป็นวิธีการบนอ็อบเจ็กต์สตริง แต่จะแสดงข้อผิดพลาดหากคุณส่งสิ่งอื่นที่ไม่ใช่สตริงเป็นสิ่งที่จะเข้าร่วมดังนั้นโครงสร้างเดียวกันจึงเป็นดังนี้:

numlist = [1,2,3,4]
numlist
#=> [1, 2, 3, 4]
",".join([str(i) for i in numlist])
#=> '1,2,3,4'

มีความแตกต่างเล็ก ๆ น้อย ๆ มากมายที่เพิ่มขึ้นเมื่อเวลาผ่านไป

นอกจากนี้ฉันไม่สามารถคิดวิธีที่ดีกว่าในการแนะนำข้อผิดพลาดตรรกะที่มองไม่เห็นได้ดีไปกว่าการทำให้ช่องว่างมีความสำคัญ


29
ประสบการณ์ของฉันคือการทำให้ช่องว่างมีความสำคัญช่วยให้ข้อผิดพลาดทางตรรกะหายไป มันสับสนกว่ามากที่จะมีการเว้นวรรคและไวยากรณ์ที่ไม่เห็นด้วย
Nosredna

5
ในภาษาที่มีการขึ้นต้นและลงท้ายและในภาษาที่มีเครื่องหมายวงเล็บและในการประกอบฉันเคยเห็นโค้ดถูกวางผิดพลาดและทำให้เกิดปัญหาในภายหลัง นั่นเป็นปัญหาเสมอ คุณเคยมีปัญหากับคนที่วาง Python ไม่ดีหรือไม่?
Nosredna

5
ช่องว่างไม่ได้เป็นอย่างมีนัยสำคัญในหลาม: secnetix.de/~olli/Python/block_indentation.hawk แทบจะเป็นไปไม่ได้เลยที่จะแนะนำ "ข้อผิดพลาดที่มองไม่เห็น" เนื่องจากการเยื้องใน Python (คุณต้องปลอมแปลงการตั้งค่าตัวแก้ไขของคุณ) ในขณะที่แน่นอนว่าเป็นไปได้อย่างสมบูรณ์ที่จะทำให้เกิดข้อผิดพลาดที่มองไม่เห็นเนื่องจากการเยื้องในภาษาอื่น ๆ เพียงแค่การเยื้องไม่ถูกต้อง @fields: ดังนั้นอย่าคัดลอกโค้ดผ่าน skype หรือ HTML แล้ว Geez
Lennart Regebro

7
ถูกต้องที่ Python บ่นหากคุณพยายามเพิ่มสตริงที่ไม่ใช่สตริงเช่นในการเข้าร่วม เนื่องจาก Explicit ดีกว่าโดยปริยาย การแปลงอัตโนมัติใน Python มีน้อยมากและสาเหตุก็คือพวกเขามักจะนำไปสู่ปัญหาโดยเฉพาะอย่างยิ่งในภาษาไดนามิกเนื่องจากสิ่งต่างๆไม่ได้เป็นประเภทที่คุณคาดหวัง แน่นอนว่าเมธอด ".join () จะรู้สึกย้อนกลับไปในตอนเริ่มต้น แต่นั่นคือเหตุผล มันไม่สมเหตุสมผลเลยในรายการ ...
Lennart Regebro

8
พระเจ้าผู้ทรงฤทธานุภาพ ... คุณหมายถึงพิมพ์นิ่งไม่ใช่พิมพ์อย่างรุนแรง Python ถูกพิมพ์อย่างหนักดังนั้น Ruby คือ: stackoverflow.com/questions/520228/… คุณไม่สามารถเพิ่มสตริงเป็นจำนวนเต็มใน Ruby ได้เช่นกัน ฉันเบื่อที่จะแก้ไขคุณโปรดตรวจสอบข้อเท็จจริงของคุณก่อนที่จะตอบในอนาคต
Lennart Regebro

15

คำตอบที่แท้จริงคือPython หรือ Ruby ไม่ใช่ตัวเลือกที่ดี / แย่กว่าสำหรับ Web Framework หากคุณต้องการความเป็นกลางคุณต้องเขียนโค้ดทั้งสองอย่างและดูว่าแบบไหนเหมาะกับความชอบส่วนตัวของคุณที่สุดรวมถึงชุมชน

คนส่วนใหญ่ที่โต้เถียงกันอย่างใดอย่างหนึ่งไม่เคยใช้ภาษาอื่นอย่างจริงจังหรือ 'โหวต' ตามความชอบส่วนตัว

ฉันเดาว่าคนส่วนใหญ่จะเลือกสิ่งที่พวกเขาเคยติดต่อมาก่อนเพราะมันสอนสิ่งใหม่ ๆ ให้พวกเขา (MVC, การทดสอบ, เครื่องกำเนิดไฟฟ้า ฯลฯ ) หรือทำสิ่งที่ดีกว่า (ปลั๊กอินเทมเพลต ฯลฯ ) ฉันเคยพัฒนาด้วย PHP และติดต่อกับ RubyOnRails ถ้าฉันรู้เกี่ยวกับ MVC มาก่อนที่จะพบ Rails ฉันคงไม่ทิ้ง PHP ไป แต่เมื่อฉันเริ่มใช้ Ruby ฉันชอบไวยากรณ์คุณสมบัติและอื่น ๆ

ถ้าฉันได้พบ Python และหนึ่งในเฟรมเวิร์ก MVC ก่อนฉันก็น่าจะยกย่องภาษานั้นแทน!


11

Python มีโฮสต์ทั้งหมดของเฟรมเวิร์กเหมือน Rails มีเรื่องตลกมากมายที่ในระหว่างการพูดคุยทั่วไปที่ PyCon อย่างน้อยหนึ่งเฟรมเวิร์กเว็บจะเห็นแสงสว่าง

ข้อโต้แย้งที่ว่าการเขียนโปรแกรมเมตา Rubys จะทำให้เหมาะสมกว่าคือ IMO ไม่ถูกต้อง คุณไม่จำเป็นต้องมีโปรแกรม metaprogramming สำหรับกรอบงานเช่นนี้

ดังนั้นฉันคิดว่าเราสามารถสรุปได้ว่า Ruby ไม่ได้ดีกว่า (และไม่น่าจะแย่กว่า Python ในแง่นี้


8

เนื่องจาก Rails ได้รับการพัฒนาเพื่อใช้ประโยชน์จากชุดคุณลักษณะ Rubys

คำถามที่ไร้สาระในทำนองเดียวกันก็คือ "ทำไม Python จึงเหมาะกับ Django มากกว่า Ruby?"


4

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


1

บางคนบอกว่าประเภทของการเขียนโปรแกรมที่จำเป็นในการสร้าง ActiveRecord (ส่วนประกอบหลักของราง) นั้นทำได้ง่ายกว่าและเป็นธรรมชาติในการทำทับทิมมากกว่าหลาม - ฉันยังไม่รู้จัก python;) ดังนั้นฉันจึงไม่สามารถยืนยันคำพูดนี้เป็นการส่วนตัว

ฉันใช้รางสั้น ๆ และการใช้ catchalls / interceptors และการประเมินแบบไดนามิก / การแทรกโค้ดช่วยให้คุณสามารถทำงานในระดับนามธรรมที่สูงกว่ากรอบอื่น ๆ (ก่อนถึงเวลา) ฉันไม่ค่อยมีประสบการณ์กับเฟรมเวิร์กของ Python - แต่ฉันได้ยินมาว่ามันมีความสามารถเท่าเทียมกัน - และชุมชน python ทำงานได้อย่างยอดเยี่ยมในการสนับสนุนและส่งเสริมความพยายามของ pythonic


3
อันที่จริงแล้ว "เวทมนตร์" ประเภทนี้มักจะขมวดอยู่ใน Python; ตัวอย่างเช่นcode.djangoproject.com/wiki/RemovingTheMagic
ephemient

2
ฉันคิดว่า "มายากล" (เทคนิคการเขียนโปรแกรมเมตา) เพื่อประโยชน์ของ "เวทมนตร์" ควรถูกขมวดไว้เสมอ - รหัสที่เรียบง่ายกว่า แต่ทรงพลังและแสดงออกอย่างเท่าเทียมกันควรจะชนะเสมอ - แต่มีบางกรณีที่วิธีเดียวที่จะให้ฟังก์ชันและไวยากรณ์ที่แน่นอนคุณต้องการต้องใช้ "เวทมนตร์" - และในกรณีเหล่านั้น "เวทมนตร์" นั้นไม่สามารถระงับได้)
Faisal Vali

1

ฉันคิดว่าไวยากรณ์นั้นสะอาดกว่าและอย่างน้อย Ruby สำหรับฉันก็แค่ "สนุก" มากกว่ามาก - เป็นเรื่องส่วนตัว!


-1

สองคำตอบ:

ก. เพราะรางเขียนสำหรับทับทิม.

ข. ด้วยเหตุผลเดียวกัน C จึงเหมาะกับ Linux มากกว่า Ruby


เนื่องจากบริบทของคำตอบของคำถามไม่สมเหตุสมผล
lorefnon

-6

ทั้งหมดนี้คือ "IMHO" ทั้งหมด

ใน Ruby มีเฟรมเวิร์กเว็บแอปพลิเคชันหนึ่งเฟรมดังนั้นจึงเป็นเฟรมเวิร์กเดียวที่โฆษณาสำหรับภาษานั้น

Python มีหลายอย่างตั้งแต่เริ่มก่อตั้งเพียงเพื่อตั้งชื่อไม่กี่: Zope, Twisted, Django, TurboGears (เป็นส่วนผสมของส่วนประกอบเฟรมเวิร์กอื่น ๆ ), ไพลอน (ซึ่งเป็นโคลนของเฟรมเวิร์ก Rails) และอื่น ๆ ไม่มีสิ่งใดที่ได้รับการสนับสนุนจาก python ทั่วทั้งชุมชนในฐานะ "THE one to use" ดังนั้น "groundswell" ทั้งหมดจึงถูกกระจายไปหลายโครงการ

Rails มีขนาดชุมชนเพียงอย่างเดียวหรืออย่างน้อยก็ในส่วนใหญ่เนื่องจาก Rails

ทั้ง Python และ Ruby สามารถทำงานเป็นเฟรมเวิร์กแอปพลิเคชันบนเว็บได้อย่างสมบูรณ์แบบ ใช้คนที่คุณ (และทีมพัฒนาที่มีศักยภาพของคุณ) ชอบและสอดคล้องกัน


7
Ruby มีเฟรมเวิร์กแอปพลิเคชันเว็บหลายตัว: Nitro, Merb, Camping .. เพื่อชื่อไม่กี่
Corban Brook

5
เพิ่ม: ซินาตร้าและแม้แต่แอปแร็คเปล่าสำหรับเว็บแอปขั้นต่ำที่รวดเร็วมากเช่นกัน
Kris

2
-1 "ใน Ruby มีเฟรมเวิร์กเว็บแอปพลิเคชันหนึ่งรายการ" มีความเด็ดขาดเกินไป ... สำหรับข้อความเท็จ Nitro, Merb, Camping, Sinatra
Maximiliano Guzman

2
ความคิดเห็นที่ไม่มีใครรู้จากทั้งสองฝ่ายเป็นสาเหตุของความสับสนสำหรับผู้มาใหม่ที่กำลังพยายามแยกแยะสิ่งเหล่านี้ทั้งหมด นอกจากนี้ยังหมายความว่าใคร ๆ ก็อาจพลาดบางสิ่งที่พวกเขาจะชื่นชมหากพวกเขารู้ดีกว่า
Walt Jones

3
ฉันคิดว่าประเด็นของเขาคือ Rails มีส่วนแบ่งความคิดของชุมชน Ruby มากกว่าที่ Django มีในชุมชน Python ซึ่งถูกต้อง
pjb3
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.