ภาษาใดเป็นภาษาการเขียนโปรแกรมและลิขสิทธิ์หนึ่งภาษาโปรแกรมนั้นเป็นอย่างไร


12

ฉันตัดสินใจที่จะสร้างภาษาการเขียนโปรแกรมของตัวเองส่วนใหญ่เพียงเพื่อความสนุกสนาน อย่างไรก็ตามฉันมีความสนใจในด้านกฎหมายของทุกอย่าง

ตัวอย่างเช่นคุณสามารถอนุญาตให้ใช้งานโปรแกรมเฉพาะภายใต้ข้อกำหนดเฉพาะ อย่างไรก็ตามคุณจะออกใบอนุญาตภาษาได้อย่างไร นอกจากนี้โดยที่ฉันไม่ได้หมายถึงการใช้ภาษา (คอมไพเลอร์ & VM) แต่เป็นมาตรฐานเอง มีอะไรอีกบ้างสำหรับภาษาการเขียนโปรแกรมที่ฉันขาดหายไป?

สิ่งที่ฉันต้องการบรรลุโดยการออกใบอนุญาตดังกล่าว:

  1. ทำให้เป็น FOSS อย่างสมบูรณ์ (ภาษาสามารถเป็น FOSS ได้หรือว่าการใช้งานนั้นสามารถเป็น FOSS ได้หรือไม่)
  2. สร้างตัวเองในฐานะผู้เขียน (คุณสามารถเป็นผู้เขียนภาษาได้อย่างถูกกฎหมายหรือไม่หรือเพียงแค่การนำไปใช้)
  3. จัดทำขึ้นเพื่อให้ทุกคนที่ใช้ภาษาของฉันจะต้องให้ความสำคัญกับฉัน (สไตล์ MIT โปรดทราบว่าฉันไม่มีความหวังใด ๆ สำหรับทุกคนที่เคยทำเช่นนั้น

ผมคิดว่าการแก้ปัญหาจะแยกอนุญาต VM และคอมไพเลอร์สำหรับภาษาของฉันเป็น "การดำเนินการอย่างเป็นทางการ" แล้วใบอนุญาตเอกสารการออกแบบเป็นภาษาของตัวเอง

ฉันหายไปตรงนี้อะไรนะ?


10
Re (1): ข้อมูลจำเพาะภาษาไม่ใช่ซอฟต์แวร์ดังนั้น FOSS จึงไม่มีผลบังคับใช้ นอกจากนี้ถ้าฉันมาข้ามภาษาที่มีผู้เขียนพยายามสิ่งดังกล่าวเพื่อจุดประสงค์ในสิ่งที่ผมต้องการจะมากระมัดระวัง (นั่นคือจะบอกว่าผมอาจจะไม่ได้ใช้เลย) มันเป็นเรื่องของการติดการควบคุมความไม่ไว้วางใจและความรู้ที่ไม่ดีเกี่ยวกับประเด็นทางกฎหมาย

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

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

1
ฉันเดาว่าฉันจะเก็บสเป็คในโดเมนสาธารณะแล้ว
jcora

1
ฉันไม่ใช่นักกฎหมาย แต่การจดลิขสิทธิ์เอกสาร (แม้ว่าจะระบุภาษา) นั้นไม่ใช่การจดลิขสิทธิ์ภาษา ตัวอย่างเช่นฉันใช้พจนานุกรมที่มีลิขสิทธิ์และฉันพูดภาษาฝรั่งเศสโดยไม่ละเมิด
Basile Starynkevitch

คำตอบ:


15

Disclaimer.IANAL ();

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

หลายภาษาในทุกวันนี้มี BDFL (เผด็จการผู้มีเมตตาเพื่อชีวิต) ซึ่งเป็นผู้กำหนดว่าอะไรจะเกิดขึ้นกับภาษาและสิ่งที่ไม่เป็น Python, Ruby และ Perl เป็นตัวอย่างทั้งหมดของสิ่งนั้น

ภาษาอื่น ๆ ได้ออกแบบมาตรฐานอย่างเป็นทางการโดยหนึ่งในหลาย ๆ บอร์ดมาตรฐานโดยทั่วไปคือ ANSI, ECMA หรือ ISO ตัวอย่าง ได้แก่ C, C ++ และ Javascript

บางภาษาตกอยู่ในพื้นที่ที่มีความวุ่นวายเนื่องจากการลงมือทำระหว่าง บริษัท Java เป็นตัวอย่างเพราะ Microsoft อยู่ในบอร์ดมาตรฐานบางตัว

บางภาษาย้ายจากภาษาหนึ่งเป็นอีกภาษาหนึ่งโดยทั่วไปจาก BDFL ไปเป็นแบบมาตรฐาน C เป็นตัวอย่างที่ดี

ผู้เขียนคอมไพเลอร์บางรายอาจใช้คุณสมบัติที่แตกต่างกันในวิธีที่แตกต่างกัน (เช่น CPython vs PyPy) หรือเพิ่มคุณสมบัติ (Microsoft C ++ กับ GNU C ++ หรือ MySQL กับ PostGreSQL เทียบกับ SQL Server)


1
Loglanเป็นแบบอย่างสำหรับสถานะที่ไม่ใช่ลิขสิทธิ์ของภาษาที่สร้างขึ้น Lojbanเป็นการเปิดใช้งานใหม่อย่างมีประสิทธิภาพของ Loglan ในทางตรงกันข้าม Sun ฟ้อง Microsoft สำหรับการใช้งานVisual J ++ของจาวา ...
Jon Purdy

2
@JonPurdy: ด้วย Java มันเป็นปัญหาเกี่ยวกับเครื่องหมายการค้าไม่ใช่ปัญหาลิขสิทธิ์ ดูว่า LiveScript กลายเป็น Javascript อย่างไรขณะที่มันอยู่ในความสนใจร่วมกันของ Sun / Netscape หลังจากนั้น Microsoft ได้เปิดตัว JScript เพื่อแสดงความคล้ายคลึงกันในขณะที่หลีกเลี่ยงปัญหาเกี่ยวกับเครื่องหมายการค้าจากนั้นทุกคนก็เห็นด้วยกับ ECMAScript
pdr

1
@ JonPurdy @ pdr ฉันคิดว่ายังมีปัญหากฎหมายสัญญาในข้อพิพาทระหว่าง Sun และ Microsoft ไมโครซอฟท์ได้อนุญาตเทคโนโลยี JVM จากซันและส่วนหนึ่งของใบอนุญาตได้ตกลงที่จะไม่ใช้งาน Java ที่ไม่ได้มาตรฐาน
Charles E. Grant

1
@pdr เท่าที่ฉันสามารถจำได้มีข้อกำหนดที่แม่นยำมากสิ่งที่การใช้งาน Java ควรมี (รวมถึงการทดสอบสองสามพันที่การใช้งานควรผ่าน) Microsoft ถูกฟ้องร้องเนื่องจากพวกเขามีการใช้งานที่ไม่ได้มาตรฐาน (อาจเป็นการล็อคผู้ใช้โดยการกระจายแอปเพล็ตที่จะทำงานกับ Internet Explorer เท่านั้น) หลังจากกลยุทธ์การกระจายการใช้งานที่ไม่ได้มาตรฐานของ Java ล้มเหลว Microsoft ก็ดำเนินการสร้าง C #
จอร์โจ

3
@Giorgio - อย่างแม่นยำ สิ่งที่ Sun คัดค้านคือ MSFT เรียกภาษา Java ขณะทำการเปลี่ยนแปลงอย่างมีนัยสำคัญ (เพื่อล็อคแพลตฟอร์มของ MSFT) โดยพื้นฐานแล้วพวกเขากำลังผลิต Java ปลอมขึ้น
มา

8

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

ฉันเสนอโศกนาฏกรรมของ Java ที่ดำเนินการโดย Larry Ellison (AKA Oracle) และ Google เอลลิสันดำเนินการในระดับโลกทางกฎหมายFaceplantที่ประสบความสำเร็จในสิ่งที่ 2:

  1. เขาแสดงให้โลกเห็นว่าเขาจะฟ้องใครก็ตามที่เขาคิดว่าเขาจะได้รับเงินจากและ
  2. เขารับประกันได้ว่าการพัฒนาในอนาคตที่ไม่ได้ผูกติดอยู่กับ Java อย่างแน่นอนจะเลือกสิ่งอื่นนอกเหนือจาก Java

Google ไม่ได้เพียงแค่ชนะคดีนี้พวกเขาชำแหละเรียกร้องที่น่าสงสารของ Oracle สิทธิบัตรและลิขสิทธิ์ หลังจากนี้ไม่มีใครรู้ว่าฉันจะเชื่อในสิ่งใดก็ตามใน "โอเพนซอร์สเทคโนโลยี" ที่มีลายนิ้วมือของออราเคิลบนมัน (คิดว่า: MySQL)

หากคุณต้องการคุณสามารถข้ามศตวรรษของผู้พัฒนาไปหลัง Java และตรงไปที่จะถูกเพิกเฉย ... เพียงแค่เซ็นสัญญานักพัฒนาซอฟต์แวร์ทั้งหมดก่อนที่พวกเขาจะสามารถใช้ภาษาใหม่ของคุณได้


1
+1 ที่ทำให้ชัดเจนอย่างสมบูรณ์ คุณตีเล็บด้วยจุดที่ 2 ของคุณเกี่ยวกับ Java นี่เป็นปัจจัยสำคัญในการตัดสินใจว่าจะใช้ Java ต่อไปหรือสร้างภาษาที่คล้ายกันด้วยตัวเอง แม้ว่าฉันไม่ได้คาดหวังว่าคนจะใช้มันอย่างที่ฉันได้กล่าวไว้มันมีไว้เพื่อวัตถุประสงค์ส่วนตัวและเพื่อการศึกษา แต่ฉันต้องการให้ตัวเลือกของฉันเปิดอยู่
jcora

1
อัปเดต: ในเดือนพฤษภาคม 2014 ศาลวงจรกลางของสหรัฐอเมริกากลับคำวินิจฉัยและกล่าวว่า API อาจมีลิขสิทธิ์ eff.org/deeplinks/2014/05/…
ไม่มีใคร

แต่นั่นไม่ใช่จุดที่แท้จริงของโพสต์ของฉัน หลังจากการล่มสลายของการเล่นไฟของออราเคิลกับ Java ไม่มีใครในใจที่ถูกต้องและมีความรู้ทางประวัติศาสตร์ใด ๆ ที่จะทำให้ห่วงชนิดนี้รอบคอ บริษัท หรือโครงการของพวกเขาอย่างรู้เท่าทัน หากมีสิ่งใดสิ่งหนึ่งการกลับรายการโดยศาลอุทธรณ์มีหน้าที่เพียงเพื่อให้น้ำหนักที่มากขึ้นสำหรับการโต้แย้งสำหรับการใช้เครื่องมือและภาษาของ OSS มันน่าพิศวงและน่าขันอย่างยิ่งที่หลุมในลาร์รีเอลลิสันควรเป็นคนที่จะผลักดันคุณค่าที่แท้จริงของซอฟต์แวร์ Libre / Free ให้กับบ้านแม้กระทั่งนายทุนหรือนักธุรกิจที่มีหัวแข็งที่สุด
Peter Rowell

2

คุณสามารถเขียนไวยากรณ์สำหรับภาษาของคุณและยืนยันลิขสิทธิ์ของคุณได้ แน่นอนว่าจะไม่ปกป้องคุณจากใครบางคนที่กำลังเขียนไวยากรณ์ต่าง ๆ ที่อธิบายภาษาเดียวกัน

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

ดังที่คนอื่น ๆ ได้ระบุไว้หากเป้าหมายหลักของคุณคือป้องกันไม่ให้ผู้อื่นขโมยnameภาษาของคุณเครื่องหมายการค้าจะมีประโยชน์มากกว่า


การเขียนไวยกรณ์สำหรับภาษาจะไม่สามารถป้องกันได้ สิ่งเดียวที่จะทำคือหยุดคนอื่นเขียนไวยากรณ์ในลักษณะที่คล้ายกับคุณ ฉันสามารถเขียนไวยากรณ์สำหรับภาษาอังกฤษซึ่งจะไม่ทำให้คุณไม่สามารถโพสต์ใน SE ได้
Gavin Coates

กาวิน - ฉันเขียน .... "ที่จะไม่ปกป้องคุณจากใครบางคนที่กำลังเขียนไวยากรณ์ต่าง ๆ ที่อธิบายภาษาเดียวกัน" ฉันหวังว่านี่จะชัดเจนว่าลิขสิทธิ์ดังกล่าวจะไม่ปกป้องภาษาเพียงวิธีการอธิบายภาษานั้น ยัง - มันอาจทำให้คนรู้สึกดีขึ้น
Dominic Cronin

1

มีคำตอบที่แตกต่างกันสำหรับคำถามนี้เมื่อเวลาผ่านไป:

ในปี 2012 มีการตอบคำถามที่คล้ายกันว่า "คุณไม่สามารถ" ในกรณีของ Oracle vs Google เกี่ยวกับการใช้ Java API ใน Android และได้รับคำตอบที่คล้ายกันในกรณีที่การใช้งานภาษาโปรแกรม SAS ของ WPL ในผลิตภัณฑ์ของตนเอง เหตุผลสำหรับคำตอบนี้คือการทำงานร่วมกันระหว่างการใช้งานที่แตกต่างกันของภาษาที่ต้องคัดลอกไวยากรณ์ของภาษาการเขียนโปรแกรมและการทำเช่นนั้นควรได้รับอนุญาตภายใต้กฎ "ยุติธรรมใช้"

อย่างไรก็ตามในปี 2014 ศาลอุทธรณ์ของสหรัฐอเมริกาได้ตัดสินว่าคำตอบทางกฎหมายนั้นแท้จริงแล้วคือ "ใช่คุณทำได้" โดยมีเหตุผลว่าจะให้การทำงานร่วมกัน (หรือไม่) และภายใต้กฎใด ๆ ที่เป็นดุลยพินิจของลิขสิทธิ์ดั้งเดิม ที่ยึด. ในการตีความล่าสุดนี้หากมีคนไม่ต้องการให้คุณเข้ากันได้กับภาษาการเขียนโปรแกรม API หรือข้อกำหนดอินเทอร์เฟซอื่น ๆ พวกเขามีสิทธิ์ทุกอย่างที่จะหยุดคุณ

โดยสรุป ณ ปี 2014 มันอาจจะยุติธรรมที่จะสมมติว่า: ใช่ภาษาการเขียนโปรแกรม (ไวยากรณ์โครงสร้างและลำดับของการสร้างภาษา) สามารถเป็นลิขสิทธิ์

โปรดทราบว่ากฎหมายลิขสิทธิ์อยู่ภายใต้การตีความของท้องถิ่นและกฎระเบียบในประเทศของคุณอาจแตกต่างกัน หากมีข้อสงสัยให้ปรึกษาทนายความ ...

(ลบอาร์กิวเมนต์ที่เหลือดูประวัติ)

ข้อจำกัดความรับผิดชอบ: IANAL


Annnddd ... การพิจารณาคดีนี้เพิ่งจะล้มคว่ำ Oracle ปรบมือและในครั้งนี้ผู้พิพากษาไม่ได้เป็นโปรแกรมเมอร์
jmoreno

@jmoreno ขอบคุณที่ชี้นำสิ่งนี้ อัปเดตคำตอบเพื่อให้สอดคล้องกับการพัฒนาใหม่นี้ ...
miraculixx

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