Apa yang merupakan bahasa pemrograman dan bagaimana hak cipta seseorang menjadi bahasa pemrograman?

12

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:

  1. Jadikan benar-benar FOSS (dapatkah suatu bahasa menjadi FOSS, atau apakah itu implementasi yang bisa FOSS?)
  2. Tetapkan diri saya sebagai penulis (dapatkah Anda secara hukum menjadi penulis bahasa? Atau, sekali lagi, hanya implementasinya?)
  3. 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?

jcora
sumber
10
Re (1): Spesifikasi bahasa bukanlah perangkat lunak, jadi FOSS tidak berlaku. Juga, jika saya menemukan bahasa yang penulisnya coba lakukan, untuk tujuan apa pun, saya akan sangat berhati-hati (artinya, saya mungkin tidak akan menggunakannya sama sekali). Ini berbau kecanduan kontrol, ketidakpercayaan, dan pengetahuan yang buruk tentang masalah hukum.
Saya sedikit bingung apa tujuan akhir Anda di sini. Mungkin jika kami tahu itu, kami dapat membantu Anda mengisi kekosongan tentang cara mencapainya. Juga akan bermanfaat untuk mengetahui siapa target pasar Anda.
pdr
Tunggu, bagaimana cara label sesuatu berbau kecanduan kontrol, @delnan? Atau apakah Anda merujuk pada hak cipta suatu spec? AFAIK, hak cipta tidak secara inheren jahat, tidak harus membatasi sama sekali.
jcora
1
Saya kira saya akan menyimpan spec dalam domain publik.
jcora
1
Saya bukan pengacara, tetapi hak cipta suatu dokumen (walaupun itu menentukan bahasa) bukan hak cipta suatu bahasa. Misalnya, saya menggunakan kamus yang dilindungi hak cipta, dan saya berbicara bahasa Prancis tanpa melanggarnya.
Basile Starynkevitch

Jawaban:

15

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)

Insinyur Dunia
sumber
1
Loglan adalah preseden untuk status non-hak cipta dari bahasa yang dikonstruksi. Lojban secara efektif merupakan implementasi ulang terbuka dari Loglan. Di sisi lain, Sun menggugat Microsoft untuk implementasi Visual J ++ Java mereka ...
Jon Purdy
2
@JonPurdy: Dengan Java, ini masalah merek dagang, bukan masalah hak cipta. Lihatlah bagaimana LiveScript menjadi Javascript, sementara itu dalam kepentingan gabungan Sun / Netscape, kemudian Microsoft merilis JScript untuk menunjukkan kesamaan sambil menghindari masalah merek dagang, dan kemudian semua orang setuju untuk ECMAScript sebagai nama umum.
pdr
1
@ JonPurdy, @ pdr Saya pikir ada juga masalah hukum kontrak dalam perselisihan antara Sun dan Microsoft. Microsoft telah melisensikan teknologi JVM dari Sun dan sebagian dari lisensi setuju untuk tidak menghasilkan implementasi non-standar Java.
Charles E. Grant
1
@ pdr Sejauh yang saya ingat ada spesifikasi yang sangat tepat yang harus disediakan oleh implementasi Java (termasuk beberapa ribu tes yang harus dilewati implementasi). Microsoft dituntut karena mereka memiliki implementasi non-standar (mungkin untuk mengunci pengguna dengan mendistribusikan applet yang hanya akan bekerja dengan Internet Explorer). Setelah strategi mendistribusikan implementasi non-standar Java gagal, Microsoft kemudian membuat C #.
Giorgio
3
@Iorgio - tepatnya. Apa yang ditentang Sun adalah MSFT memanggil bahasa mereka Java sambil membuat perubahan signifikan (untuk menguncinya ke platform MSFT) pada dasarnya mereka memproduksi Java palsu
Martin Beckett
8

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:

  1. Dia menunjukkan kepada dunia bahwa dia akan menuntut siapa pun yang dia pikir dapat memperoleh uang darinya, dan
  2. Dia menjamin bahwa perkembangan masa depan yang tidak sepenuhnya terikat dengan Jawa akan memilih apa pun selain Jawa.

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.

Peter Rowell
sumber
1
+1 untuk membuatnya sangat jelas. Anda memukul paku dengan titik 2 Anda tentang Jawa. Ini telah menjadi faktor utama dalam memutuskan apakah akan tetap menggunakan Java atau membuat bahasa yang serupa sendiri. Padahal, saya tidak terlalu berharap orang menggunakannya, seperti yang saya katakan, itu untuk keperluan pribadi dan pendidikan. Tapi, saya ingin membuka opsi saya.
jcora
1
Pembaruan: pada Mei 2014, pengadilan sirkuit federal membalikkan keputusan itu dan mengatakan bahwa API dapat memiliki hak cipta. eff.org/deeplinks/2014/05/...
tidak ada orang
Tapi itu bukan poin sebenarnya dari posting saya. Setelah total kehancuran permainan kekuasaan Oracle dengan Java, tidak ada orang yang waras, dan dengan pengetahuan sejarah apa pun, yang dengan sadar akan menempatkan jeratan semacam ini di leher perusahaan atau proyek mereka. Jika ada, pembalikan oleh Pengadilan Banding hanya berfungsi untuk memberi bobot lebih besar pada argumen untuk menggunakan hanya alat dan bahasa OSS. Sungguh menakjubkan, dan sangat ironis, bahwa lubang ** seperti Larry Ellison harus menjadi orang yang membawa pulang nilai sebenarnya dari perangkat lunak Libre / Gratis bahkan kepada kapitalis atau pebisnis yang paling keras kepala sekalipun.
Peter Rowell
2

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 namebahasa Anda, merek dagang akan lebih bermanfaat.

Dominic Cronin
sumber
Menulis tata bahasa untuk bahasa itu masih tidak akan melindunginya. Satu-satunya hal yang akan dilakukan, adalah menghentikan orang lain menulis ulang tata bahasa dengan cara yang sama dengan Anda. Saya bisa menulis tata bahasa untuk bahasa Inggris, yang kemudian tidak akan menghentikan Anda untuk dapat memposting di SE.
Gavin Coates
Gavin - saya menulis .... "itu tidak akan melindungi Anda terhadap seseorang yang menulis tata bahasa berbeda yang menggambarkan bahasa yang sama." Saya harap ini menjelaskan bahwa hak cipta semacam itu tidak akan melindungi bahasa, hanya dengan cara menggambarkan bahasa itu. Tetap saja - itu mungkin membuat seseorang merasa lebih baik.
Dominic Cronin
1

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

miraculixx
sumber
Annnddd ... putusan ini baru saja dibatalkan. Oracle merasa puas, dan kali ini para juri bukan programmer.
jmoreno
@ jmoreno terima kasih telah menunjukkan ini. memperbarui jawaban untuk mencerminkan perkembangan baru ini ...
miraculixx
Hanya ingin mengatakan, bukan pengacara atau psikiater, hanya seorang programmer, tetapi putusan 2014 tampaknya tidak masuk akal bagi saya. Ini banyak perintah!
jmoreno