ทำไมโมโนจึงโต้เถียงกันมาก


33

บ่อยครั้งที่ฉันกำลังอ่านเกี่ยวกับโปรแกรมบางโปรแกรมไม่ว่าจะเป็น GNOME Do หรือ Banshee หรืออย่างอื่นฉันเห็นคนเขียนว่าพวกเขาใช้โมโน - และความหมายนั้นดูถูก ทำไมนี้ มีการแสดงความคิดเห็นเหล่านี้ในบริเวณที่ปฏิบัติได้แนวคิดเชิงอุดมการณ์หรืออย่างอื่นหรือไม่?


3
เหตุใดจึงไม่มีใครเรียกร้องให้ลบสำนักงานเปิดเนื่องจากใช้เทคโนโลยีของ Microsoft (รูปแบบเอกสาร)
จรจัด

คำตอบ:


36

อุดมการณ์

Mono คาดว่าจะมีบางคนให้การสนับสนุน Microsoft และแพลตฟอร์ม. Net บางคนเชื่อว่านี่เป็นสิ่งที่ตรงกันข้ามกับเป้าหมายของ Ubuntu หรืออย่างน้อยก็เป้าหมายส่วนตัวของพวกเขาเองและพวกเขาต้องการหลีกเลี่ยงสิ่งนั้น

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

จวน

โปรแกรมที่ใช้เครื่องเสมือน (ตามที่เขียนใน Java และ C # do) มีแนวโน้มที่จะใช้หน่วยความจำมากขึ้นในประสบการณ์ของฉันเมื่อเทียบกับเทียบเท่าที่ไม่ได้ ลักษณะทั่วไปนี้ไม่ได้ถือเสมอ ในขณะที่มีผู้ใช้งานซึ่งสิ่งนี้เป็นข้อกังวลที่ถูกต้องคนมักจะกังวลเกี่ยวกับประสิทธิภาพมากกว่าที่จำเป็น

ตัวอย่างเช่นฉันใช้แล็ปท็อปที่มีหน่วยความจำเพียง 1GB: มันเคยเป็นขนาดใหญ่ เครื่องเริ่มแสดงว่าอายุ แต่ฉันยังคงสามารถวิ่งได้อย่างสบายที่สุด ผู้ใช้ที่มีหน่วยความจำ 4GB จะไม่สังเกตเห็น "หน่วยความจำหมู" เกือบเท่าและควรให้ความสำคัญกับปัญหาอื่น ๆ (และฉันจะกลับมาที่นี่อีก 5 ปีและหัวเราะที่ 4GB นั้น)


4
c # ไม่ได้ทำงานบนเครื่องเสมือนอย่างแท้จริง อย่างน้อยก็ไม่ใช่ในวิธีปกติ มันสามารถทำการคอมไพล์แบบทันเวลาจากไบต์ไปยังรหัสเครื่องเช่นจาวาและการรวบรวมล่วงหน้าไปยังรหัสเครื่องด้วยข้อยกเว้น (กรณีปกติ) และการคอมไพล์แบบโรงเรียนเก่าเต็มรูปแบบ (ไม่ได้อยู่บนแพลตฟอร์มส่วนใหญ่) . มันไม่เหมือนกับ Java หรือ Parrot ในแง่นั้น ไฮบริดมากขึ้น ด้วยเหตุนี้ในโลกแห่งความเป็นจริงจึงเป็นไปได้มากที่รหัสภายในของคุณจะถูกรวบรวมไว้ในคำแนะนำของเครื่องในภาษาโมโน
Stefano Palazzo

1
@stefano: ฉันพูดถึงการใช้หน่วยความจำไม่ใช่ความเร็วในการประมวลผล ในความเป็นจริงการเก็บรักษาสำเนาของโค้ดไว้หลายชุดเพื่อให้ JIT สามารถทำงานได้โดยใช้หน่วยความจำมากขึ้น

3
ไม่เพียงเท่านั้น โมโนอาจละเมิดสิทธิบัตรของ Microsoft ซึ่งทำให้ Microsoft มีความเป็นไปได้ที่จะฟ้องร้องใครบางคนในวันเดียวกับที่ออราเคิลทำกับ Google เกี่ยวกับสิทธิบัตรจาวา
txwikinger

5
ขออภัยไม่มีสิ่งใดใน "สัญญาชุมชน" ที่มีผลผูกพันตามกฎหมาย
txwikinger

2
@txwikinger มีผลผูกพันตามกฎหมายตรวจสอบคำถามในหน้านี้ microsoft.com/interop/cp/default.mspx
trampster

16

บางคนเชื่อว่า Microsoft ถือสิทธิบัตรซอฟต์แวร์มากกว่าด้านของ. NET และการใช้งาน. NET นั้น Mono ละเมิดสิทธิบัตรเหล่านั้น ดังนั้นคนเหล่านี้รู้สึกว่าการใช้โมโนอาจเปิดโอกาสให้มีการฟ้องร้องสิทธิบัตร

ฉันคิดว่า Mono นั้นขัดแย้งกันมากเพราะกฎหมายสิทธิบัตรโดยทั่วไปขัดแย้งกัน แต่มีบางกรณีที่นิติบุคคลที่โปรโมต Mono ทำข้อตกลงกับ Microsoft ที่ดูเหมือนข้อตกลงสิทธิบัตรซึ่งสามารถเห็นได้ว่าเป็นการเสริมความแข็งแกร่งให้กับข้อโต้แย้งของ Microsoft สำหรับความถูกต้องของสิทธิบัตรดังกล่าว (แน่นอนว่า Microsoft ไม่ได้เตรียมหลักฐานใด ๆ ว่ามีสิทธิบัตรอยู่ดังนั้นจึงยังคงมีความไม่แน่นอนเช่นเดียวกับการเรียกร้องสิทธิบัตรที่ละเมิดโดยเคอร์เนล linux) ข้อตกลงเหล่านี้ส่งผลให้เกิดการทรยศและไม่ไว้วางใจจากชุมชนอื่น สมาชิกเนื่องจากข้อตกลงดูเหมือนจะทำร้ายชุมชนโดยรวม (โดยการเพิ่มความเสี่ยงด้านสิทธิบัตรที่รับรู้) ในขณะที่ได้รับประโยชน์จากเอนทิตีที่ทำข้อตกลงกับ Microsoft ดังนั้นจึงนำไปสู่อีกเหตุผลหนึ่งที่ทำให้โมโนขัดแย้งกัน:

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

แก้ไข:ในความคิดเห็นมีคนชี้ให้เห็นว่า Microsoft มีชุมชนสัญญาว่าจะไม่ยืนยันสิทธิ์สิทธิบัตรกับการใช้งาน. NET แต่สัญญานั้นมีนักกฎหมายเพียงพอที่ฉันไม่รู้สึกว่าฉันมั่นใจได้อย่างแน่นอนว่าสัญญานั้นให้การป้องกันที่แน่นหนาโดยไม่ต้องจ้างทนายความให้มาช่วยงาน หลังจากอ่านมันฉันสามารถนึกถึงช่องโหว่ที่อาจเกิดขึ้นซึ่งทำให้ Microsoft สามารถยืนยันสิทธิ์ในสิทธิบัตรของ Mono แต่เนื่องจากIANALฉันไม่ทราบเลยว่าช่องโหว่เหล่านี้สามารถป้องกันได้ตามกฎหมายหรือเป็นเพียงความเข้าใจผิดเกี่ยวกับกฎหมายของ Microsoft ดังนั้นแม้ว่าสัญญาของชุมชนจะได้รับการส่งเสริม แต่ก็ไม่สามารถยุติข้อพิพาทระหว่างความรับผิดทางสิทธิบัตรของโมโนที่อาจเกิดขึ้นได้


3
นี่ควรเป็นคำตอบที่ได้รับการยอมรับจริงๆมันเป็นคำตอบเดียวที่ตอบคำถาม ผู้ใช้ลังเลที่จะใช้ Mono เพราะกลัวว่าจะถูกฟ้องโดย Microsoft

1
ควรได้รับการกล่าวถึงที่นี่ว่ามาตรา 52 ของอนุสัญญาสิทธิบัตรยุโรปห้ามมิให้มีการจดสิทธิบัตรในซอฟต์แวร์"เช่นนี้" (มาตรา 52/2) ซึ่งหมายความว่าอย่างน้อยประชาชนและองค์กรในประเทศสมาชิกสหภาพยุโรปนั้นปลอดภัยจากสิ่งต่าง ๆ เช่นแคมเปญการอนุญาตให้ใช้สิทธิ์ของ Microsoft (คำแถลงล่าสุดนี้อยู่ภายใต้การต่อสู้ที่หนักหน่วง)
Stefano Palazzo

1
แม้จะมีศิลปะ 52/2 มีการขอรับสิทธิบัตรซอฟต์แวร์ที่ประสบความสำเร็จในยุโรป
txwikinger

คำตอบนี้ไม่สมบูรณ์หากไม่มีการอภิปรายของ "สัญญาชุมชน" ที่มีผลผูกพันตามกฎหมายซึ่งปกป้องขาวดำจากชุดสิทธิบัตรโดยไมโครซอฟท์
จรจัด

1
@trampster: CP ครอบคลุม ECMA 334 และ 335 แทนที่จะเป็น C # ทั้งหมดและเป็นสิ่งที่เผยแพร่ในปี 2549 จะไม่มีการเพิ่มสิ่งใหม่ใด ๆ ใน C # คุณคาดหวังว่าโมโนจะอยู่ได้5 ปี (และเติบโต) ที่อยู่เบื้องหลัง. NET เพื่อใช้ CP หรือไม่?
Fred Nurk

5

Mono เป็นพอร์ตเปิดของ Microsoft. net

บนพื้นฐานของอุดมการณ์สิ่งนี้ใช้ประโยชน์จากเทคโนโลยีแบบปิดสำหรับเทคโนโลยีแบบเปิดและอาจไม่ตรงกับอุดมคติของ GNU และ / หรือ Linux

ในทางปฏิบัติแล้ว Mono ไม่ได้สนับสนุนฟังก์ชั่นมากเท่าที่. NET ทำได้ในเวอร์ชั่น 3.5 อย่างไรก็ตามมันอนุญาตให้โปรแกรมใน C # (และภาษา. NET อื่น ๆ ) สำหรับ Linux ซึ่งฉันคิดว่าเป็นสิ่งที่ดีและจะเป็นไปไม่ได้หากปราศจาก Mono


9
แกนหลักพื้นฐานของ. NET เป็นเทคโนโลยี / มาตรฐานแบบเปิด (แม้ว่าการใช้งานหลักของ Microsoft จะไม่เปิด C #, ส่วนพื้นฐานของไลบรารีมาตรฐานและรันไทม์จะถูกเผยแพร่เป็นมาตรฐาน ECMA)
JanC

@Popinou: ฉันไม่เคยมีปัญหากับฟีเจอร์ที่ขาดหายไปใน 3.5

@JanC: บางส่วนของ Mono (System.Windows.Forms) ไม่ได้เป็นส่วนหนึ่งของมาตรฐาน ECMA
Broam

1
ที่จริงแล้วโมโนไม่ใช่พอร์ต แต่เป็นซอฟต์แวร์จากมาตรฐานการเปิดใช้ EMCA แบบเปิดฟรี และถูกปกคลุมด้วย "Community Promise" ที่มีผลผูกพันตามกฎหมายเพื่อไม่ฟ้องการดำเนินการตามมาตรฐานเปิดที่
จรจัด

1
@Broam System.Windows.Forms ไม่ได้อยู่ใน ubuntu โดยค่าเริ่มต้น และไม่จำเป็นสำหรับแอพโมโนทั่วไปใด ๆ
จรจัด

5

ตามที่คนอื่นได้กล่าวมีสองเหตุผลหลัก:

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

2) สิทธิบัตร: สิ่งนี้เคยเป็นข้อกังวลหลักที่ได้รับการแก้ไขโดย Microsoft เมื่อพวกเขาใช้สัญญาชุมชนกับข้อกำหนดของ ECMA 334 และ ECMA 335 แต่น่าเสียดายที่คนส่วนใหญ่ไม่รู้ตัว


4
ข้อโต้แย้งคือชุมชนสัญญาไม่เพียงพอ - ไม่ใช่คำถามของการรับรู้
Broam

1

ฉันไม่ได้ใช้โมโนเพราะ

  1. Microsoft อ้างว่ามีการละเมิดทรัพย์สินทางปัญญาโดยไม่ได้ระบุว่ามีการละเมิดอะไรและพวกเขาปฏิเสธที่จะชี้แจงเกี่ยวกับ Mono เพียง แต่บอกว่าผู้ใช้ Novell ได้รับการคุ้มครอง ฉันไม่เชื่อว่าชุมชนของ Microsoft สัญญาจนกว่าพวกเขาจะสำรองข้อมูลด้วยการกระทำ
  2. การออกใบอนุญาตโมโนมีความซับซ้อน เป็นเรื่องยากสำหรับผู้เชี่ยวชาญด้านกฎหมายที่จะต้องเข้าใจผู้ใช้ทั่วไปเพียงอย่างเดียวเนื่องจากส่วนต่างๆได้รับใบอนุญาตแตกต่างกัน ไม่มีสิ่งใดในโอเพนซอร์ซที่ซับซ้อนเกินกว่าจะแยกแยะได้
  3. Miguel de Icaza สัญญา แต่ล้มเหลวในการส่งมอบสัญญาของเขาที่จะปล่อยซอร์สโค้ดที่สอดคล้องกับ ECMA ในเวลาที่เหมาะสม
  4. ภูมิทัศน์ที่เกลื่อนไปด้วย บริษัท ที่เป็นไปตามมาตรฐานของ Microsoft เพราะสำหรับพวกเขามาตรฐานนั้นจะถูกทำลายและทำให้ผู้อื่นเสียเปรียบ
  5. ไม่จำเป็นต้องมีหรือไม่มีประโยชน์ที่พิสูจน์ได้ว่าการมี. NET บนลีนุกซ์, น้อยที่ได้รับการส่งผ่านจากแพลตฟอร์มอื่น ๆ และสิ่งใดก็ตามที่เป็นภาษาดั้งเดิมของลีนุกซ์สามารถเขียนได้ภาษาอื่น ๆ
  6. โมโนเป็นปัญหาที่แบ่งแยกโดยไม่จำเป็น มันกวนใจเราและเล่นในมือ Microsoft โดยหลีกเลี่ยงปัญหาที่สำคัญกว่า

ฉันคิดว่าทุกคนสามารถและควรใช้โมโนหากพวกเขาต้องการ แต่ผู้ใช้ที่ไม่ต้องการให้ใช้ค่าเริ่มต้น


ฉันไม่เชื่อว่าไมโครซอฟท์เคยกล่าวหาว่ามีการละเมิดผู้ป่วยในรูปแบบโมโน อย่างไรก็ตามมีสัญญาว่าจะไม่ฟ้องร้องในคฤหาสน์ที่มีผลผูกพันตามกฎหมาย
จรจัด

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