Saya telah memutuskan untuk membuat bahasa pemrograman sendiri, kebanyakan hanya untuk bersenang-senang. Namun, saya mulai tertarik dengan aspek hukum dari semuanya.
Anda dapat, misalnya, melisensikan program khusus di bawah persyaratan tertentu. Namun, bagaimana Anda melisensikan bahasa ? Juga, maksud saya bukan hanya implementasi bahasa (compiler & VM), tetapi standar itu sendiri. Apakah ada hal lain pada bahasa pemrograman yang saya lewatkan?
Apa yang ingin saya capai dengan lisensi tersebut:
- Jadikan benar-benar FOSS (dapatkah suatu bahasa menjadi FOSS, atau apakah itu implementasi yang bisa FOSS?)
- Tetapkan diri saya sebagai penulis (dapatkah Anda secara hukum menjadi penulis bahasa? Atau, sekali lagi, hanya implementasinya?)
- Buatlah supaya siapa pun yang menerapkan bahasa saya akan diminta untuk atribut saya (gaya MIT. Harap dicatat bahwa saya tidak memiliki harapan bagi siapa pun yang pernah melakukan itu, saya hanya belajar.)
Saya pikir solusinya adalah secara terpisah melisensikan VM dan kompiler untuk bahasa saya, sebagai "implementasi resmi", dan kemudian melisensikan dokumen desain sebagai bahasa itu sendiri .
Apa sebenarnya yang saya lewatkan di sini?
Jawaban:
Disclaimer.IANAL ();
Anda tidak dapat hak cipta bahasa pemrograman tidak lebih dari Anda bisa hak cipta bahasa lisan. Anda dapat melisensikan implementasi bahasa tertentu dan bahkan menjual kompiler seperti yang dilakukan Borland dengan Delphi selama bertahun-tahun.
Banyak bahasa saat ini memiliki BDFL (Benevolent Dictator for Life) yang menentukan apa yang masuk ke dalam bahasa dan apa yang tidak. Python, Ruby, dan Perl adalah contohnya.
Bahasa lain telah secara resmi merancang standar oleh salah satu dari beberapa papan standar, biasanya ANSI, ECMA, atau ISO. Contohnya termasuk C, C ++, dan Javascript.
Beberapa bahasa jatuh ke wilayah yang lebih gelap karena politisasi antar perusahaan. Java adalah contoh karena Microsoft duduk di beberapa papan standar.
Beberapa bahasa berpindah dari satu ke yang lain, biasanya dari BDFL ke terstandar, C adalah contoh yang baik.
Bergantung pada spesifikasi bahasa, beberapa penulis kompiler dapat mengimplementasikan fitur yang berbeda dengan cara yang berbeda (misalnya CPython vs PyPy) atau menambahkan fitur (Microsoft C ++ vs GNU C ++ atau MySQL vs PostGreSQL vs SQL Server)
sumber
Setiap upaya untuk membatasi / mengontrol / memiliki bahasa akan gagal. Agar suatu bahasa dapat digunakan secara luas, orang harus merasakan a) bahwa ia memecahkan masalah lebih baik daripada beberapa bahasa yang sudah ada, dan b) mereka merasa nyaman bahwa mereka tidak akan tiba-tiba berada di ujung yang salah dari lisensi / hukum sesuai. Jika mereka berpikir itu mungkin, mereka akan pergi ke tempat lain.
Saya menawarkan Tragedi mutlak Jawa, seperti yang dilakukan oleh Larry Ellison (AKA Oracle) dan Google. Ellison melakukan faceplant hukum skala global yang mencapai 2 hal:
Google tidak hanya memenangkan gugatan ini, mereka juga menghancurkan klaim paten dan hak cipta Oracle. Setelah ini, tidak ada yang saya tahu akan menaruh kepercayaan apa pun pada "teknologi open source" apa pun yang memiliki sidik jari Oracle di atasnya (pikirkan: MySQL).
Jika Anda mau, Anda bisa melewati pengembang selama berabad-abad di belakang Java dan langsung diabaikan ... biarkan saja semua pengembang menandatangani kontrak sebelum mereka dapat menggunakan bahasa baru Anda.
sumber
Anda dapat menulis tata bahasa untuk bahasa Anda dan menegaskan hak cipta Anda atas hal itu. Tentu saja, itu tidak akan melindungi Anda dari seseorang yang menulis tata bahasa berbeda yang menggambarkan bahasa yang sama.
Pertanyaan terbesar saya adalah "mengapa Anda ingin". Lagipula, Anda mungkin ingin orang-orang mengadopsi bahasa Anda. Jika orang lain mengklaim telah membuatnya, maka cukup memiliki kehadiran web yang baik akan cukup untuk memungkinkan Anda untuk menyebut mereka pembohong.
Seperti yang telah dicatat orang lain, jika tujuan utama Anda adalah mencegah orang lain mencuri
name
bahasa Anda, merek dagang akan lebih bermanfaat.sumber
Ada beberapa jawaban berbeda untuk pertanyaan ini:
Pada tahun 2012, pertanyaan serupa dijawab "Anda tidak bisa" dalam kasus Oracle vs Google atas penggunaan Java API di Android, dan jawaban yang sama diberikan dalam kasus implementasi WPL terhadap bahasa pemrograman SAS di produk mereka sendiri. Alasan untuk jawaban ini adalah bahwa interopabilitas antara implementasi yang berbeda dari suatu bahasa memerlukan penyalinan sintaksis dari bahasa pemrograman, dan dengan demikian harus diizinkan di bawah aturan "penggunaan yang adil".
Pada tahun 2014, bagaimanapun, pengadilan banding AS memutuskan bahwa jawaban hukum yang adil adalah memang "ya, Anda bisa", dengan alasan bahwa untuk memberikan interopabilitas (atau tidak), dan berdasarkan aturan apa ada kebijakan mutlak dari hak cipta asli pemegang. Dalam interpretasi terbaru ini, jika seseorang tidak ingin Anda kompatibel dengan bahasa pemrograman, API atau spesifikasi antarmuka lainnya, mereka berhak menghentikan Anda.
Singkatnya, pada 2014 mungkin adil untuk mengasumsikan: ya, bahasa pemrograman (sintaks, struktur dan urutan konstruk bahasa) dapat dilindungi hak cipta
Perhatikan bahwa undang-undang hak cipta tunduk pada interpretasi lokal dan aturan di negara Anda mungkin berbeda. Jika ragu berkonsultasi dengan pengacara ...
(menghapus sisa argumen, lihat riwayat)
Penafian: IANAL
sumber