อินเทอร์เฟซและลายเซ็นวิธีการลิขสิทธิ์คุ้มครอง


13

ตัวอย่างเช่นมันเป็นการละเมิดลิขสิทธิ์หรือไม่ถ้าฉันเขียนคลาสที่ชื่อว่า Random โดยมีจุดประสงค์และลายเซ็นของวิธีการเดียวกันกับ. Net System.Random class ของ Microsoft หรือไม่ มันสร้างความแตกต่างในภาษาที่ใช้เขียนหรือไม่? ในกรณีนี้ฉันต้องการเขียนคลาส Random สำหรับใช้ใน ActionScript ซึ่งไม่มีคลาส PRNG ในตัว

หากใครมีลิงค์หรือคำแนะนำอ้างอิงที่ดีเพื่อทำความเข้าใจว่าซอฟต์แวร์ได้รับการปกป้องในด้านใดบ้าง และใช่ฉันรู้ว่านี่ไม่ใช่ที่สำหรับคำแนะนำทางกฎหมาย "ของจริง" หากมีใครไปศาลชี้ไปที่กระดานข้อความสาธารณะว่าเป็นเรื่องน่าละอาย


3
ค่อนข้างแน่ใจว่าลายเซ็นวิธีการอินเทอร์เฟซชื่อตัวแปร ฯลฯ ไม่ได้รับการคุ้มครองตามประเภทลิขสิทธิ์หรือใบอนุญาตใด ๆ
อดัมเลียร์

คำตอบ:


11

ฉันเชื่อว่าการดูความสัมพันธ์ระหว่าง Mono และ Dotnet ตอบคำถามนี้ ทีมโมโนสามารถใช้ประโยชน์จากคำจำกัดความวิธีการหรือส่วนต่อประสานสาธารณะ แต่พวกเขาจะต้องปรับใช้ภายใน อย่างไรก็ตามกรณีของ Android v Oracle ทำให้มีจุดอื่น ๆ ที่ทำให้ความแตกต่างนี้ชัดเจนขึ้นเล็กน้อย ในกรณีของ AvO ประเด็นส่วนใหญ่ที่ถูกนำขึ้นศาลนั้นเป็นสิทธิบัตรที่เกี่ยวข้องกับ VM นั้นอินเทอร์เฟซของไลบรารีไม่ได้เป็นประเด็นของการโต้แย้ง รหัสเดียวที่ได้รับการเน้นเป็นตัวอย่างที่ดูเหมือนว่าบางส่วนขยายที่คัดลอกภายใน


7
+1 สำหรับจุดที่ยอดเยี่ยมเกี่ยวกับ Mono vs .Net ฉันรู้ว่าในแนวคิดที่เกี่ยวข้องเราไม่สามารถจดลิขสิทธิ์กฎของเกมได้ โคลน Tetris นั้นถูกกฎหมายตราบใดที่พวกมันไม่ได้ถูกเรียกว่า Tetris และอย่ามองเหมือนผลิตภัณฑ์ลิขสิทธิ์อย่างเป็นทางการของ Tetris

ฉันคิดว่าความแตกต่างหลักที่เกี่ยวข้องระหว่าง. NET และ Java คือ (ส่วนใหญ่). NET เป็นมาตรฐาน ECMA
Foole

@Foole: ทั้ง Java Scriptและ ActionScript นั้นเป็นไปตามข้อกำหนด ECMAScript ที่เป็นทางการ (ECMA-262, -290, -327 และ -357)

4

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

แม้ว่าคำถามของคุณจะคล้ายกัน แต่ฉันจะตอบตรงกันข้าม: คุณสามารถคัดลอกลายเซ็นวิธีการ ทำไม?

ในความเป็นจริงลายเซ็นวิธีการมาจากสามัญสำนึก

  • ประการแรกหากเรานำตัวอย่างสุดขีดมาMicrosoft ไม่สามารถจดลิขสิทธิ์ชื่อRandomและฟ้องร้องทุกคนที่จะใช้คำนี้Randomในแอปพลิเคชันใด ๆ

  • ประการที่สองคุณพยายามทำอะไรกันแน่ การปรับใช้. NET Framework อีกครั้ง ทำไม? ไม่จำเป็นต้องเป็นบูรณาการล้อ ถ้าคุณรู้วิธีทำให้ดีขึ้นง่ายขึ้น ฯลฯ คุณจะมีโอกาสได้ชื่อชั้นเรียนและวิธีการที่ดีกว่าองค์กรที่ดีขึ้น ฯลฯ หากคุณพยายามคัดลอกโครงสร้างของ. NET Framework ไปยังพอร์ตอื่น ภาษาแล้วคุณไม่ใช่คู่แข่งโดยตรงของ Microsoftดังนั้นพวกเขาจึงไม่มีเหตุผลที่ร้ายแรงที่จะฟ้องร้องคุณ (สิ่งนี้ถูกกล่าวว่าพวกเขาจะฟ้องคุณหากคุณคัดลอกซอร์สโค้ดเอง) ที่จริงแล้วพวกเขาจะได้รับประโยชน์จากคุณ: การคัดลอกโครงสร้างดังกล่าวไปยังกรอบงานอื่น ๆ ไม่เพียง แต่แสดงความสำเร็จของ. NET Framework เท่านั้น แต่ยังช่วยให้นักพัฒนา. NET สามารถทำงานกับภาษาอื่น ๆ ได้ง่ายขึ้นและนักพัฒนาจากภาษาอื่น ๆ .สุทธิ.

  • ประการที่สามพวกเขามีสิ่งที่ร้ายแรงมากกว่าที่จะฟ้องร้องทุกคนที่จะคัดลอกชื่อของวิธีการและชั้นเรียนของ. NET Framework

ตอนนี้ถ้าคุณตั้งใจจะคัดลอกทั้ง. NET Framework และสร้างผลิตภัณฑ์ที่นักพัฒนาจำนวนมากจะใช้ให้ปรึกษาทนายความก่อนที่จะรับความเสี่ยง


ตัวอย่าง:

ฉันไม่พอใจอย่างเต็มที่กับข้อ จำกัด 259 ตัวอักษรที่อับอายในพา ธ ของไฟล์ใน. NET Framework และการไม่สามารถใช้ธุรกรรมรหัสในระดับไฟล์ได้ ดังนั้นฉันจึงใช้Fileคลาสของตัวเองด้วยวิธีที่จะทำงานได้ตามที่คาดหวังสำหรับเส้นทางใด ๆ ไม่ใช่แค่สั้น ๆ และใช้งานธุรกรรม ในรุ่นแรกที่ฉันตัดสินใจที่จะโคลนชื่อของวิธีการในFileและDirectoryชั้นเรียน Microsoft จะฟ้องฉันเพื่อทำสิ่งนั้นหรือไม่? ฉันสงสัยมัน.

ในทุกกรณีในรุ่นที่สองที่ผมมาพร้อมกับไวยากรณ์ใหม่new File(string fileName)ซึ่งผมพบมากขึ้นใช้งานง่ายสำหรับฉัน บางครั้งการตั้งชื่อวิธีการโคลนนั้นมีประโยชน์ แต่คุณต้องมีเหตุผลที่ดีในการทำเช่นนั้น


หากเจตนาของคุณคือการคัดลอก. NET Framework ทั้งหมด ... ไม่ต้องทำ! ฉันแค่ต้องการ PRNG ที่ฉันสามารถใช้เพื่อเล่นเกมแฟลชได้ ฉันชอบวิธีการใน. Net Random class และจะเขียน wrapper ด่วนที่มีลายเซ็นเดียวกันเมื่อคำถามนี้เกิดขึ้นกับฉัน มันจะดูดไปเสียที่บ้านเพราะคดีของสถาปนิกในการออกแบบกระดิ่งประตู ... เพื่อให้การเปรียบเทียบที่น่าอึดอัดใจ

System.Randomมี 8 วิธี (5 วิธีและ 3 เกินวิธีหนึ่งprotected) ฉันคิดว่าคุณไม่สามารถโคลนชื่อเหล่านั้นได้ทั้งหมดและจะมีเวลาที่ยากลำบากในการพิสูจน์ว่าคุณคัดลอกชื่อเหล่านั้นจาก Microsoft โดยเจตนาร้าย
Arseni Mourzenko

4

การคุ้มครองลิขสิทธิ์คุ้มครอง "การแสดงออกทางศิลปะ" ของงานไม่ใช่รูปแบบทางเทคนิค (เพื่ออ้างอิงวิกิพีเดีย )

การคุ้มครองลิขสิทธิ์ไม่ปกป้องข้อเท็จจริง

ดังนั้นคำถามจะกลายเป็น API หรือส่วนต่อประสานเป็น "ข้อเท็จจริง" หรือการแสดงออกทางศิลปะ? สำหรับ API ง่าย ๆ ที่เป็นเพียงรายการของวิธีรับตัวเลขสุ่มและตัวเลขสุ่มชนิดต่าง ๆ API น่าจะเป็นความจริงมากกว่า แต่ฉันเห็นได้ว่ามีอินเทอร์เฟซที่ซับซ้อนมาก (คุณรู้ว่าคนที่คุณจ้องมองมาเป็นเวลาหนึ่งนาทีแล้วพูดว่า "อ่า! ช่างน่าประทับใจ") ถือได้ว่าเป็น "การแสดงออกทางศิลปะ" ที่ควรค่าแก่การปกป้อง

นี่คือบทความล่าสุดเกี่ยวกับOracle และ Google ในการต่อสู้กับลิขสิทธิ์ APIเกี่ยวกับปัญหานี้กำลังถูกพิจารณาในศาล (US)

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


0

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


ข้อดีของ Windows API ป้อนไวน์

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